web-dev-qa-db-ja.com

MacOS High SierraでHome-brewの権限を修正する方法

pythonをhomebrewにインストールしようとすると、それをダウンロードし、最後にエラーメッセージがポップアップし、完了を停止しました。もう一度やり直そうとすると、次のように求められます。

$ brew link python

入力すると、同じエラーメッセージが表示されます。

許可が拒否されました@ dir_s_mkdir-/ usr/local/lib

私はやろうとしました:

$ Sudo chown -R $(whoami) /usr/local

そして、次のようなエラーメッセージが表示されます。

chown:/ usr/local:操作は許可されていません

44
Jonathan
Sudo mkdir /usr/local/Frameworks
Sudo chown $(whoami):admin /usr/local/Frameworks    
brew link python3
84
gfly

私はこれと同じ(私が思うに)出力しようとしました:

Error: An unexpected error occurred during the `brew link` step
The formula built, but is not symlinked into /usr/local
Permission denied @ dir_s_mkdir - /usr/local/Frameworks
Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks

そこで、ルートとして/ usr/local/Frameworksディレクトリを作成し、所有権を変更しました。

Sudo mkdir /usr/local/Frameworks && chown $USER:admin /usr/local/Frameworks

もう一度試してみましたbrew install python

Warning: python 2.7.14 is already installed, it's just not linked.
You can use `brew link python` to link this version.

そしてbrew link python

Linking /usr/local/Cellar/python/2.7.14... 26 symlinks created

これで、ディレクトリ/usr/local/Frameworks/Python.framework/にリンクが表示されます。例:

lrwxr-xr-x 1 niquit admin  62 Dec  8 21:41 /usr/local/Frameworks/Python.framework/Headers -> ../../Cellar/python/2.7.14/Frameworks/Python.framework/Headers/
lrwxr-xr-x 1 niquit admin  61 Dec  8 21:41 /usr/local/Frameworks/Python.framework/Python -> ../../Cellar/python/2.7.14/Frameworks/Python.framework/Python*
lrwxr-xr-x 1 niquit admin  64 Dec  8 21:41 /usr/local/Frameworks/Python.framework/Resources -> ../../Cellar/python/2.7.14/Frameworks/Python.framework/Resources/

あなたの場合、手動で/ usr/local/libを作成することをお勧めします。

Sudo mkdir /usr/local/lib && chown $USER:admin /usr/local/lib

Aはmv /usr/local/lib{,.orig}によってテストを行いました。

Error: An unexpected error occurred during the `brew link` step
The formula built, but is not symlinked into /usr/local
Permission denied @ dir_s_mkdir - /usr/local/lib
Error: Permission denied @ dir_s_mkdir - /usr/local/lib

前と同様に、手動でディレクトリSudo mkdir /usr/local/lib && chown $USER:admin /usr/local/libを作成し、成功しましたbrew link python

Linking /usr/local/Cellar/python/2.7.14... 324 symlinks created

今、私はいくつかのリンクを見つけることができます:

lrwxr-xr-x 1 niquit admin  54 Dec  8 22:01 python-2.7.pc -> ../../Cellar/python/2.7.14/lib/pkgconfig/python-2.7.pc
lrwxr-xr-x 1 niquit admin  50 Dec  8 22:01 python.pc -> ../../Cellar/python/2.7.14/lib/pkgconfig/python.pc
lrwxr-xr-x 1 niquit admin  51 Dec  8 22:01 python2.pc -> ../../Cellar/python/2.7.14/lib/pkgconfig/python2.pc

最新の更新後のAppleはセキュリティを向上させたと思うので、root権限なしで/ usr /にディレクトリを作成することはできません。

9
Niquit

/usr/localは、High Sierraではもはやチャウンできません。代わりに使用

Sudo chown -R $(whoami) $(brew --prefix)/*
6
H. Gourlé

Homebrewをアンインストールしてクリーンインストールを実行すると、問題が修正されます。

4
Walrus the Cat

私の場合、MacOS 10.14の新しいマシンでの新規インストール:

brew doctor

そしてそれは提案します:

Sudo mkdir -p /usr/local/lib /usr/local/sbin
Sudo chown -R $(whoami) /usr/local/lib /usr/local/sbin
4
Bill Chan

これを実行し、提案に従ってください:

brew doctor

私の場合、次の実行を望んでいました。

Sudo mkdir -p /usr/local/sbin /usr/local/Frameworks
Sudo chown -R $(whoami) /usr/local/sbin /usr/local/Frameworks
4
Chris

Brewを再インストールし、問題を修正しました。

アンインストールするには、次のコマンドを使用します。

Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

brewを再度インストールします。

/usr/bin/Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
3
Johnny Chia
Sudo mkdir /usr/local/Frameworks

Sudo chown $USER /usr/local/Frameworks

そして、Pythonを再インストールしてみてください。これは私には絶対にうまくいきました。

3
Shaul Hameed
brew doctor

上記のコメントでChrisが示唆したように、このコマンドは、MacOS 2011を非公式に実行しているMac Mini 2011 5,1で実行している私の自作の問題をほぼすべて解決しました。それを入力し、ターミナルが印刷するすべての指示に従ってください

1
Tyler Kehrein

macOSは、ユーザー、グループ、その他の従来のアクセス許可を超えて、ファイルへのアクセスを制御するためのいくつかの方法を提供します。これには、アクセス制御リスト(ACL)、ファイルフラグ、拡張属性(xattrs)、および最近ではAppleのシステム整合性保護が含まれます。

ls -lO /usr/を実行してフラグをリストすると、/usr/localの前にuchgが表示されます。これは、すべてのユーザーがファイルを不変にするようにシステムに指示します。 (uuchgは、ファイル所有者がこのフラグを変更できることを意味します。所有者も他のユーザーもファイル自体を変更できません。)

問題を解決するには、最初にchflags nouchg /usr/localを実行してフラグを削除する必要があります。これによりuchgフラグが削除され、ls -lOで再度確認する必要があります。 schgなどの別のフラグが設定されている場合は、一般にnoschgまたはno<flag>を使用しますが、フラグがSudoで始まる場合は、コマンドでsを使用する必要があります。

この時点でも、Sudo chown -R $(whoami) /usr/localを使用して、ディレクトリをchownする必要があります。これでディレクトリを所有するようになり、Homebrewツールは正常に動作するはずです。

0
bnaecker

私はこれをやっただけで大丈夫でした:

Sudo touch /usr/local/Frameworks
brew link python
0
charles ross

前述のように、henrikstroemによって、バックティックが役立つ場合があります。また、bnaeckerによって述べられているように、特殊な属性もプロセスを妨げる可能性があります。

Sudo su -を実行してからchown -R username /usr/localを実行することにより、コマンドをrootとして直接実行して、より良い結果が得られるかどうかを確認することもできます。

しかし、それが本当にあなたが望むものであると確信していますか?アクセスできるグループ(chown -R originaluser:group /usr/localなど)を作成し、必要な権限を設定したり、ユーザーをそのグループの一部にしたりする方が面白いかもしれません。

0
user1747036