web-dev-qa-db-ja.com

homebrewを/ usr / localサブディレクトリに手動でインストールするにはどうすればよいですか?

docs.brew.shの手動インストール手順 は非常に簡潔で不十分であり、Sudoを使用せずに/usr/localのサブディレクトリで試してみるとエラーが発生します。 この質問 とその 受け入れられた回答 の方向は少し良いですが、Sudoを使用しないと機能しません。

Homebrew自体をインストールするためにSudoを使用する必要があるかもしれないことを理解していますが、新しいパッケージのインストールや更新などのためにSudoを使い続ける必要がないことを願っています(標準のHomebrewインストールスクリプトはSudoただし、絶対に必要な場合のみ。標準的な結果として、新しいパッケージのインストールや更新などにSudoを使用する必要はありません。)

Homebrewを/usr/localサブディレクトリに手動でインストールするにはどうすればよいですか?

手動インストール情報の動機/usr/localサブディレクトリ:

  • 手動インストールでは、Homebrewのインストールと管理のプロセスを最適に制御できます。
  • Homebrewはローカルに構築されたパッケージとシステム全体のパッケージの組み合わせを管理するため、ホームディレクトリのサブディレクトリへのインストールは理想的ではありません。

インストール後にユーザーがSudoを使用する必要性を回避する動機:

  • 標準インストールとの整合性
  • 既存のHomebrewパッケージの管理が簡単
  • homebrew自体またはHomebrewパッケージがユーザーにrootとしていくつかのものを実行するように強制しない場合、セキュリティリスクを低減します
1
brodybits

注:この回答は、macOSユーザーが管理者として設定されていることを前提としています。

重要:以下で説明するように絶対に必要な場合を除いて、Sudoを使用しないでください。最終結果は、Sudoを二度と使用する必要のないHomebrewインストールになるはずです。

まず、Sudoを使用して/usr/local内に一時ディレクトリを作成します(必要に応じてパスワードを入力します)。

Sudo mkdir /usr/local/brewtmp1

ls -l /usr/localの結果を確認してください:

total 0
drwxr-xr-x   2 root       wheel   64 Jul  2 16:16 brewtmp1

一時ディレクトリのユーザーとグループの所有権を修正します。

Sudo chown $USER:admin brewtmp1

ls -l /usr/localの結果をもう一度確認してください。

total 0
drwxr-xr-x   2 brodybits  admin   64 Jul  2 16:16 brewtmp1

次に、一時ディレクトリ内で、 GitHubのHomebrew/brewmasterを使用せずに、Sudoブランチのコンテンツをダウンロードして抽出します。

cd /usr/local/brewtmp1
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz

ls -l内の/usr/local/brewtmp1の結果を確認します。

total 0
drwxr-xr-x  16 brodybits  admin  512 Jul  2 14:46 Homebrew-brew-cbc3184

ls -l Homebrew-brew-*の結果を確認してください:

total 48
-rw-r--r--   1 brodybits  admin    98 Jul  2 14:46 CHANGELOG.md
-rw-r--r--   1 brodybits  admin  3161 Jul  2 14:46 CODE_OF_CONDUCT.md
-rw-r--r--   1 brodybits  admin   720 Jul  2 14:46 CONTRIBUTING.md
-rw-r--r--   1 brodybits  admin  1334 Jul  2 14:46 LICENSE.txt
drwxr-xr-x   7 brodybits  admin   224 Jul  2 14:46 Library
-rw-r--r--   1 brodybits  admin  7374 Jul  2 14:46 README.md
drwxr-xr-x   3 brodybits  admin    96 Jul  2 14:46 bin
drwxr-xr-x   5 brodybits  admin   160 Jul  2 14:46 completions
drwxr-xr-x  48 brodybits  admin  1536 Jul  2 14:46 docs
drwxr-xr-x   5 brodybits  admin   160 Jul  2 14:46 manpages

これにより、Homebrewのコンテンツが正しいユーザーとグループで表示されます。

Homebrew-brew-???????の名前をhomebrewSudoを使用せずに)に変更します(以下の他の手順に合わせて、別の名前を使用しても問題ありません):

mv Homebrew-brew-??????? homebrew

ls -lの結果を再確認します。

total 0
drwxr-xr-x  16 brodybits  admin  512 Jul  2 14:46 homebrew

homebrewを使用して、新しいSudoディレクトリを適切な場所に移動します。

Sudo mv /usr/local/brewtmp1/homebrew /usr/local

ls -l /usr/localの結果を再確認してください。

total 0
drwxr-xr-x   2 brodybits  admin   64 Jul  2 16:20 brewtmp1
drwxr-xr-x  16 brodybits  admin  512 Jul  2 14:46 homebrew

次の行をプロファイルファイルに追加します(必要に応じて.profileまたは.bash_profile)( 別の質問に対するこの回答 の指示に従って):

export PATH=/usr/local/homebrew/bin:$PATH

シェルを再起動するか、新しいシェルを起動するか、プロファイルファイルを入手してください。 which brew/usr/local/homebrew/bin/brewを示していることを確認します。次に、brew --versionが機能することを確認します(ただし、homebrew-coreはインストールされていません)。

Homebrew >=1.4.0 (shallow or no git repository)
Homebrew/homebrew-core N/A

この時点でbrew doctorを実行することをお勧めします。これには、homebrew-coreが含まれ、適切にインストールされていることを確認します。非標準のHomebrewプレフィックスに関する警告が出力される場合がありますが、これはほとんどのパッケージで問題になるはずです。次に、brew --versionhomebrew-coreが含まれていることを示す必要があります。

Homebrew >=1.4.0 (shallow or no git repository)
Homebrew/homebrew-core (git revision 2f937; last commit 2018-07-02)

autoconfなどの簡単な数式をインストールしてみてください。

brew install autoconf

autoconf --versionは、インストールされていることを示しているはずです。

分析を無効にするには( この記事 のおかげで、パッケージのインストール後に実行する必要があります):

brew analytics off

ls -l /usr/local/homebrewは次のようになります。

total 48
-rw-r--r--   1 brodybits  admin    98 Jul  2 16:43 CHANGELOG.md
-rw-r--r--   1 brodybits  admin  3161 Jul  2 16:43 CODE_OF_CONDUCT.md
-rw-r--r--   1 brodybits  admin   720 Jul  2 16:43 CONTRIBUTING.md
drwxr-xr-x   3 brodybits  admin    96 Jul  2 16:43 Cellar
-rw-r--r--   1 brodybits  admin  1334 Jul  2 16:43 LICENSE.txt
drwxr-xr-x   8 brodybits  admin   256 Jul  2 16:43 Library
-rw-r--r--   1 brodybits  admin  7374 Jul  2 16:43 README.md
drwxr-xr-x  10 brodybits  admin   320 Jul  2 16:43 bin
drwxr-xr-x   5 brodybits  admin   160 Jul  2 16:43 completions
drwxr-xr-x  48 brodybits  admin  1536 Jul  2 16:43 docs
drwxr-xr-x   3 brodybits  admin    96 Jul  2 16:43 etc
drwxr-xr-x   5 brodybits  admin   160 Jul  2 16:43 manpages
drwxr-xr-x   4 brodybits  admin   128 Jul  2 16:43 opt
drwxr-xr-x   8 brodybits  admin   256 Jul  2 16:43 share
drwxr-xr-x   3 brodybits  admin    96 Jul  2 16:42 var

欠落している可能性のあるディレクトリをいくつか追加し、Homebrewインストールスクリプトの結果と一致するようにいくつかのディレクトリ権限を修正することをお勧めします(brew doctorがこの部分をチェックして処理することを提案したい):

cd /usr/local/homebrew
mkdir -p include Caskroom Cellar lib opt share var
chmod g+w include Caskroom Cellar lib opt share var

そして最後に/usr/local/brewtmp1をクリーンアップします(Sudoを使用):

Sudo rm -rf /usr/local/brewtmp1

追加の資料およびその他のリソース:

1
brodybits