Rubyを2.2.1にバージョンアップする時のエラーに対処

なんだかRubyのバージョンアップに手間取ってしまった。
全体の流れはこちら ↓ を参照。

rbenv / Ruby / Ruby on Rails アップグレードの手順 | Workabroad.jp
  

rbenv install 2.2.1

としたところで、こんなエラー。

Installing ruby-2.2.1...

BUILD FAILED (CentOS release 6.4 (Final) using ruby-build 20130901-461-g7f3cc01)

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

Last 10 log lines:
make[3]: Leaving directory `/tmp/ruby-build.20150315081134.17206/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.20150315081134.17206/ruby-2.2.1/ext/fiddle'
make[1]: *** [ext/fiddle/all] Error 2
make[1]: Leaving directory `/tmp/ruby-build.20150315081134.17206/ruby-2.2.1'
make: *** [build-ext] Error 2

対処

こちらのトラブルシューティングに沿って対処してみた。
CentOS 6.4です。

Home · sstephenson/ruby-build Wiki
  
必要なライブラリをインストール

sudo yum install -y gcc openssl-devel libyaml-devel libffi-devel readline-devel zlib-devel gdbm-devel ncurses-devel

既にインストールしていて2.2.1に上げる場合、これが抜けてる可能性もある。

sudo yum install libffi-devel

  
そして自分の場合はこれが原因だった。

No space left on device
Some distributions will mount a tmpfs partition with low disk space to /tmp, such as 250 MB.

mount | grep tmp
df -h | grep tmp

とするとわかるけど、

tmpfs                 230M     0  230M   0% /dev/shm

  
265 MB必要なのに、230MBしか割り当てられてない。
なので、こんな感じでマウントしなおしました。

sudo mount -o remount,size=300M,noatime /dev/shm

  
これで大丈夫なはず。

rbenv install 2.2.1

Downloading ruby-2.2.1.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/5a4de38068eca8919cb087d338c0c2e3d72c9382c804fb27ab746e6c7819ab28
Installing ruby-2.2.1...
Installed ruby-2.2.1 to /home/vagrant/.rbenv/versions/2.2.1

  

Railsのインストール

せっかくRubyのバージョンを上げたんだし、
Railsも最新版にしとくかと思ったらここでもエラー発生。

Nokogiriのビルドに失敗します。

こんな感じで解決です。

sudo yum -y install libxml2 libxslt libxml2-devel libxslt-devel
gem install nokogiri -- --use-system-libraries

gem install --no-ri --no-rdoc rails

何かありましたらコメントをどうぞ

comments powered by Disqus

人気の記事

950 Points チリ出身のギタリストが弾くドラゴンボールZがむちゃくちゃかっこいい…
774 Points Wordpress + Heroku + PostgreSQL + Amazon S3 = ¥0 / 無料でサイト運営
700 Points Rubyのチートシート 変数 / クラス / モジュール
524 Points Rubyのチートシート / アクティブサポート
451 Points 紙のデザイナーがウェブ開発できるようになるまでに必要なこと
435 Points Rails / Google Analyticsのデータを使って分析や管理画面のためのグラフをつくる
323 Points RailsとHerokuでノーティフィケーションをプッシュする / PusherとTurbolinksの兼ね合い
222 Points Rails / RSpec テスト書いたことない メンドクサイ(n´Д`)という時のチートシート
193 Points Rails / Ajaxを使って画面遷移しない一時保存機能をつける
193 Points Protractorでスクレイピングしてみた