Linux (CentOS)運用時のメモ : CentOS6.6 で ruby 2.2.0をインストールでエラー
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>]
以下略
$ 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
今度は無事インストール出来たが、コンパイルしているのでものすごく時間がかかるので、気長に待つこと。
投稿された内容の著作権はコメントの投稿者に帰属します。