[Homebrew] brew updateでエラーが出た時の対処法


はじめに

Android Studio 2.2.2のVCS(Version Control System)でgitを使おうと、軽い気持ちで、最初にbrew upgradeを行おうとした矢先。下記、brewお作法中。

  • brew doctor
  • brew update <--- ここでエラー
  • brew upgrade

になってしまった・・・。
色々なサイトを参考にして解決したのでメモしておく。

環境

  • Mac OS X El Capitan 10.11.6

brew updateのエラー内容

ターミナル
$ sudo brew update
error: Your local changes to the following files would be overwritten by merge:
    Library/Contributions/example-formula.rb
    Library/ENV/4.3/cc
    Library/ENV/4.3/git ...(省略)

Please commit your changes or stash them before you merge.
error: The following untracked working tree files would be overwritten by merge:
    Library/Homebrew/formula_assertions.rb
    Library/Homebrew/language/go.rb
    Library/Homebrew/requirements/maximum_macos_requirement.rb
Please move or remove them before you merge.

Aborting
Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master

沢山ある……。\(^o^)/
基本的に悪さをしているのは、gitのよう…(長い間、放置していたのが祟ったか…)

と思いつつ、同じようなエラーで対応策を出してくださっていた方々が沢山いたので、それに習って対処。

対処コマンド

実際のコマンドは、以下。

ターミナル
$ cd $(brew --prefix)
$ git fetch origin
$ sudo git reset --hard origin/master

git reset --hard origin/master
というのは、gitの「HEADの位置・インデックス・ワーキングツリー」全てリセットするってことのよう。

これでイケるっしょ!と思い、brew updateを実行。

ターミナル
$ brew update
Error: /usr/local must be writable!

いけませんでした...(遠い目)
エラー内容は、書き込みできなきゃダメ!ってことなので、/usr/localの権限を変更。

ターミナル
$ sudo chown -R $(whoami):admin /usr/local

今度こそ、ということでbrew updateを再度実行。

ターミナル
$ brew update
$ brew upgrade

どちらも成功!
良かった、よかった。

参考元

ヾ(o゚ω゚o)ノ゙brew updateでエラーでたった[Homebrew]
brew updateでエラーが出た話
[git reset (--hard/--soft)]ワーキングツリー、インデックス、HEADを使いこなす方法