[さくらVPS(CentOS)]Ruby 1.9.3 インストール時の対応メモ(zlib, readline らへん) - suVeneのアレ

[さくらVPS(CentOS)]Ruby 1.9.3 インストール時の対応メモ(zlib, readline らへん)

なんかやたらと手間取った。
rvm インストール はてなブックマーク数 して、適当なライブラリをインストールして、上手くインストールできたと思ったら、gem install ruby-gems-update でネットでよく見かけるエラーに遭遇。

$ gem install rubygems-update
ERROR:  Loading command: install (LoadError)
    cannot load such file -- zlib
ERROR:  While executing gem ... (NameError)
    uninitialized constant Gem::Commands::InstallCommand

(もちろん zlib, zlib-devel はインストール済みで install 時にも –with-zlib-dir を渡してる)
このパターンのトラブルシューティングは、以下のようにして回避ってのが定番なんだが、どうもうまくいかない。

$ $rvm_path/src/ruby-1.9.3-p125/ext/zlib
$ ruby extconf.rb
$ ../../
$ make
$ make install

でも、エラーでまくり。

checking for deflateReset() in -ltrue... no
checking for deflateReset() in -llibz... no
checking for deflateReset() in -lzlib1... no
checking for deflateReset() in -lzlib... no
checking for deflateReset() in -lzdll... no

散々調べまっくた経緯を4000字ほど書きたいところだが、結論だけ書くと、公式にあるようにすれば一発で OK だった。

Remove all the manually installed packages:

$ rm -rf $rvm_path/usr

Find the requirements (follow the instructions):

$ rvm requirements

Reinstall ruby:

$ rvm reinstall 1.9.3

RVM: Ruby Version Manager – ‘rvm pkg install zlib’ はてなブックマーク数

ちなみに、readline やら、openssl でエラーが出ても、手順は似たようなものになると思う。

あと、rvm pkg install readline のときに、autoreconf でエラーが出てたんだが、これも公式にあったように、

$ rvm --skip-autoreconf pkg install readline

とすれば、インストールできた。(いいのか??)

まぁ、とりあえずは動きそうだからよいか。
しかし、なんで –with-zlib-dir… を指定して、reinstall してもエラーなのに、何の指定もなしでエラーが無くなったんだろう。余分だったのかな。

最後に

ライブラリはこれだけインストールしときゃ、だいたい幸せなはず。

sudo yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison iconv-devel

参考URL

スポンサーリンク
スポンサーリンク

コメント

  1. suVene より:

    “[さくらVPS(CentOS)]Ruby 1.9.3 インストール時の対応メモ(zlib, readline らへん) – suVeneのアレ” http://t.co/N1pW0aWo

  2. […] Ruby は前回 入れ、Rails も gem install rails で問題なく完了。 […]

  3. […] こちらのページ(注: リンク更新しました)によると、OpenSSLなどの一部のライブラリについては、以下のコマンドで、rvm内にインストールが出来るようです。 […]

コメントをどうぞ

メールアドレスが公開されることはありません。