homebrewユーザーがYosemiteにアプグレしたらbrewコマンドが使えなくなった問題解決法
どうも、Yosemiteにアップグレードしました。どうも僕です。
homebrewを使用しているユーザーがYosemiteにアップデートすると、/usr/local
を移動しないととても時間がかかるかも、とかどうとか言われてたのは事前に発見していました。
でも「時間がかかるだけで、それ以外には問題ないよ」ということも添えられていたので、じゃあいいかとそのままアップグレードしました。
結果としては
時間かからなかったけど、homebrewが使えなくなった
※この記事には追記が2つあります。必ず最後まで目を通してから自分で最適だと思う方法を試してください。
エラー詳細
owner@owner-mac:~$ brew install nkf /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
nkfをインストールしようとbrewコマンドを打ったら上のようなエラーが出ました。
よくわかないのでぐぐったところ解決策を見つけました。
解決方法
viでbrew.rb
の1行目を編輯します。
vi /usr/local/Library/brew.rb
--- #!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -W0 +++ #!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0
---が古いほう、+++が新しいほうです。
つまり1.8の部分をCurrentにします。
そうしたら無事brewが再び使えるようになりました。
移動しなくても、インストールに時間かかるだけだから問題ないよ、とか言ってた記事。
嘘つき!
参考
Fixing Homebrew for OS X 10.10 Yosemite - Hans van Gent a.k.a. @jcvangent
その他ぶち当たった問題
brew install してもインストールしたツールのコマンドが通らない
OSをアップグレードしなおしたらXcodeのコマンドラインツールもアップグレードしないとならないようです。
Xcodeを立ち上げて同意してインストールし直してください。
brew updateができない
どうやらbrewのupdateコマンドはgitを使って行っているようで上記の編輯(brew.rb
)をすると、ローカルのワーキングディレクトリで更新されたことがローカルリポジトリにコミットされていないため、そこにリモートの更新をプル(マージ)できないために起こるようです。
cd $(brew –repository) git commit -am ‘new ruby version 2.0′
を実行して1.8
部分をCurrent
にした変更をコミットしてあげましょう。
ちなみに私の場合はなぜか-aはできねえぞって怒られたので、次のようにしました。
owner@owner-mac:/usr/local (master *)$ git commit -am ‘new ruby version 2.0′ fatal: Paths with -a does not make sense. <-- 怒られた。日本語でOK owner@owner-mac:/usr/local (master *)$ git status <-- 変更状態を確認 On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: Library/brew.rb <-- 更新のあったファイル no changes added to commit (use "git add" and/or "git commit -a") owner@owner-mac:/usr/local (master *)$ git add Library/brew.rb <-- 更新のあったファイルをインデックスに登録 owner@owner-mac:/usr/local (master +)$ git commit <-- インデックスをコミット
(git commitするとその後viかエディターが立ち上がってコメント入力を求められるので適当にコメントを入れてviなら:wq、エディターならそのまま保存して閉じます。)
これでbrew update
ができるようになりました。
追記
どうやら、Yosemiteにする前にhomebrewを最新版にしておけば何事も問題なかったようです。嘘つきとかいってごめんなさい。
Yosemiteインストール前にbrewを最新にする。これが一番の決定策です。
定期的なアップデートって本当に大事なのね!まあ、この記事はそれを怠って問題にぶち当たった人のための記事なのだけど
さらに追記(11/9)
この記事に言及していただきました。こちらが一番簡単な解決策のようです。
Git のローカルリポジトリを更新して Homebrew を最新に - CHROMA

- 作者: 岡本隆史,武田健太郎,相良幸範
- 出版社/メーカー: 技術評論社
- 発売日: 2012/07/10
- メディア: 単行本(ソフトカバー)
- 購入: 7人 クリック: 103回
- この商品を含むブログ (26件) を見る

- 作者: 岡本隆史,織田翔,大山智之
- 出版社/メーカー: 技術評論社
- 発売日: 2014/06/27
- メディア: 大型本
- この商品を含むブログ (1件) を見る

デザイナーからプログラマーまで 絶対わかるGitバージョン管理
- 作者: 松島浩道
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/10/22
- メディア: 大型本
- この商品を含むブログ (2件) を見る

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)
- 作者: 大塚弘記
- 出版社/メーカー: 技術評論社
- 発売日: 2014/03/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (16件) を見る