footmark

ひよっこエンジニアの足跡

YosemiteにしたらHomebrew死んだ

dotfilesをGitHubで管理し始めたので(これもその内メモりたい)Macにもリポジトリをクローンしようと git clone を叩いた矢先!!!

$ git clone git@github.com:yukimine/dotfiles.git
xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools.

何じゃこりゃああああ!!!

素直にエラー文を読めばどうってことないんですが、
「あーはいはい。Git入れればいいのね。(あれ?入れてなかったっけ?まあいっか)」
と未読スルーしてしまったのでこの後無駄足を踏むことになります。
(そのおかげでHomebrewが死んでいることに気付けたので良かったのですが。)

MacにGitを入れる方法はいくつかありますが、楽だろうということでHomebrewを選択。
で、コマンドを叩くと。。。

$ brew install git
/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory
/usr/local/bin/brew: line 21: /usr/local/Library/brew.rb: Undefined error: 0

エラー文を見た瞬間悟りました。 ああ、これが先輩の言ってた、YosemiteにしたらHomebrew死ぬ現象か と。

YosemiteにしてHomebrew死んだときの対処法

前置きが長くなりましたが、対処法です。

参考

1. Command Line Toolsをアップデートする

Yosemiteにアップグレードしたら、Command Line Toolsもアップデートしなければならないようです。

僕は先述の通り、git コマンドを叩いたら、これ入れろ!っていうダイアログが出たのでそこからインストールしました。

これ
$ git clone git@github.com:yukimine/dotfiles.git
xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools.

エラー文を読む限り、Command Line Toolsが入ってないことになってますね。
以前入れたはずなので、Yosemiteにアップグレードしたら消える(もしくはパスが変わって見つからない)んでしょうか。

2. git pullでHomebrewを最新にする

Homebrewのリポジトリに修正版があがっているのでそれを入れる(ローカルリポジトリを更新する)。

Homebrewのローカルリポジトリに移動する
$ cd /usr/local/bin
最新版をpullする
$ git pull origin master

以上でHomebrewが復活します。

動いた

$ brew update

が動きました。

まとめ

Yosemiteにするときは /usr/local/bin 以下を退避させないと異常に時間がかかるとか、退避させなくても時間がかかるだけだとか、いろいろ聞いてはいましたが、Homebrewが動かなくなる(場合がある)とは。。。
参考記事を書かれた方も動かなかったとき同じ感想を持たれたようです。

とはいえ、簡単に復活させることができました。
参考記事を書いてくださった方々、ありがとうございます!!

おまけ

/usr/local/bin がHomebrewのローカルリポジトリであることを初めて知りました。

$ cd /usr/local/bin
$ git remote -v
origin  https://github.com/Homebrew/homebrew (fetch)
origin  https://github.com/Homebrew/homebrew (push)