2014年8月29日金曜日

Ubuntuでgem install eventmachine したい話

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

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


環境とか

・Ubuntu 14.04 LTS(64bit)
・gem 2.2.2

2014年8月29日

インストール

1
$ gem install eventmachine
今回のエラー
1
2
3
4
5
6
7
8
9
10
11
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インストール時のトラブル

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

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

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

Errors while compiling Apache 2.4.1 openssl 1.0.1 on Linux

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

Failed to build gem native extensions

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


0 件のコメント:

コメントを投稿