OS X で Homebrew を使って git の最新バージョンを入れようとしてうまくいかなかったときの対応

概要
OS X で Homebrew を使って git の最新バージョンをインストールしたところ、OS X に最初からインストールされている旧バージョンの git の方が優先されてしまうという問題が発生した。サーチパスを変更することでこの問題が解決した。

OS X にインストールされている git のバージョン確認

OS X 10.11 El Capitan が入っている自分の MacBook Air で git [1] を使おうと考えた。git がちゃんとインストールされているかどうかわからなかったので、ターミナルから以下のコマンドを打って、git がインストールされているかどうかを確かめた。

$ git --version
git version 2.5.4 (Apple Git-61)

どうやら、Apple が OS X にあらかじめ git をインストールしておいてくれているようだ。しかし、この git はバージョンが 2.5.4 とやや古い。2016年3月13日現在、git の公式Webサイトを見ると、git の最新バージョンは 2.7.3 である。

Homebrew での git のインストール

というわけで、最新バージョンの git をインストールすることにした。OS X で必要なツールをインストールするには Homebrew [2] を使うのが便利だ。

Homebrew [3] で git をインストールするためには、ターミナルで以下のコマンドを実行すればよい。

$ brew update
$ brew install git

1行目で Homebrew 自体のアップデートを行い、2行目で git をインストールしている。このコマンドを実施したところ、以下のような出力がなされた。

🍺 /usr/local/Cellar/git/2.7.3: 1,410 files, 237.5M

これでどうやら最新バージョンであるバージョン 2.7.3 がインストールされたようだ。

最新バージョンが呼び出されないという問題

そこで、ターミナルから以下のコマンドを打って、git のバージョンが実際に上がっているを確かめた。

$ git --version
git version 2.5.4 (Apple Git-61)

この結果は、Homebrew で最新バージョンの git をインストールする前と変わらない。

どうやら Homebrew で最新バージョンの git をインストールしたにもかかわらず、ターミナルは Apple が OS X に元から入れていた方の git を呼び出してしまうようだ。

そこで、ターミナルがどこから git を呼び出しているかを見るために、以下のコマンドをターミナルに入力した。

$ which git
/usr/bin/git

Homebrew でインストールされた最新バージョンの git は /usr/local/bin にインストールされているはずなので、“/usr/bin/git”と出てくるのはおかしい。明らかに、Apple が OS X に元から入れていた方の git を指している。

問題の検出

Homebrew で何か問題が起きたら、Homebrew 自体の診断機能を使って問題について調査してみるのがよい。というわけで、以下のコマンドをターミナルに打ち込もう。

$ brew doctor

そうすると、Homebrew に関して自分のコンピュータで発生している問題がずらずらと表示される。

長文なので全部は載せないが、git に関して以下のような警告が出てきた。

Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:
    git
    git-cvsserver
    git-receive-pack

要するに、サーチパスで /usr/bin が /usr/local/bin より優先されているために、OS X が元々用意しているプログラムが Homebrew でインストールしたプログラムより優先されているということだ。

というわけで、サーチパスで /usr/local/bin が /usr/bin より優先されるように変えればよい

サーチパスの変更

サーチパスを変更するには、 ~/.bash_profile の中身を書き換えればよい [4]

~/.bash_profile には、以下のように記述しよう。

PATH="/usr/local/bin:${PATH}"
export PATH

そして、 ~/.bash_profile の記述を反映するために、ターミナルに以下のコマンドを入れる。

$ source ~/.bash_profile

こうすれば、サーチパスで /usr/local/bin が /usr/bin より優先されるようになる。

この設定が済んだ状態で、git がどこから呼び出されているか、そしてその呼び出された git のバージョンはいくつであるか確認してみよう。ターミナルに入れるコマンドは以下の通り。

$ which git
/usr/local/bin/git
$ git --version
git version 2.7.3

無事、Homebrew でインストールした最新バージョンの git が呼び出されている。

脚注
  1. この記事を読んでいる人ならばわかっているだろうが、git とは世界的に広く使われているバージョン管理システムである。git の使い方を知りたければ、まず「サルでもわかるGit入門」というサイトを読むと良いだろう。本当にサルでもわかるようにわかりやすく書かれているのでおすすめだ。 []
  2. Homebrew は OS X 用のパッケージ管理システムで、これを使うことによって、必要なツールを簡単にインストール・アップデート・アンインストールすることができる。 []
  3. もし Homebrew 自体がインストールされていなかったら、Homebrew の公式ウェブサイトの記述を参考にしてインストールしておこう。 []
  4. ターミナルから編集したければ、nano .bash_profile とコマンドを打ってテキストエディタの nano で編集すればよい。vim とか emacs を使いたい人はお好きなように。 []