今まで何事もなく使えていたHomebrewがいきなりエラーを出すようになってしまったので、その時に試した対処法を記載
これまでの経緯
最近まで使用出来ていたbrew update
のコマンドをMacのターミナルに入力して実行した時に、下のエラーが発生していました。
MBAEY:~ ey$ brew update
mkdir: /usr/local/var/homebrew/locks: Permission denied
/usr/local/Library/Homebrew/utils/lock.sh: line 19: /usr/local/var/homebrew/locks/update: No such file or directory
-e:1:in `initialize': Bad file descriptor (Errno::EBADF)
from -e:1:in `new'
from -e:1:in `<main>'
Error: Another active Homebrew process is already in progress.
Please wait for it to finish or terminate it to continue.
上の方を見てみると
mkdir: /usr/local/var/homebrew/locks: Permission denied
となっていたので、どうやら権限が外れてしまっているようです。
やったこと
エラーメッセージを見る限り権限がないためにエラーが発生しているようなので、対象のフォルダに権限を付与することで解決できそうだったので試してみました。
使うコマンド
sudo chown -R `whoami` /usr/local
これで実行してみると
MBAEY:~ ey$ sudo chown -R `whoami` /usr/local
Password:
MBAEY:~ ey$ brew update
Updated Homebrew from 299dffd to f4a8d28.
Updated 2 taps (homebrew/core, homebrew/versions).
==> New Formulae
mpage
==> Updated Formulae
aria2 ford
autoconf-archive git-flow-avh
cli53 homebrew/versions/mariadb100
convox ios-deploy
emacs libstrophe
erlang ponyc
fio prometheus
==> Deleted Formulae
rsense
どうやらうまくいったみたいです。
参考
権限を付与することでエラーは解消しましたが、そもそも「なぜ権限が外れてしまったのか」はよく分かっていません。
これとは別かもしれませんが、調べていると次の記事が見つかりました
この記事の下の方に「Sophos Antivirus」を使用しているかとあり、どうやらSophosがスキャンしている時にディレクトリの権限に影響を与えるとの内容が書かれていました。
権限周りでなぜかエラーになった時に、考えられる原因として「セキュリティソフト」が挙げられるというのは意外でした。