homebrew で Ruby の require 関連のエラーが出た時の対応

  • 3
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

====

$ brew list
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': /usr/local/Library/Homebrew/download_strategy.rb:88: invalid multibyte escape: /^\037\213/ (SyntaxError)
invalid multibyte escape: /^\037\235/
invalid multibyte escape: /^\xFD7zXZ\x00/

というエラーが出る原因と対応方法。

原因

エラーの原因は homebrew インストール後に、Ruby のバージョンを上げたこと。

解決方法

こうなると、brew doctor しても同じエラーが出るしどうしようもなくなる。当然 brew update もできない。

これを解決するために brew コマンドの shebang を書き換える。

brewコマンドの場所は where なりで探していただければ良いかと(だいたい /usr/local/bin/brew)。

このファイルの1行目を、以下のように変更する。

#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

こうすることで、問題のエラーはでなくなるので、

$ brew update

してあげれば、新しいバージョンの Ruby に対応した homebrew にアップデートできる。さきほど修正した brew コマンドは新しいものに上書きされているはずなので、戻す必要はない。