ひさしぶりにbrew update
しようとしたら、エラーが出た。
$ brew update
warning: unable to unlink .travis.yml: Permission denied
warning: unable to unlink .yardopts: Permission denied
warning: unable to unlink CONTRIBUTING.md: Permission denied
warning: unable to unlink SUPPORTERS.md: Permission denied
fatal: cannot create directory at '.github': Permission denied
Error: Failure while executing: git pull --ff --no-rebase --quiet origin refs/heads/master:refs/remotes/origin/master
調べてみるとHigh Sierraになってから/usr/local
のパーミッションが変えられなくなったのが問題らしい。
対処方法
結論からいうと、Homebrewの再インストールで直りました。アンインストールはしませんでした。
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
インストール済みだったパッケージもそのまま残り、今のところ問題も起きていません。
解決までに色々試して、少し問題も起きたので、備忘のために経緯も残しておきます。
対処の経緯
久々にHomebrewでインストールしたパッケージのupgradeをしたかったのでbrew update
したらエラーで実行できなかった。
Correct. /usr/local can no longer be chown'd in High Sierra. Instead use
sudo chown -R $(whoami) $(brew --prefix)/*
[Can't chown /usr/lo'brew update' errors on MacOS 10.13 (High Sierra) · Issue #3285 · Homebrew/brewcal in High Sierra · Issue #3228 · Homebrew/brew](https://github.com/Homebrew/brew/issues/3228#issuecomment-332679274)
$ sudo chown -R $(whoami) $(brew --prefix)
もしくは $ sudo chown -R $(whoami) $(brew --prefix)/*
で解決するということなので実行してみる。
$ sudo chown -R $(whoami) $(brew --prefix)
chown: /usr/local: Operation not permitted
解決せず。
The following worked to re-install:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" Brew now works entirely as expected..
'brew update' errors on MacOS 10.13 (High Sierra) · Issue #3285 · Homebrew/brew
再インストールをすると直るらしい。
アンインストール/インストールするという情報もあったけど、アンインストールするとインストール済みパッケージもアンインストールされるらしいのでできればアンインストールはしたくない。再インストールでやってみる。
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
・・・
==> Installation successful!
成功!インストール済みパッケージもそのまま残って、今のところ動作も問題なし。やったね!
検証作業時の役立ちメモ
brew update
が失敗したときの対処
brew update
が途中で失敗すると、brewコマンドが打てなくなりました。
その場合は以下のコマンドで戻ります。
$ cd /usr/local
$ git reset --hard && git clean -df
mac でbrew がおかしくなった(brew updateができない)のを解決 - Qiita
権限の書き換えをしたあとにmysqlが動かなくなったときの対処
$ sudo chown -R $(whoami) $(brew --prefix)
を実行したときに、mysql関連の変えちゃいけないディレクトリまで権限が書き換わっていたっぽい。下記のコマンドで解決しました。
$ sudo chown -RL root:mysql /usr/local/mysql
$ sudo chown -RL mysql:mysql /usr/local/mysql/data
'warning the user/local/mysql/data directory is not owned by the mysql user', you have to: