1. Qiita
  2. 投稿
  3. homebrew

ヾ(o゚ω゚o)ノ゙brew updateでエラーでたった[Homebrew]

  • 193
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

※この記事は、2013年12月20日に書きました

■まえがき

最新のzshをHomebrewでインストールするついでに、
brew updateをした際にエラーがでたのでメモ。

※尚、MacOSX 10.9.1です。

■Homebrewがどのくらい古いか確認

ターミナル
$ cd $(brew --prefix)
$ git log

cd /usr/localでもおk⊂(^ω^)⊃
私の場合、
2013年8月14日までしかコミットがなかった。
ちょっと古い。

■brew updateを叩いてみる

ターミナル
$ brew update

error: Your local changes to the following files would be overwritten by merge:
    Library/Formula/mysql.rb
Please, commit your changes or stash them before you can merge.

error: Your local changes to the following files would be overwritten by merge:
    README.md
Please, commit your changes or stash them before you can merge.

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

はい、怒られたった。
ログ見る限り、mergeで上書きできない、pullできないとかgit関連のエラーっぽい。
refs/heads/master:refs/remotes/origin/master
ここあたり怪しい予感!

■brew updateできるようにした

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

homebrewのある場所に移動して、
fetchして、ローカルリポジトリをリモートの最新で上書きした。

参考にしたサイトはこちら

■再度、brew update

brew updateしたら、がーーーっといっぱいログが流れます。
git logしたら
2013年12月19日のものが最新コミットでした。
Homebrewが最新になりました!(∩´∀`)∩バンザ──イ

◎チラシの裏

チラシの裏1

恐らくcd $(brew --prefix)/usr/localに移動すると思う。
Homebrew公式サイト

Homebrewは独自のディレクトリーにパッケージをインストールし、それらを/usr/localにシンボリックリンクを張ります。

$ cd /usr/local
$ find Cellar
Cellar/wget/1.12
Cellar/wget/1.12/bin/wget
Cellar/wget/1.12/share/man/man1/wget.1

$ ls -l bin
bin/wget -> ../Cellar/wget/1.12/bin/wget

チラシの裏2

参考にしたサイトでは、
/usr/local/Library/Formulaに移動して
git fetchしてたけど、
cd /usr/local`でおk⊂(^ω^)⊃

gitのローカルリポジトリは/usr/localにあるのだし、
下位ディレクトリ(/usr/local/Library/Formula)に移動して、
gitコマンドを叩いても/usr/local以下が
$git reset --hard origin/masterされると思うのです。

なので、長いパス書かなくてもいいよとの事