#偶然このエントリを読んだ、未だ Yosemite にしてないアナタへ
悪い事は言わないから今すぐ brew update
しておきましょう。
もしかすると下の作業をしなきゃいけない羽目に遭うかも…。
#状況解説
Yosemite にアップデートしたために brew
コマンドが使えなくなることがあります。
原因は Homebrew の大元ファイルである /usr/local/Library/brew.rb
にあります。拡張子から分かるように Ruby で書かれています。ただし、 shebang で使用する Ruby を
#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
と決め打ちしていました。
Yosemite では Ruby 1.8 の添付が廃止されたため、このままの shebang では brew
コマンドが実行出来ません。
これは Yosemite のプレビュー版で判明していた問題なので、今年(2014年)の6/4に修正されています。
Switch to "Current" Ruby framework symlink · 1bbcc4b · Homebrew/homebrew
-#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
+#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby
つまり、それ以前に Homebrew をインストールしている(&その後 brew update
していない)と 1.8
のままになっている、と思われます。
(わたしはしょっちゅう brew update
していますし、 一度ミスって /usr/local
を全部消してしまったりしたので Current
になっていました。)
#治し方
Homebrew の更新は git で行っているので、 git fetch
でリモートを取得し、 /usr/local/Library/brew.rb
をチェックアウトすれば良いですね。
$ cd /usr/local
$ git fetch origin master:refs/remotes/origin/master -n
$ git checkout origin/master -- Library/brew.rb
そのあとはいつも通り brew doctor
して brew update
しましょう。