Homebrewで「Error /usr/local must be writable」

久々にWebアプリを書き始めたけど、Web アプリ開発に関しては序盤だけリモート環境よりローカルで開発できた方が捗る。

最近買った MacBook Pro には開発環境を作っていなかったので、MySQLとか入れたいしと作業を始めた途端に以下のエラー。

[overlast@]$brew update
Error: /usr/local must be writable!


このエラーは、引っかかるのが数年に一回(環境以降に失敗した場合)なので毎回、前回自分がどう対応したのかを忘れる。
この状況ということは、Homebrew周りはupgradeしなおす必要がある。

最初に問題になるのは/usr/local以下の権限まわりなので、雑に所有者を「$(whoami):admin」に揃える。

[overlast@]$sudo chgrp -R admin /usr/local
[overlast@]$sudo chown -R $(whoami) /usr/local


その後、以下を順に実行していって諸々確認。

$ brew doctor
$ brew prune
$ brew update


以下の様に表示されたので、/usr/local だけ権限を root:wheel に戻す。

Homebrew no longer needs to have ownership of /usr/local. If you wish you can
return /usr/local to its default ownership with:
  sudo chown root:wheel /usr/local


その後、過去すぎて消えたFormulaをuninstall。

$ brew upgrade
エラーが出る
$ brew uninstall --force [エラーが出たやつ]


削除が一段落するとupgradeが回り始める。

$ brew upgrade
==> Upgrading 64 outdated packages, with result:
いろいろ


その後は、各パッケージの注意書きを読んで Error が出ていたら解決する。
大体、brew link --overwrite で解決していくことに鳴る。

Homebrew でインストールしたものと macos 側の pre-installed なものが被る場合は、メッセージに従って使っているshellの環境設定に書いていく必要がある。

$ brew upgrade
$


終わり。ようやく環境構築を始められる。


投稿者:としのり  日時:23:59:59 | コメント | トラックバック |
blog comments powered by Disqus