はじめに
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
- Macで/usr/local/binの所有者が勝手に変わる問題について
http://rcmdnk.github.io/blog/2015/10/13/computer-mac/ - Mac用アンチウィルスソフトとHomebrewの所有権についてまとめ
http://qiita.com/tozaiuser/items/8426ee90844b46f7e4ce - Sophos Anti-Virus for Mac のアンインストール方法
https://www.sophos.com/ja-jp/support/knowledgebase/120838.aspx