homebrewで書き込み可能な `/ usr / local`のファイルを作成する


35

私は自作をうまく動作させようとしましたが/usr/local、中のすべてが書き込み可能ではなく、すべてが倒れているようです。

それは再帰的chown /usr/localに私に言われ続け、私はそれを試しました。操作が拒否されたため、sudoしました。うまくいくように見えましたが、不気味な沈黙が聞こえるのはUnixでは礼儀正しいと考えられています。残念ながら、成功しようとする試みはすべてbrew update、同じ不協和音のエラーに遭遇します。

でコマンドを再実行-vしましたが、内部の操作は許可されていません。

答えはおそらく「UNIXを学ぶ」であるのと同じくらい、私はRubyのチュートリアルのためにここでいくつかの仕事の要件を順守しようとしているだけです。

brew doctor

Warning: /usr/local/Frameworks isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/Frameworks
Warning: /usr/local/Cellar isn't writable.
You should `chown` /usr/local/Cellar
Warning: /usr/local/etc isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/etc
Warning: /usr/local/include isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/include
Warning: /usr/local/lib isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/lib
Warning: /usr/local/lib/pkgconfig isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/lib/pkgconfig
Warning: /usr/local/opt isn't writable.
You should `chown` /usr/local/opt
Warning: /usr/local/share isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/share
Warning: Some directories in /usr/local/share/man aren't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew. If a brew tries to add locale information to one of these
directories, then the install will fail during the link step.
You should probably `chown` them:

    /usr/local/share/man
    /usr/local/share/man/man1
    /usr/local/share/man/man3
    /usr/local/share/man/man5
    /usr/local/share/man/man7
    /usr/local/share/man/man8
Warning: /usr/local/var isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/var

brew doctorあなたに有益な何かを教えて?ここに出力を投稿してください。
イアンC.

@IanC。これは、醸造関連のすべてが書き込み可能でないことの長いリストです。stackexchange pastebinユーティリティはありますか?あります非常に多く、それのは。
ティクト

まあ、それは奇妙です。現在は、以前よりはるかに少なくなっています。
ティクト

参考までにbrew update、「Homebrewが/ usr / localの所有権を持つ必要がなくなった」ことを発見しました。この質問の詳細。明らかにそのポイントに到達するには、/ usr / localのアクセス許可を一時的に更新する必要があります:)
acobster

回答:


26

これは、そのディレクトリの権限を次のように変更して解決する必要があります。

$ cd /usr/local
$ sudo chown -R <your-username>:<your-group-name> *

グループがわからない場合は、単に入力しid -gます。


重要な部分は、-R再帰的にすることです。そして、おそらくあなたはchown使用する必要がありsudoます。ユーザーグループには、通常staffOS Xで使用します。
nwinkler15年

面白い。なぜグループを使用するのがユーザーだけと違うのですか?
ティクト

4
ユーザーが/ usr / localを所有するのが正しいのはなぜですか?/ usr / localを使用する他のプログラムがたくさんあり、静かに引き継がれる可能性があるため、これはセキュリティ上のリスクだと思います。醸造には本当に抜本的なものが必要ですか?
dfrankow

1
これは「スタッフ」グループを選択するため、これは危険だと思います。つまり、OS上のすべてのユーザーが/ usr /の内容を変更できるということです。おそらく「admin」に切り替える必要があります。
Indolering

1
@dfrankowうん、これは自作の失敗です。同じマシンに2人のユーザーがいる場合はどうなるかさえ考えていませんでした。
poige

22

次のように、昇格した権限でコマンドを実行するにはsudoを使用する必要があります。

sudo chown -R `whoami` /usr/local

やった。「操作が拒否されたため、sudoを実行しました。」
ティクト

1
フィッシュシェルユーザーの場合は、次のようになりますsudo chown -R (whoami) /usr/local
kibin

10

MacOSの10.13.4と私はしようとしたと私は昨日、この問題に直面していたsudo chgrp -R admin /usr/localか、sudo chown -R <your-username>:<your-group-name> /usr/local取得されOperation not permitted使用していてもエラーをsudo

ちょうどしようとした私はとてもchgrpためHomebrewに、関連するフォルダadmin(マイユーザーがいるadminとのグラントあなたが実行しているユーザーに依存して、グループ、あなたが別のグループへの変更にbeedかもしれません)adminこれらのコマンドを使用してグループそれらのフォルダへの書き込みアクセスを

sudo chgrp -R admin /usr/local/Homebrew/
sudo chmod -R g+w /usr/local/Homebrew/
sudo chgrp -R admin /usr/local/var/homebrew/
sudo chmod -R g+w /usr/local/var/homebrew/

これらのコマンドを実行した後、新しいパッケージを問題なくインストールできます。再度アクセス許可の問題が発生した場合は、フォルダ名をアクセス許可の問題が発生しているフォルダ名に置き換えて、最初の2つのコマンドを実行してください。

これがmacOS 10.13の他のユーザーに役立つことを願っています。

注:所有者を/usr/local変更したり、グループのグループを変更したり、グループの/usr/localアクセスを許可したりしても機能する場合がありますが、他の無関係なフォルダーも同様に変更する必要があります。必要なフォルダーの変更は、はるかに安全です。


これは本当に私に合っています!<3おかげ
DariusV

これは正しい答えとして投票されるべきです!ご協力いただきありがとうございます!
イニ

2

ディレクトリのアクセス許可の問題を解決するには、次のコマンドを実行します。

brew prune

1

それは私のために働いた。

sudo chgrp -R admin /usr/local
sudo chmod -R g+w /usr/local

0

中レザによって答えこの質問は私のために働きました。

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

/ usr / local自体の許可を変更することはできませんが、その下のフォルダーの適切な許可を変更することはできます

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