2012年11月12日に投稿

[Ruby] CentOS で gem –version を実行すると libyaml をインストールするように警告がでる場合の対処方法

Ruby 1.9.3 をソースコードからインストールして gem install rails を実行したときに、下記のエラーが発生しました。下記のエラーは libyaml がインストールされていないと発生するエラーのようです。

発生したエラーメッセージは下記のとおりです。

[html]
It seems your ruby installation is missing psych (for YAML output). To eliminate this warning, please install libyaml and reinstall your ruby.
[/html]

エラーを検索すると、libyaml-devel をインストールしたのち、Ruby を再コンパイルすれば良いという情報が手に入ります。
libyaml-devel は標準 yum リポジトリに含まれていないので、rpmforge を使用します。

[html]
yum -y install –enablerepo=rpmforge libyaml-devel
[/html]

これで libyaml がインストールされました。
このあとRuby を再コンパイルをしますが、普通の再コンパイルでは結果は変わりません。
再コンパイル時に下記のように ./configure のオプションを変えたところうまくいきました。

[html]
./configure –with-opt-dir=/usr/lib –disable-install-doc
make
make install
[/html]

–with-opt-dir に指定するパスは libyaml がインストールされているディレクトリを指定します。
私の場合は whereis libyaml で /usr/lib/libyaml.so と出ましたので –with-opt-dir=/usr/lib としました。

ちなみに –with-opt-dir は ヘッダーファイル、ライブラリファイルを探すディレクトリを追加するオプションです。
http://www.ruby-lang.org/ja/old-man/html/mkmf.html

これで gem

下記の記事が解決の決め手となりました。ありがとうございます。
http://emaame.com/20111104.html

関連記事

One Response to “[Ruby] CentOS で gem –version を実行すると libyaml をインストールするように警告がでる場合の対処方法”

  1. まつもと より:

    有益な情報ありがとうございます。

    参考にさせて頂きながら試したのですが
    > 私の場合は whereis libyaml で /usr/lib/libyaml.so と出ましたので
    という場合でしたら
    > –with-opt-dir=/usr/lib
    ではなくて
    –with-opt-dir=/usr
    でインストールが成功しました (ruby1.9.3-p551 のインストールです)。

Leave a Reply