brewでgnutlsが更新できないエラーへの対処
今度はbrewの方
前のMacPortsの件に続き、今度は家のMac miniで使っているHomebrewの方のエラー問題。
こちらも数週間ぶりにアップデート。
$ brew update
そして、更新されたソフトウェアを入れ替える。
そこでエラーが発生。
$ brew upgrade
==> Upgrading 3 outdated packages, with result:
gnutls 3.1.18, mysql 5.6.16, wget 1.15
==> Upgrading gnutls
==> Downloading ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/gnutls-3.1.18.tar.xz
Already downloaded: /Library/Caches/Homebrew/gnutls-3.1.18.tar.xz
==> ./configure --disable-static --prefix=/usr/local/Cellar/gnutls/3.1.18
==> make install
Error: gnutls dependency gmp was built with the following
C++ standard library: libstdc++ (from clang)
This is incompatible with the standard library being used
to build gnutls: libc++ (from clang)
Please reinstall gmp using a compatible compiler.
hint: Check https://github.com/Homebrew/homebrew/wiki/C++-Standard-Libraries
hint:を参考に原因を調べると、どうやらMarvericksになってC++のスタンダードライブラリがlibstdc++から、libc++へと変更になったのが原因らしい。
そして、どうやら悪さをしているのはgnutlsそのものではなく、gmpというライブラリの方らしい。
というか、ひっそりとエラーの最後の方にコンパイラを使ってるのはgmpって書いてあるし…
そんなわけで、オプション変えようとしたり、コンパイラ入れ替えようとしたり、色々と悪戦苦闘。
gmp再インストールで対処
そうこうしていてgmpを再インストールすればいいということに気がつく。
そもそもコンパイラの仕様が変わっただけで、それに相当するライブラリがないわけではないので再インストールで事足りそう。
そんなわけでbrewで再インストールのコマンド実行。
$ brew reinstall gmp
すると、再インストールはすんなり完了。
更に、今度は問題のgnutlsを再インストール
$ brew reinstall gnutls
すると、こちらも問題なくインストールされました。
そんなわけで、無事にエラーを解決出来ました。
わかってしまえば意外とあっさり。
このところ、これ系のエラーに悩まされる事が多いです。
この間は研究室でもUbuntuのXwindowがソフトウェアアップデートで死んだし…
しかも、しょうもないエラーだったりするから、タダ面倒なだけで嫌ですね。
それにしてもMarvericksになってからこういった問題が多くなった気がするけど気のせいかな?