web-dev-qa-db-ja.com

Sudo権限なしでHomebrewをインストールできますか?

HomebrewはSudo特権なしでパッケージのインストールをうまく許可していますが、Homebrew自体をインストールするには管理者特権が必要なようです。

Sudoまたは管理者権限を持っていないMac環境にHomebrewをインストールしたいのですが。これは可能ですか?

30
BenjaminGolder

いいえ。重要な手術をしない限り。

その理由は、Homebrewがパッケージを/usr/localにインストールすることを強く要求しているためです。実際、別の場所に強制的にインストールした場合でも、brew installを使用してパッケージをインストールすると、依存関係が壊れる可能性があります。これらのパッケージのすべてではないにしても、ほとんどは/usr/localでの実行を想定して事前にコンパイルおよびリンクされています。

この主張の理由は、/usr/localが、POSIXがこのようなものをインストールすることを推奨する場所であるためです。 /usr/localを作成するには、Homebrewがディレクトリを作成して所有権を割り当てるための一時的な管理者資格情報が必要です。

これにより、資格情報を昇格せずに他のものをインストールできるようになります。

14
David Hoelzer

はい。

Sudoを使用せず、選択したディレクトリを使用するようにインストールスクリプトを変更しました。 https://Gist.github.com/skyl/36563a5be809e54dc139

それをダウンロードして、YOUR_HOMEスクリプト内で絶対パスに。 chmod +x スクリプト。 YOUR_HOME/usr/localディレクトリ。次に、スクリプトを実行します。

./install.rb

.bash_profile、設定しました(これが重要であると確信しているわけではありませんが、かなり確信しています):

export HOMEBREW_PREFIX=/The/path/to/YOUR_HOME/usr/local

今、私はできる:

brew install wget

binディレクトリ、YOUR_HOME + /usr/local/binがあなたの$PATH

which wget
19
Skylar Saveland

sudoなしのhomebrewをインストールします。

git clone https://github.com/mxcl/homebrew.git
echo 'export PATH="/path/to/cloned_folder/homebrew/bin:$PATH"' >> ~/.bash_profile

端末を再起動して実行

brew --version
1
Astik Anand

Brewがgitリポジトリを移動したため、上記は機能しなくなりました。

git clone [email protected]:Homebrew/brew.git
echo 'export PATH="/path/to/cloned_folder/homebrew/bin:$PATH"' >> ~/.bash_profile
0
pwaterz

はい。

醸造システムはブートストラップ可能に見える

#!/bin/bash
set -ex

export HOMEBREW_PREFIX=~/homebrew
# export HOMEBREW_NO_ANALYTICS=1
mkdir -p "${HOMEBREW_PREFIX}"
curl -fsSLk https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C "${HOMEBREW_PREFIX}"

ls -laR "${HOMEBREW_PREFIX}"

export PATH="${HOMEBREW_PREFIX}/bin:${PATH}"
type -a brew

type -a openssl || :
openssl version -a || :

type -a curl || :
curl -V || :

# Fails to lock a .git/config file.
##brew analytics off

# No "brew update" until installing the proper openssl and a curl that uses it.
# brew update

# brew remove openssl || :
brew install openssl
brew link --force openssl

# brew remove curl || :
brew install --with-openssl curl
brew link --force curl || :
curl -V

ls -la "${HOMEBREW_PREFIX}/opt"
ls -la "${HOMEBREW_PREFIX}/bin"
ls -laLR "${HOMEBREW_PREFIX}/opt/curl/"
0
eel ghEEz

新しいバージョンのBrewでは動作しなくなりました

0
Maksim