[Sy]【解決】rbenvでCentOS6.5にRuby2.2.1をインストールしたらエラー
2015/03/29
Ruby2.2.x系でタイポが原因でインストールでコケるようになってたみたい。とりあえずこの時は別に2.1.xで問題なかったのでバージョン変えて対応。
問題&対処
CentOS6.5
にrbenv
を使ってRuby2.2.1をインストールしようとしたら、以下のとおりエラーに。
$ rbenv install 2.2.1
Downloading ruby-2.2.1.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/5a4de38068eca8919cb087d338c0c2e3d72c9382c804fb27ab746e6c7819ab28
Installing ruby-2.2.1...
BUILD FAILED (CentOS release 6.5 (Final) using ruby-build 20150319zf)
Inspect or clean up the working tree at /tmp/ruby-build.20150329172111.4432
Results logged to /tmp/ruby-build.20150329172111.4432.log
Last 10 log lines:
make[3]: Leaving directory `/tmp/ruby-build.20150329172111.4432/ruby-2.2.1/ext/fiddle/libffi-3.2.1'
linking shared-object fiddle.so
/usr/bin/ld: ./libffi-3.2.1/.libs/libffi.a(raw_api.o): relocation R_X86_64_32 against `.text' can not be used when making a shared object; recompile with -fPIC
./libffi-3.2.1/.libs/libffi.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [../../.ext/x86_64-linux/fiddle.so] Error 1
make[2]: Leaving directory `/tmp/ruby-build.20150329172111.4432/ruby-2.2.1/ext/fiddle'
make[1]: *** [ext/fiddle/all] Error 2
make[1]: Leaving directory `/tmp/ruby-build.20150329172111.4432/ruby-2.2.1'
make: *** [build-ext] Error 2
エラーメッセージからrbenv /libffi-3.2.1/.libs/libffi.a: could not read symbols: Bad value
の部分を抜粋してググッてみると、以下の記事がヒット。
これを参考にlibffi-devel
をインストールしてみる。
$ sudo yum install libffi-devel
もう一度。
$ rbenv install 2.2.1
Downloading ruby-2.2.1.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/5a4de38068eca8919cb087d338c0c2e3d72c9382c804fb27ab746e6c7819ab28
Installing ruby-2.2.1...
BUILD FAILED (CentOS release 6.5 (Final) using ruby-build 20150319zf)
Inspect or clean up the working tree at /tmp/ruby-build.20150329172805.16531
Results logged to /tmp/ruby-build.20150329172805.16531.log
Last 10 log lines:
psych 2.0.8
rake 10.4.2
rdoc 4.2.0
./tool/rbinstall.rb:714:in `rescue in block in <main>': uninitialized constant LoadErroe (NameError)
from ./tool/rbinstall.rb:712:in `block in <main>'
from ./tool/rbinstall.rb:757:in `call'
from ./tool/rbinstall.rb:757:in `block in <main>'
from ./tool/rbinstall.rb:754:in `each'
from ./tool/rbinstall.rb:754:in `<main>'
make: *** [do-install-all] Error 1
さっきと別のエラーが。
エラーメッセージを読んでみると、rbinstall.rb
の714行目で落ちてるっぽく、LoadErroe (NameError)
となってる。これは。。。LoadError
をタイポしてる疑惑。
調べてみると、やっぱりその様子。
⇒ rubyコンパイル時にエラー - yokochiの開発メモうーん、sassコンパイルしたいだけなので、別に2.2.1じゃなくてもいいから2.1.2にしてリトライ。
$ rbenv install 2.1.2
Downloading ruby-2.1.2.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/f22a6447811a81f3c808d1c2a5ce3b5f5f0955c68c9a749182feb425589e6635
Installing ruby-2.1.2...
BUILD FAILED (CentOS release 6.5 (Final) using ruby-build 20150319zf)
Inspect or clean up the working tree at /tmp/ruby-build.20150329180130.26790
Results logged to /tmp/ruby-build.20150329180130.26790.log
Last 10 log lines:
rake 10.1.0
rdoc 4.1.0
test-unit 2.1.2.0
installing rdoc: /home/vagrant/.rbenv/versions/2.1.2/share/ri/2.1.0/system
installing capi-docs: /home/vagrant/.rbenv/versions/2.1.2/share/doc/ruby
The Ruby openssl extension was not compiled. Missing the OpenSSL lib?
Configure options used:
--prefix=/home/vagrant/.rbenv/versions/2.1.2
LDFLAGS=-L/home/vagrant/.rbenv/versions/2.1.2/lib
CPPFLAGS=-I/home/vagrant/.rbenv/versions/2.1.2/include
さっきのエラーは出なかったけど、openssl-devel
が必要らしい。
$ sudo yum -y install openssl-devel
openssl-devel
をインストールして、再度Ruby2.1.2をインストールして解決。