Ruby 1.9.3で "missing psych"

2012-03-10 12:15 | tag:

Ruby 1.9.3をCentOS 5でビルドしてgemを実行したところ次のようなエラーが表示された。これは、Ruby 1.9.3ではYAMLパーサーとして従来のsyckにかわりpsychが使われるようになったため。psychはlibyamlを使用する。

libyaml-develをインストールしてRubyをビルドしなおせば解決する。

# gem
/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.
RubyGems is a sophisticated package manager for Ruby.  This is a
basic help message containing pointers to more information.

libyaml-develをCentOSにインストールする手順

CentOSの標準のリポジトリにはlibyaml-develが含まれていないので、EPELリポジトリからインストールする。

yumリポジトリにEPELを追加:

rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

libyaml-develをインストール:

yum install libyaml-devel

CentOS 5でRubyをビルドする手順

CentOS 5上で、libyamlの件も含めて後で困ったことがおこらないようにRuby 1.9.3をビルドする手順。

rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum gorupinstall "Development Tools"
yum install openssl-devel readline-devel zlib-devel libyaml-devel