18
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Yosemiteで動かないHomebrewをgitコマンドで治す

Last updated at Posted at 2014-10-22

#偶然このエントリを読んだ、未だ Yosemite にしてないアナタへ
悪い事は言わないから今すぐ brew update しておきましょう。
もしかすると下の作業をしなきゃいけない羽目に遭うかも…。

#状況解説
Yosemite にアップデートしたために brew コマンドが使えなくなることがあります。
原因は Homebrew の大元ファイルである /usr/local/Library/brew.rb にあります。拡張子から分かるように Ruby で書かれています。ただし、 shebang で使用する Ruby を

brew.rb-old
#!/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

brew.rb-diff
-#!/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 しましょう。

18
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?