2014年8月29日金曜日

Ubuntuでgem install eventmachine したい話

rbenvでRuby2.1.2のインストールしようとしたらエラーが出た話です。

数日間ずっとコケてたので辛かったです。


環境とか

・Ubuntu 14.04 LTS(64bit)
・gem 2.2.2

2014年8月29日

インストール

$ gem install eventmachine
今回のエラー
compiling pipe.cpp                                                                                                                          
linking shared-object rubyeventmachine.so                                                                                                   
/usr/bin/ld: /usr/local/lib/libssl.a(s23_srvr.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object;      recompile with -fPIC                                                                                                                        
/usr/local/lib/libssl.a: error adding symbols: Bad value                                                                                    
collect2: error: ld returned 1 exit status                                                                                                  
make: *** [rubyeventmachine.so] Error 1                                                                                                     

make failed, exit code 2

An error occurred while installing eventmachine (1.0.3), and Bundler cannot continue.
Make sure that `gem install eventmachine -v '1.0.3'` succeeds before bundling.
初めはeventmachineの問題だと思っていました。(eventmachineでコケるという記事が散見される)
http://opamp.hatenablog.jp/entry/20111004/1317720483
gem install eventmachineが失敗するとき(ruby2.2dev)

しかし、どの方法をやってもエラーが解消されないのでもう一度よく読んでみると、OpenSSLのビルドをやり直さなくてはいけないっぽい?ことがわかりました。
以下が「recompile with -fPIC」と言われた事案とそこに書いてあったOpenSSLのビルド例です。
「/usr/local/lib/libssl.a: error adding symbols: Bad value」で検索すると結構ヒットします。
初心者なので片っ端から試していきます。

CentOS6.2にbind9.6インストール時のトラブル

$ ./config -fPIC shared
$ make
$ sudo make install
変化なし

【Perl】LWP::Protocol::httpsインストール時の問題

$ ./config --shared
$ make
$ sudo make install
変化なし

Errors while compiling Apache 2.4.1 openssl 1.0.1 on Linux

$ ./config --prefix=/usr zlib-dynamic --openssldir=/etc/ssl shared
$ make
$ sudo make install
変化なし

Failed to build gem native extensions

$ ./config --prefix=/usr/local --openssldir=/usr/local/openssl shared
$ make
$ sudo make install
成功!
この後、無事eventmachine(1.0.3)が入りました!
長かった…
$ bundle install がエラー吐かず成功するのを見るのが久しぶりすぎて新しいエラーかと思いました。


0 件のコメント:

コメントを投稿