ブリュー博士は言う:「警告:/ usr / local / includeは書き込み可能ではありません。」


352

ブリュー博士は言う:

警告:/ usr / local / includeは書き込み可能ではありません。これは、Homebrewで管理されていないソフトウェアを「sudo make install」した場合に発生する可能性があります。

brewがこのディレクトリにヘッダーファイルを書き込もうとすると、リンク手順中にインストールが失敗します。

おそらくchown/ usr / local / include

これを解決するためにさまざまなコマンドを試してみましたが、まだここで立ち往生しています。

10.8.2で自作を実行しています


1
Homebrew 0.9.4の「/ usr / local / lib」で同様のエラーが発生しましたが、これも以下のソリューションで解決されました。
JeremiahLee

回答:


680

それとその中のすべての所有権を取得します。

Mac OS High Sierra以降:(以下のコメントでKirkに感謝)

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

以前のバージョンのmacos:

$ sudo chown -R $USER:admin /usr/local/include

その後、別の

$ brew doctor

13
操作は許可されていませんか?
topwik 2014年

68
代わりに$ sudo chown -R `whoami` /usr/local/何か利点がありますか?
Labu

2
@WillemLabuプロセスフォークが1つ少ない?whoamiは効果的なユーザーIDであり、manページでは廃止されているようです。
jrwren 14

7
/ usr / localの所有権をユーザーに変更することは、クリーンな解決策なのでしょうか。$ USERを 'wheel'グループに追加した方がいいのではないでしょうか?または/ usr / localのグループを管理グループに変更しますか?
Michael Lehn

13
Mac OS HighのHomebrewによると、シエラチョウ/usr/localはもう機能しません。代わりに使用sudo chown -R $(whoami) $(brew --prefix)/*
Kirk Hammett

115

私にとってもうまくいったのは

sudo chmod g+w /usr/local
sudo chgrp staff /usr/local

20
これは唯一の健全な修正であり、マルチユーザーOSで/ usr / localの所有権を取得することは実際には
健全

3
この男にいくつかの投票を取得する必要があります!;)これはうまくいきました。
jrista 2016

1
これは、
IMHOの

5
まあ、ハイシエラではありません。"/ usr / localのファイルモードを変更できません:操作は許可されていません"
user980018

1
@ user980018私はちょうど同じことに遭遇しました- 私が使用し
Casey Davidson


37

エルキャピタンで私のために働いた唯一の人は:

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

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

1
@AlxVallejoが/ usr / local / binでそれを行うのがうまくいきました
marcotama

23

High Sierraを使用していてこの問題が発生している場合は、次の手順に従ってください注:/ usr / localをHigh Sierraで変更することはできません)。

sudo mkdir /usr/local/include
sudo chown -R $(whoami) $(brew --prefix)/*

次に、brewリンクでリンクしてみます。私は同様の問題を経験しており、上記の解決策はいずれもHigh Sierraでは機能しませんでした。これが誰かを助けることを願っています。


21

ハイシエラの場合:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

次に、brewコマンドを試してください。

課題#3285


2
以前にbrewをインストールしてHigh Sierraにアップグレードしたことがある場合は、なぜこれが反対票だったかがわかりません。Homebrewを再インストールすると問題が解決します。これが最も簡単な方法です
sam9046 2018年

皮肉なことに、それはスクリプトが他の回答が示唆していることを正確に実行するためです。
オービットでのライトネスレース

これは私にとってはうまくいきましたが、最初に次のものを使用して以前のものをアンインストールしました:ruby -e "$(curl -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall)"
abbas

12

コマンドのエイリアスを作成してこの問題を修正し、.bash_profile遭遇するたびに実行することができます。

ファイルの終わり ~/.bash_profile、以下を追加。

alias fix_brew='sudo chown -R $USER /usr/local/'

そして今あなたのターミナル内であなたは走ることができます:

$ fix_brew

12

これはmacOS 10.12で私のために働きました

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

次のエラーで自作の更新に問題がありました:

/usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local

8

いくつかのためにそれはなるだろう:

sudo chown -R JonJames:admin /usr/local/lib

ここで、「bin」、「include」、「whatever else」ではなく「lib」が使用されます

自作の警告では、具体的に何が書き込み不可かを説明し、その後にコマンド構文を提供する必要があります。


警告における構文は少し私は信じて混乱され、私は、彼らはそれについては何も変わってしまう場合...多分警告の言い回しは、将来の醸造のアップデートで変更され、返答を待って、お願いする自作のリード貢献を電子メールで送信
ジョナサン・ジェームズ

ありがとう!これは、かなりの量の検索の後に機能しました。
thiswayup


5

MacOS 10.13でも同じエラー

/usr/local/includeそして/usr/local/ /usr/lib作成されませんでした。私は手動で作成し、brew link最終的に作業しました。


3

/ usr / local / includeおよび/ usr / local / libが存在しない場合は、それらを作成する必要があります。

$ sudo mkdir -p /usr/local/include
$ sudo chown -R $USER:admin /usr/local/include

3

効果があったのは自分のコンピューターにユーザーたか。

端末の使用:

  • ランニング brew doctor
    • 複数の/usr/local/...エラーが発生することはありません
  • Macのシステム整合性保護を無効にする:https : //apple.stackexchange.com/a/208481/55628
  • 以下を実行します
  • sudo chown -R $(whoami) /usr/local/*
  • brew doctor && brew upgrade && brew doctor

Macbook Pro OSX High Sierra(バージョン10.13.3)の実行

編集1:

参考までに-これはあなたのMAC上でMySQLを実行する際に問題を引き起こすことに注意してください。

ローカルサーバーを起動できるようにするには、次のコマンドを実行する必要がありました。

sudo chown -R mysql:mysql /usr/local/mysql/data

これを実行した後、ローカルのMySQLサーバーを起動できます。


1
優秀な!ありがとうございました!
shmuli

3
sudo mkdir -p /usr/local/include /usr/local/lib /usr/local/sbin

sudo chown -R $(whoami) /usr/local/include /usr/local/lib /usr/local/sbin

これにより、必要なすべてのディレクトリが作成され、適切な所有権が付与されます。

これらのコマンドを実行した後、次のことを確認してください。 brew doctor

これはMojaveで機能します。


2

あなたは、全体の制御を取得する必要があり/usr/localますが、再帰的な実行する必要があることを行うためにchown下を/usr/local

sudo chown -R YOUR_USERNAME:admin /usr/local/


2

私はsam9046の控えめなコメントを、私の場合に機能する代替の潜在的にはるかに簡単な解決策としてアンインストールしてインストールするだけです、最初から再び自作。sudoコマンドは必要ありません。

以前にインストールしたパッケージに影響を与えないようにする必要がある場合は、上記のリンクからアンインストールスクリプトを参照/変更することもできます。私の場合、これは私の家のマシンだったので、最初からやり直しました。



2

まず、ディレクトリを作成する必要があります。

sudo mkdir /usr/local/include

第二:

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

1

これは、すべてのユーザーがActive Directoryにバインドされた後に、組織で発生しました(効果的にUIDを50xから######に変更)。

これは、xが所有していたすべてのファイルの所有権をyに変更する場合にすぎません。

ここで、501は私の古い数字のユーザーIDで、すべての自作ファイルにまだ関連付けられています。

古いユーザーIDは、 ll /usr/local/Cellar

所有権を更新してください sudo find /usr/local -user 501 -exec chown -h $USER {} \;

このようにして、homebrewによって制御されていないファイルや他のシステムユーザーに属しているファイルの所有権を変更することを避けます。


1

/ binディレクトリに移動して、次のように入力します。

chown -R $(whoami):admin / usr / local / bin

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.