pythonをhomebrewにインストールしようとすると、それをダウンロードし、最後にエラーメッセージがポップアップし、完了を停止しました。もう一度やり直そうとすると、次のように求められます。
$ brew link python
入力すると、同じエラーメッセージが表示されます。
許可が拒否されました@ dir_s_mkdir-/ usr/local/lib
私はやろうとしました:
$ Sudo chown -R $(whoami) /usr/local
そして、次のようなエラーメッセージが表示されます。
chown:/ usr/local:操作は許可されていません
Sudo mkdir /usr/local/Frameworks
Sudo chown $(whoami):admin /usr/local/Frameworks
brew link python3
私はこれと同じ(私が思うに)出力しようとしました:
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 /にディレクトリを作成することはできません。
/usr/local
は、High Sierraではもはやチャウンできません。代わりに使用
Sudo chown -R $(whoami) $(brew --prefix)/*
Homebrewをアンインストールしてクリーンインストールを実行すると、問題が修正されます。
私の場合、MacOS 10.14の新しいマシンでの新規インストール:
brew doctor
そしてそれは提案します:
Sudo mkdir -p /usr/local/lib /usr/local/sbin
Sudo chown -R $(whoami) /usr/local/lib /usr/local/sbin
これを実行し、提案に従ってください:
brew doctor
私の場合、次の実行を望んでいました。
Sudo mkdir -p /usr/local/sbin /usr/local/Frameworks
Sudo chown -R $(whoami) /usr/local/sbin /usr/local/Frameworks
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)"
Sudo mkdir /usr/local/Frameworks
Sudo chown $USER /usr/local/Frameworks
そして、Pythonを再インストールしてみてください。これは私には絶対にうまくいきました。
brew doctor
上記のコメントでChrisが示唆したように、このコマンドは、MacOS 2011を非公式に実行しているMac Mini 2011 5,1で実行している私の自作の問題をほぼすべて解決しました。それを入力し、ターミナルが印刷するすべての指示に従ってください
macOSは、ユーザー、グループ、その他の従来のアクセス許可を超えて、ファイルへのアクセスを制御するためのいくつかの方法を提供します。これには、アクセス制御リスト(ACL)、ファイルフラグ、拡張属性(xattrs)、および最近ではAppleのシステム整合性保護が含まれます。
ls -lO /usr/
を実行してフラグをリストすると、/usr/local
の前にuchg
が表示されます。これは、すべてのユーザーがファイルを不変にするようにシステムに指示します。 (u
のuchg
は、ファイル所有者がこのフラグを変更できることを意味します。所有者も他のユーザーもファイル自体を変更できません。)
問題を解決するには、最初にchflags nouchg /usr/local
を実行してフラグを削除する必要があります。これによりuchg
フラグが削除され、ls -lO
で再度確認する必要があります。 schg
などの別のフラグが設定されている場合は、一般にnoschg
またはno<flag>
を使用しますが、フラグがSudo
で始まる場合は、コマンドでs
を使用する必要があります。
この時点でも、Sudo chown -R $(whoami) /usr/local
を使用して、ディレクトリをchown
する必要があります。これでディレクトリを所有するようになり、Homebrewツールは正常に動作するはずです。
私はこれをやっただけで大丈夫でした:
Sudo touch /usr/local/Frameworks
brew link python
前述のように、henrikstroemによって、バックティックが役立つ場合があります。また、bnaeckerによって述べられているように、特殊な属性もプロセスを妨げる可能性があります。
Sudo su -
を実行してからchown -R username /usr/local
を実行することにより、コマンドをrootとして直接実行して、より良い結果が得られるかどうかを確認することもできます。
しかし、それが本当にあなたが望むものであると確信していますか?アクセスできるグループ(chown -R originaluser:group /usr/local
など)を作成し、必要な権限を設定したり、ユーザーをそのグループの一部にしたりする方が面白いかもしれません。