web-dev-qa-db-ja.com

自作:シンボリックリンクを作成できませんでした、/ usr/local/binは書き込み可能ではありません

tigをインストールしている間、HomeBrewは依存関係をインストールしている間、以下の問題を表示しています。

Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/a2x
/usr/local/bin is not writable.

You can try again using:
  brew link asciidoc
320
Jikku Jose

フォロー中 Alex's answer 私はこの問題を解決することができた。これはインストールされているパッケージに特有の問題ではないがhomebrewフォルダのパーミッションの問題であるようです。

Sudo chown -R `whoami`:admin /usr/local/bin

パッケージによっては、これを/usr/local/shareまたは/usr/local/optに対しても行う必要があるかもしれません。

Sudo chown -R `whoami`:admin /usr/local/share
Sudo chown -R `whoami`:admin /usr/local/opt
529
Jikku Jose

特定のコマンドを実行するのではなく、brew doctorを実行してすべての警告を真剣に受け止めることをお勧めします。あなたが動けなくなる他の問題があるかもしれませんが、この質問では捕らえられないかもしれません。

また、brewが時間の経過とともに更新されるにつれて、特定のコマンドが有効になる場合もあれば、そうでない場合もあります。ただし、brew doctorを使用すると、確実に最新のトラブルシューティングを受けることができます。

178
zakishaheen

他の答えは正しい限りですが、答えはしていません なぜ この問題が発生している可能性があり、その根本的な原因への対処方法。

原因

この問題には2つの原因が考えられます。

  1. 自作インストールは、現在使用しているユーザー以外のユーザーで実行されました。 Homebrewは、もともとそれをインストールしたユーザーだけがそれを使いたいと思うことを期待しています。
  2. Brewを使わずに/ usr/localに書き込むソフトウェアをインストールしました。あなたが実行した場合、これがbrew doctorが示唆する原因です。

溶液

マルチユーザー自作

複数のユーザーアカウントがあり、それらのうちの複数のユーザーアカウントでbrewを使用できるようにするには、いくつかの手順を実行する必要があります。それ以外の場合は、ユーザーを切り替えるたびにHomebrewファイル構造の所有権を変更する必要があります。それは素晴らしい考えではありません。

詳しい説明は online にありますが、素早い答えは次のとおりです。

  1. グループを作成します という名前のbrew:

    1. 開く システム設定
    2. アカウント をクリック
    3. 「+」をクリックします(必要に応じて最初にロック解除します)。
    4. 新しいアカウント select Group の下
    5. brew を入力
    6. グループの作成 をクリック
  2. brew グループを選択し、brewを使用したいユーザーアカウントを追加します。
  3. / usr/localフォルダグループの所有権を変更します。Sudo chgrp -R brew /usr/local
  4. グループとして/ usr/localに書き込みを追加する権限を変更します。Sudo chmod -R g+w /usr/local
  5. 自作キャッシュディレクトリグループを変更します:Sudo chgrp -R brew /Library/Caches/Homebrew
  6. 自作キャッシュディレクトリのアクセス権を変更します。Sudo chmod -R g+w /Library/Caches/Homebrew

シングルユーザー自作

Homebrewで複数のユーザーを使用しようとしていないのであれば、brew doctorの提案に基づいて他の回答で提供されている解決策でおそらく十分です。

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

Sudo chown -R $(whoami) /Library/Caches/Homebrew

検証

これらのステップの後、brew doctor brew グループ内のすべてのユーザーの成功を報告します(マルチユーザールートを使用した場合)。新しいグループメンバーシップを適用するためにログアウトして再度ログインします。シングルユーザーの自作について修正しただけでは、ログアウトして再度ログインする必要はありません。グループのメンバーシップは変更されていません。

71
stonecrusher

/usr/local/sbinを探している人のために書き込み可能なエラーではありません:

更新: /usr/local/someOtherFolderName、例えば/usr/local/includeになります。そのフォルダを作成する必要があります。

  • Sudo mkdir someOtherFolderName

まずsbinフォルダを作成します。これにはSudo権限が必要であることに注意してください。

  • cd /usr/local

  • Sudo mkdir sbin

  • Sudo chown -R $(whoami) $(brew --prefix)/*

  • brew link yourPackageName

56
gokcand

私の特定の設定では、以下のコマンドがうまくいったことがわかりました。

brew doctor

そしてそれは私のエラーがどこにあったのかを私に示した、そしてそれから上記のコメントとはこのわずかに異なるコマンド。

Sudo chown -R $(whoami) /usr/local/opt
30
kinnth

Mac OS High Sierraを実行している間に(この投稿が行われてから4年後に認められた)この問題に遭遇した人々のために - ここに概説されたステップは私のために問題を解決した。基本的には単にbrewのアンインストールと再インストールの概要を説明しているだけです。

https://medium.com/@mrkdsgn/brew-error-on-macos-high-sierra-check-you-have-permission-to-write-to-usr-local-e8bd1c6a22d4

これらのステップを実行した後、brew linkは魅力のように働きました!

9
Erica Salling

私にとっての解決策はbrew updateを実行することでした。

だから、これを最初に行います。

これは自作に精通している人にとっては普通のやり方かもしれませんが、私はその人の一人ではありません。

編集:これと同じ質問に対する@ kinnthの回答で示唆されているように、私はbrew doctorを実行して更新する必要があることを発見しました。

一般的なトラブルシューティングのワークフローは、次のようになります。1. brew updateを実行します。2.それがbrew doctorの実行に役立たない場合は、その指示に従います。

9
FragmentalStew

私は同じ問題を見つけた、私たちは3つのステップで解決することができます -

ステップ1

Sudo chown -R $(whoami) $(brew --prefix)/*

ステップ2

brew doctor

ステップ3

brew Prune

それでもリンクの問題がある場合は、mysqlとしましょう。

brew link mysql

これはうまくいくでしょう。

8
Harry_pb

brew link node を実行している間に、私は以下のような問題を抱えていました。

エラー:include/node/usr/local/includeをシンボリックリンクできませんでした。書き込みはできません。

リンク/usr/local/Cellar/node/9.3.0 ...エラー:許可は@ dir_s_mkdirを拒否しました - /usr/local/lib

上記の問題を解決するには、/ usr/local /に行き、 'include'と 'lib'フォルダが空いていることを確認してください。

そして brew install node を実行してください。

これは、現在のユーザーがそのパスでwriteを許可されていないためです。したがって、r/w(読み取り/書き込み)パーミッションを変更するには、1。ターミナル、または2.グラフィカルな「情報を見る」ウィンドウを使用します。

1。ターミナルの使用

Googleのターミナルからのchmod/chown(モードの変更/所有者の変更)コマンドの使用方法

2。グラフィカルな「情報を見る」を使用する

パーミッションを変更したいフォルダー/ファイルを右クリックして、Get Infoを開くと、以下のようなウィンドウが表示されますこれは、R/Wパーミッションを簡単に変更できます: enter image description here

可能であれば、一時的な作業の後、許可を「読み取り専用」に戻すことを忘れないでください

5
Hasaan Ali

Sophos Anti-Virusユーザーには、以下の関連性があります。

https://stackoverflow.com/a/32981184

https://community.sophos.com/products/free-antivirus-tools-for-desktops/f/17/t/10029

つまり、ソフォスは特定の/ usr/localディレクトリのアクセス権を変更しています。ソフォスはこれにパッチを適用しており、修正はバージョン9.4.1に含まれています。

3
joshau

私の問題は

Error: Could not symlink share/man/man7/ABORT.7
/usr/local/share/man/man7 is not writable.

chownは役に立ちませんでしたが、私はbrew doctorアドバイスを実行した後、この警告は私を助けました:

Warning: Broken symlinks were found. Remove them with `brew Prune`:
/usr/local/share/man/man3/* 

brew Pruneの後、すべてうまくいきました!

2
Pavel Druzhinin

慣れていない人のために:

Sudo chown -R YOUR_COMPUTER_USER_NAME PATH_OF_FILE
0
Justin

インストールしているパッケージ用のディレクトリが/usr/localにすでにある場合は、このディレクトリを削除してみてください。

私の場合は、brewを使わずにインストールしようとしていたパッケージを以前にインストールしてからアンインストールしました。その前回のインストールから/usr/local/<my_package>/ディレクトリが残っていました。私はこのフォルダ(Sudo rm -rf /usr/local/<my_package>/)を削除し、その後ブリューリンクステップは成功しました。

0
Samuel Peter

Finderのフォルダに移動した場合は、右クリックして[情報を見る]を選択すると、そのフォルダの[共有とアクセス権]セクションに移動し、[全員]に[読み取りと書き込み]を許可できます。

これは私がシンボリックリンクをこのエラーで合格させるためにすることです。また、あなたが何も変更していないかのように、brewはフォルダのアクセス権をリセットするようです

0
Carl Lippert