make[3]: ディレクトリ `/tmp/ruby-build.20150314063041.6105/ruby-2.2.1/ext/fiddle/libffi-3.2.1' から出ます

「rbenv」で「Ruby 2.2.1」のインストールに失敗したので対処方法を紹介します。

 

作業環境
- さくらのVPS/2G
- CentOS 7

 

エラーメッセージ
# 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 Linux 7 using ruby-build 20150303)

Inspect or clean up the working tree at /tmp/ruby-build.20150314063041.6105
Results logged to /tmp/ruby-build.20150314063041.6105.log

Last 10 log lines:
make[3]: ディレクトリ `/tmp/ruby-build.20150314063041.6105/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): 再配置 R_X86_64_32S (`.rodata' に対する)  は共有オブジェクト作成時には使用できません。-fPIC を付けて再コンパイルしてください。
./libffi-3.2.1/.libs/libffi.a: シンボルを読み込めませんでした: 不正な値です
collect2: エラー: ld はステータス 1 で終了しました
make[2]: *** [../../.ext/x86_64-linux/fiddle.so] エラー 1
make[2]: ディレクトリ `/tmp/ruby-build.20150314063041.6105/ruby-2.2.1/ext/fiddle' から出ます
make[1]: *** [ext/fiddle/all] エラー 2
make[1]: ディレクトリ `/tmp/ruby-build.20150314063041.6105/ruby-2.2.1' から出ます
make: *** [build-ext] エラー 2

 原因は、「libffi」ですね。必要なパッケージが足りないようです。

 

対処方法

足りないパッケージは、Yumでインストールします。

# yum install -y libffi-devel