CentOS6.6 で ruby 2.2.0をインストールでエラー

Date 2015-2-13 4:00:42 | Topic: Linux (CentOS)運用時のメモ

CentOS6.6でyumから入れるとバージョンは1.8.7とかなり古いのでrubyを入れるためrbenvからインストールする。
まずはgitをインストールする
# yum install git
自分の環境だけに(ログインしているユーザーのみ)インストールしたいので、普段使っているユーザーでログイン後
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
rbenv のコマンドラインツールを利用できるように
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
ここで一度ログアウトする。私は仮想環境でホストを作りそこにインストールをしているため、VNCでホストに入っているので、VNCからログアウト後、再ログイン
rbenvを確かめる
$ rbenv
  rbenv 0.4.0-129-g7e0e85b
  Usage: rbenv <command> [<args>]
  以下略
ruby-build をインストール
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
rubyをインストールする前に今後使うものをインストール
$ sudo yum install openssl-devel mysql-devel readline-devel
rubyのインストール。まずはインストールできるバージョンを調べる
$ rbenv install -l
かなり長いリスが表示されるのでgrepをつけ他方が見やすい。バージョン2があるのが判っていれば rbenv install -l|grep 2
ruby 2.2.0をインストールすことにする
$ rbenv install 2.2.2
おーっと、ここでエラーになった。エラーの内容は
Last 10 log lines:
make[3]: ディレクトリ `/tmp/ruby-build.20150213115701.3537/ruby-2.2.0/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 はステータス 1 で終了しました
make[2]: *** [../../.ext/x86_64-linux/fiddle.so] エラー 1
make[2]: ディレクトリ `/tmp/ruby-build.20150213115701.3537/ruby-2.2.0/ext/fiddle' から出ます
make[1]: *** [ext/fiddle/all] エラー 2
make[1]: ディレクトリ `/tmp/ruby-build.20150213115701.3537/ruby-2.2.0' から出ます
make: *** [build-ext] エラー 2

どうやら libffi-devel が必要らしい。yumでインストール
$ sudo yum install libffi-devel
再度挑戦
$ rbenv install 2.2.2
今度は無事インストール出来たが、コンパイルしているのでものすごく時間がかかるので、気長に待つこと。


This article comes from 錦稜会 KINRYOKAI
https://www.kinryokai.net

The URL for this story is:
https://www.kinryokai.net/article.php?storyid=254