LionのXcode 4.3をインストールした環境で、RVMを使用してREEをインスト—ルしようとしたところ、以下のようなエラーが出ました。
ERROR: Error running './installer -a /Users/annotunzdy/.rvm/rubies/ree-1.8.7-2011.03 --no-tcmalloc --dont-install-useful-gems ', please read /Users/annotunzdy/.rvm/log/ree-1.8.7-2011.03/install.log
ERROR: There has been an error while trying to run the ree installer. Halting the installation.
ログファイルを見ると、
./ext/purelib.rb:2: [BUG] Segmentation fault gcc 4.7
と書かれており、どうやらビルドに失敗しているようでした。
調べてみると、Xcode 4.3からLLVMのgccのみがインストールされるようになったのですが、
REEがLLVMに対応しておらず、LLVMでは正常にビルドできないのが原因でした。
そこで以下のように、MacPortsから非LLVMのGCCをインストールした上で、
MacPortsのGCCを使用するようにすることで回避できました。
sudo port install gcc47 +universal
export CC=/opt/local/bin/gcc-mp-4.7
rvm install ree
LLVMへの早期対応を望みます。。
2012/3/23 追記
RVMを最新にアップグレードしたところ、
前回の記事のCC変数の設定だけでは、REEをインストールできなくなりました。
次の手順でうまくいきました。
- gcc4.7をインストールしていない場合はインストール
sudo port install gcc47 +universal
- 必須パッケージをインストール
rvm pkg install readline
rvm pkg install iconv
rvm pkg install zlib
rvm pkg install openssl
rvm pkg install autoconf
- 環境変数を設定
export export DYLD_LIBRARY_PATH=$HOME/.rvm/usr/lib:/opt/local/lib:$LIBPATH:$DYLD_LIBRARY_PATH
export C_INCLUDE_PATH=$HOME/.rvm/usr/include:/opt/local/include:/usr/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH:$CPLUS_INCLUDE_PATH
export CC=/opt/local/bin/gcc-mp-4.7
export CXX=/opt/local/bin/g++-mp-4.7
export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig:$PKG_CONFIG_PATH
- REEのインストール
rvm install ree --with-openssl-dir=$HOME/.rvm/usr --with-readline-dir=$HOME/.rvm/usr
Mac OS X標準のcurlのバージョンが古いため、一部gemはインストールされませんでしたが、
REE自体のインストールはこれで無事成功しました。
また、1.8.7のインストールも失敗していましたが、同様の設定でインストールできました。
2012/3/23 再追記
Rubyに、GCC 4.7でビルドした場合、timeout.rbが正常に動作しないバグがあるようです。
Ruby 1.9.3では修正されたようなのですが、Ruby 1.8.7/REEではまだ修正されていません。
このエラーの影響で、一部gemがインストールできませんでした。
ここからGCC 4.2のインストーラーをダウンロードして、GCC 4.2でビルドしたほうがより良さそうです。