2012年4月8日日曜日

It seems your ruby installation is missing psych (for YAML output)

[root@yoshi3 ~]# gem -v
/usr/local/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
1.8.21

前に
http://kakakikikeke.blogspot.jp/2012/04/centos56ruby.html
という記事を書きましたが、今回Rubyの最新版「ruby-1.9.3-p125」という
最新版をインストールすることいなりました。
最新版のRubyはソースコードからのインストールでした。

で、Rubyのインストールをしgemのインストールも完了したのですが、
gem関係の処理が絡むと冒頭の警告が出続けてしまいます。
どうやらRubyの1.9からYAMLという技術をデフォルトで使うようになっており
yamlをインストールする必要があるようです。
がこのyamlをインストールするのも結構たいへんでした
一応、YAMLインストール方法を記載しておきます。

■rpmforgeをrpmリポジトリにしyumでYAMLをインストール
---------------------------------------------
rpm -Uvh http://fr2.rpmfind.net/linux/dag/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
yum search yaml
yum -y install libyaml-devel
---------------------------------------------
で最新版のyaml
libyaml-devel-0.1.4-1.el5.rf
libyaml-0.1.4-1.el5.rf
がインストールされます
いろいろ調べているとソースコードからもインストールする方法があるので
もし上記がダメなら以下の手順も試してyamlをインストールしてみてください
http://d.hatena.ne.jp/donbulinux/20111111/1321004527
あともし、rpmパッケージ配下にすでに古いyamlがインストールされていたらrpmコマンドから削除しておきましょう
一応・・・

で、ここからが本題です。
yamlをインストールし、Rubyのソースコードを再度コンパイルし直し
gemも再度setup.rbを実行してみたのですが、やはり冒頭のエラーがでます
なぜだ・・・

で結論からいうと以下を実行することで解決しました。

-------------------------------
gem install psych
-------------------------------

ワタシも詳しく調べていないのですが、どうやらpsychというモジュールを動作させるために
yamlが必要だそうな。
で今回はyamlは無事にインストールできたが、肝心の「psych」をインストールしてなかったと。
他のサイトでもyamlをインストールすると警告は出なくなりましたという報告が非常に多かったので自分はなかなかこのコマンドまで辿りつけませんでした。
気がついたのはやはり直接ソースコードを見たからですかね。
冒頭のエラーで「/usr/local/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>':」だよー
と教えてくれていたので、ここを見てgemでinstallしてみるかという発想にいたりました。

やっぱりソースコードを見るのは重要ですね

P.S あとはこのへんが非常に参考になりました

0 件のコメント:

コメントを投稿