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


26

Homebrewはsudo権限なしでパッケージをうまくインストールできますが、Homebrew自体をインストールするには管理者権限が必要なようです。

Homebrewをsudoまたはadmin権限のないMac環境にインストールしたい。これは可能ですか?

回答:


12

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

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

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

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


感謝しますが、私の質問を見逃したと思います。パッケージをインストールする方法と場所は知っていますが、adminまたはsudoを使用せずにHomebrewをインストールしたいです。
ベンジャミン

あなたの質問を見逃しませんでした。答えは「いいえ」でした。.誤って「はい」と言いました。求めていることを簡単に行うことはできません。Homebrewインストーラーを編集してホームディレクトリからブランチに配置することを強制しても、インストール後に多くのbrewsが失敗する可能性があります。
デビッドHoelzer

わかった、ありがとう。以前の「はい」に混乱しました。
ベンジャミン

3
これは間違っているか、少なくとも「重要な手術」の定義は私とは大きく異なります。私はbrewホームディレクトリに5年以上プレフィックスを設定して実行していますが、その間に1つまたは2つの壊れたパッケージに遭遇しました。
ジェームズマクマホン

ただし、これも回避するのは困難です。エラー:Xcodeライセンスに同意していません。実行することによってこの問題を解決してください:sudoのxcodebuild -license受け入れる
アルバート

17

はい。

インストールスクリプトを変更して、使用しない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

1
インストールスクリプトでは#{YOUR_HOME}HOMEBREW_CACHE変数にもプレフィックスを追加する必要がありました。それに、システム管理者にはすでにhomebrewがインストールされていたので、追加するexport PATH=/path/to/home/usr/local/bin:$PATH必要.bash_profileがありました。しかし、それでもすべてうまくいくようです。
golmschenk

3
もう一度プロセスを行ったところusr、スクリプトを実行する前にホームディレクトリにディレクトリを作成する必要があることを伝えたいだけです。また、変数に追加#{YOUR_HOME}するときHOMEBREW_CACHE、一重引用符を二重引用符に変更して機能させる必要があるようです。いくつかのステップがありますが、Homebrewの力を得るのは間違いなく価値があります。
golmschenk

ルビーの文字列フォーマットを開始するには、@ golmschenkの二重引用符が必要です。
スカイラーセーブランド

1
それはいい調整です。自作プロジェクトにプルリクエストを送信する必要があります。
デビッドHoelzer

1
macOS Sierra(10.12.3)の非管理者アカウントからこれを試してみましたが、を実行する必要があり、chgrp admin /usr/local管理者以外のアカウントは管理者グループのメンバーではないため、動作しませんでした。 tそのグループに何かを変更します。これが通常の非管理者アカウント(何らかの奇妙な理由でsudoからロックアウトされた管理者アカウントだけでなく)で動作するようにできれば素晴らしいでしょう。
Spiff

0

はい。

醸造システムはブートストラップ可能です

#!/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

sudoなしでhomebrewをインストールするには。

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

ターミナル再起動して実行

brew --version

0

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

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

1
「上記」とは、Astik Anandの答えですか?常に「上」にあるとは限りません。回答の一部を変更する必要がある場合は、自分で編集してください。
nekomatic
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.