homebrew の update でエラー発生
今日 homebrew のアップデートを行ったらところエラーが発生して update が出来ない状況が発生!!
出たエラーは以下のエラーです。
ERROR
/usr/local% brew update error: Your local changes to the following files would be overwritten by merge: Library/Contributions/brew_zsh_completion.zsh .... error: The following untracked working tree files would be overwritten by merge: Library/ENV/4.3/g++-4.2 .... Please move or remove them before you can merge. Aborting Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master
なんか よくわかりませんが pull で失敗しているみたい。。。
こういう時は まずは お医者さんに相談です。
そう brew doctor を実行してみます。
brew doctor
/usr/local% brew doctor Warning: The /usr/local directory is not writable. Even if this directory was writable when you installed Homebrew, other software may change permissions on this directory. Some versions of the "InstantOn" component of Airfoil are known to do this. You should probably change the ownership and permissions of /usr/local back to your user account. Warning: Your Xcode (4.5.2) is outdated Please install Xcode 4.6. Warning: You have uncommitted modifications to Homebrew If this a surprise to you, then you should stash these modifications. Stashing returns Homebrew to a pristine state but can be undone should you later need to do so for some reason. cd /usr/local/Library && git stash && git clean -f
Xcode のバージョンはおいておくとして、
/usr/local が writable じゃないって診察されました。
パーミッション変えたつもりはないのですが、
何かを入れたときに変更されちゃったのでしょうか
パーミッション確認
/usr/local% ls -al total 16 drwxr-xr-x@ 17 root wheel 578 1 29 08:53 . drwxr-xr-x@ 13 root wheel 442 1 4 18:04 ..
/usr/local のパーミッションが 755 になって グループが wheel になってる。
グループは たしか staff だったはず
早速変更
パーミッションとグループ変更
usr/local% sudo chgrp staff . /usr/local% sudo chmod 775 . /usr/local% ls -al total 16 drwxrwxr-x@ 17 root staff 578 1 29 08:53 . drwxr-xr-x@ 13 root wheel 442 1 4 18:04 ..
もういちど brew doctor を実行してみますと
brew doctor で再チェック
/usr/local% brew doctor Warning: Your Xcode (4.5.2) is outdated Please install Xcode 4.6. Warning: You have uncommitted modifications to Homebrew If this a surprise to you, then you should stash these modifications. Stashing returns Homebrew to a pristine state but can be undone should you later need to do so for some reason. cd /usr/local/Library && git stash && git clean -f
パーミッションの問題は消えたようです。
こんどは uncommitted のほうを解消する。
uncommitted の修正
/usr/local% cd /usr/local/Library && git stash && git clean -f Saved working directory and index state WIP on master: 054f155 mutt: make thread/sidebar patches mutually exclusive HEAD is now at 054f155 mutt: make thread/sidebar patches mutually exclusive Not removing Contributions/examples/ Removing ENV/4.3/g++-4.2 ....
以上で 修正が出来たかな
では brew update を実行。
brew update
/usr/local/Library% brew update Updated Homebrew from 054f155c to 7486ff25. ==> New Formulae clasp git-flow-clone mon sqlcipher ...
おお 無事 update できました。
困ったときは brew doctor