OSをMavericksにアップデートしてからHomebrewでパッケージをインストールすると下のスクリーンショットのようなエラーが出ました。
エラー内容は
Error: lftp dependency readline was built with the following
C++ standard library: libstdc++ (from clang)This is incompatible with the standard library being used
to build lftp: libc++ (from clang)Please reinstall readline using a compatible compiler.
hint: Check https://github.com/Homebrew/homebrew/wiki/C++-Standard-Libraries
とのこと。
ヒントって書いてあるリンク先を読むと、Mavericksとそれ以前ではコンパイル時に使用するC++の標準ライブラリの種類が違うらしく、新しくインストールするパッケージが、OSアップデート前にビルドしたパッケージに依存していると不具合があるから、昔インストールしたパッケージは再インストールしてねということだった。
さらにリンク先には、以前インストールしたパッケージを全て再インストールするコマンドを吐き出してくれるRubyのプログラムのソースが貼ってあったので、それを使えば楽そう。
そのRubyソース→generate-homebrew-install-commands.rb(Gist)
このgenerate-homebrew-install-commands.rbを実行したところ、
brew reinstall -v hoge
brew reinstall -v piyo
brew reinstall -v fuga
…
といったコマンドの羅列が出力されるものだったので、ソースを落として以下のコマンドを実行すると一発で全部再インストールされるはず。
1 |
ruby generate-homebrew-install-commands.rb | while read l; do $l; done |
もりしん(@morishin127)