/ usr/binフォルダー内のバイナリをシンボリックリンクしようとすると、Operation not allowedエラーが表示されます。
Sudo ln -s /usr/bin/python2.7 /usr/bin/python2
ln: /usr/bin/python2: Operation not permitted
須藤としても、このエラーが発生します。
/usr/bin
にシンボリックリンクできないのはなぜですか?El Capitanの新しい システム整合性保護 機能は、OS Xのいくつかのコア部分(ほとんどの/usr/
を含む)がルートによっても変更されないようにします。
あなたがやっていることのようなローカルなカスタマイズは、代わりに/usr/local
に属します。パス/usr/local/bin
はデフォルトでは存在しませんが、作成してカスタムバイナリ(およびシンボリックリンク)を入れることができます:
Sudo mkdir -p /usr/local/bin
Sudo ln -s /usr/bin/python2.7 /usr/local/bin/python2
/usr/local/bin
はデフォルトでは存在しませんが、デフォルトのPATHにはisですので、作成するとすぐにコマンドを検索します。
システム整合性保護を無効にすることもできますが、一般的には有効のままにして、より適切な場所でカスタマイズすることをお勧めします。 Apple Stack Exchangeの質問には、これに関する詳細があります: El-Captainのルートレス機能とは何ですか? 。
Mac OS High SierraでSublime Text 3のシンボリックリンクを作成しました。
Sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/
また、「/ usr/bin」にシンボリックリンクを作成しようとしていて、Operation Not Permittedが発生していました。
次に、「/ usr/local/bin」にシンボリックリンクを作成しましたが、エラーはありませんでした。シンボリックリンクは正常に機能します。 「/ usr/local/bin」がパスにあることを確認してください。
そのため、「/ usr/bin」へのアクセスが制限されているようです。
システムを再起動->長押しcmd + R。ユーティリティメニューからターミナルを選択するには、次のコマンドを入力しますcsrutil disableターミナルを閉じてシステムを再起動します。