OS X (Lion)へのrvmでのrubyインストール時にopenssl_missing.cでconflictingがでて失敗する問題の解消

OS X でrvmを利用してrubyの様々なバージョンをいれるのがとても簡単で便利。

基本的には

bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)

とやるだけで勝手にrvmをインストールしてくれる。

その後、

rvm install 1.9.3

などとしてrubyの好きなバージョンをインストールするのだけど、このときにエラーがでた。

Error running 'make ', please read /Users/---/.rvm/log/ruby-1.9.3-p125/make.log
There has been an error while running make. Halting the installation.

このmake.logファイルをみてみるとこんな感じのエラーがでていた。

openssl_missing.h:123: error: conflicting types for 'BN_rand_range'
/opt/local/include/openssl/bn.h:411: error: previous declaration of
'BN_rand_range' was here
openssl_missing.h:124: error: conflicting types for
'BN_pseudo_rand_range'
/opt/local/include/openssl/bn.h:412: error: previous declaration of
'BN_pseudo_rand_range' was here
make[1]: *** [openssl_missing.o] Error 1

別途OpenVPNなどを入れたりしているのだけど、そのタイミングか何かで既にこれらのファイルがあったのかもしれない。

とりあえず、といことでこの/opt/local/include/openssl/bn.hを

sudo vim /opt/local/include/openssl/bn.h

として開き、411行目と412行目をコメントアウト

/*
int BN_rand_range(BIGNUM *rnd, const BIGNUM *range);
int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range);
*/

これでもう一度

rvm install 1.9.3

としたら無事インストールできた。

念のため、 /opt/local/include/openssl/bn.h のコメントアウトした箇所も元に戻しておいた。

ちなみに /usr/include/openssl/bn.h にも同じファイルがあったが、こっちはrvm での rubyコンパイル時に使っていないようで何もしなくて大丈夫だった。

Share on Facebook
このエントリーをはてなブックマークに追加
はてなブックマーク - OS X (Lion)へのrvmでのrubyインストール時にopenssl_missing.cでconflictingがでて失敗する問題の解消
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です