問題
% git --version
git version 1.9.3
ふむ
% brew update % brew upgrade git git-2.2.1 installed
はい
% git --version
git version 1.9.3
ふぁ!?
% brew upgrade git
Error: git-2.2.1 already installed
% git --version
git version 1.9.3
調査
コマンドPATHでしょうねたぶん
% which git /usr/bin/git % /usr/bin/git --version git version 1.9.3 % /usr/local/bin/git --version git version 2.2.1
/usr/local/bin/gitとは、brew管理下のCellerにあるbinへのsymlink
% ls -l /usr/local/bin/git lrwxr-xr-x 1 otiai10 admin 27 12 19 09:37 /usr/local/bin/git -> ../Cellar/git/2.2.1/bin/git
で、なんで/usr/binが優先されるかというと
% cat /etc/paths /usr/bin /bin /usr/sbin /sbin /usr/local/bin
解決
上優先なので。上記ブログでは「/etc/pathsを編集するのも良いですが、出来る限り既存のシステムファイルは弄りたくありません。」っておっしゃってるけど、やっちゃう
+/usr/local/bin /usr/bin /bin /usr/sbin /sbin -/usr/local/bin
で、shellにログインし直すと
% which git /usr/local/big/git % git --version git version 2.2.1
めでたしめでたし
なんかgit以外で問題おきたらきっとこの操作が原因なんだろうな
追記
やっぱりあかんやろ、という気持ちになったので、.zshrcでどうにかしよう。
% which git
/usr/local/bin/git
とりあえず/etc/pathsはもとに戻してログインし直すと戻るはず
% which git /usr/bin/git
で、改めて
~/.zshrc
# 末尾に export PATH=/usr/local/bin:$PATH
で、
% source ~/.zshrc
すっと
% which git /usr/local/bin/git % git --version git version 2.2.1
これでマジでめでたしです。
DRYな備忘録として