LoginSignup
19
17

More than 5 years have passed since last update.

【Homebrew】brew doctorで,毎回書き込み権限が無いと言われる問題の意外な原因

Posted at

はじめに

Homebrewについてです.
OSをアップデートした訳でもなく,何かをいじった記憶もなく,ある日から数時間〜1日時間をあけてbrew doctorをすると毎回「書き込み権限が無い」との警告が出るようになりました.

  • brew doctor: Homebrewに問題がないか調べるコマンド

実際におきたこと

brew doctor で出る警告をまとめると,以下のようになります.
(実際には解決法も一緒に書かれています)

Warning: /usr/local/bin isn't writable.
Warning: /usr/local/share isn't writable.
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.

これを解決するには,

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

をして/usr/local/の所有をユーザーに戻す必要があります.
なぜか次にbrew doctorをするときには所有がrootに戻ってしまうのです.
毎回同じ警告が出て,毎回同じように解決していました.

原因を調べてみた

アンチ・ウイルスソフトの Sophos が原因らしいです!
homebrew に関して問題があるのかと探っていたので,予想外でした.
Macで/usr/local/binの所有者が勝手に変わる問題について
という記事に書かれていました.
Homebrew自体の問題なのかと思っていたのですが,実際はSophosの更新の度に起きる問題だったようです.ウイルス定義のアップデートなどもあり,わりと頻度は高かった気がします.
sudo fs_usage | grep "usr/local"
で,ファイルシステムへのアクセスを確認し,実際に何が原因なのかを確認できます.ただし,相当時間がかかります.

実際に確認してみた

sudo fs_usage | grep "usr/local"
をしたところ,Sophos Update という文字列を見かけました.
やはり原因はSophosだと思ったので,Sophosをアンインストールしました.
アンインストール後,brew doctorをしてもエラーが出なくなりました.
アンインストールする際の注意点なのですが,Sophosゴミ箱に入れてもアンイストールされません.Remove Sophos Anti-Virusというアプリを,ダブルクリックして実行し,指示にしたがってアンインストールできます.

以下のフォーラムで,Sophosの担当者が,この問題に関して2015年11月上旬までには対処すると書いているのですが,まだ対処されていないようです.(2015/11/15現在)
'sweep' command installs itself into /usr/local and changes permissions, wreaking havoc on Homebrew - Sophos Anti-Virus for Mac Home Edition - Free antivirus & tools for desktops - Sophos Community

補足

ClamXAVでも同様の現象があるようです.こちらはインストール時のみのようです.

参考URL

19
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
17