如何解决“ruby安装缺少心理(对于YAML输出).”在CentOS上?

前端之家收集整理的这篇文章主要介绍了如何解决“ruby安装缺少心理(对于YAML输出).”在CentOS上?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在CentOS 5.8上安装rvm之后:
[rails@localhost ~]$rvm -v
rvm 1.16.17
[rails@localhost ~]$which ruby
~/.rvm/rubies/ruby-1.9.3-p286/bin/ruby
[rails@localhost ~]$ruby -v
ruby 1.9.3p286 (2012-10-12 revision 37165) [i686-linux]
[rails@localhost ~]$which gem
~/.rvm/rubies/ruby-1.9.3-p286/bin/gem

有一个警告:

$gem -v
/home/rails/.rvm/rubies/ruby-1.9.3-p286/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.24

我跟着some advice

$rvm pkg install libyaml
Fetching yaml-0.1.4.tar.gz to /home/rails/.rvm/archives
Extracting yaml-0.1.4.tar.gz to /home/rails/.rvm/src
Prepare yaml in /home/rails/.rvm/src/yaml-0.1.4.
Configuring yaml in /home/rails/.rvm/src/yaml-0.1.4.
Compiling yaml in /home/rails/.rvm/src/yaml-0.1.4.
Installing yaml to /home/rails/.rvm/usr

Please note that it's required to reinstall all rubies:

    rvm reinstall all --force

然后:

$rvm reinstall all --force
Removing /home/rails/.rvm/src/ruby-1.8.7-p371...
Removing /home/rails/.rvm/rubies/ruby-1.8.7-p371...
No binary rubies available for: centos/5.8/i386/ruby-1.8.7-p371.
Continuing with compilation. Please read 'rvm mount' to get more information on binary rubies.
Installing Ruby from source to: /home/rails/.rvm/rubies/ruby-1.8.7-p371,this may take a while depending on your cpu(s)...
ruby-1.8.7-p371 - #downloading ruby-1.8.7-p371,this may take a while depending on your connection...
ruby-1.8.7-p371 - #extracting ruby-1.8.7-p371 to /home/rails/.rvm/src/ruby-1.8.7-p371
ruby-1.8.7-p371 - #extracted to /home/rails/.rvm/src/ruby-1.8.7-p371
Applying patch /home/rails/.rvm/patches/ruby/1.8.7/stdout-rouge-fix.patch
Applying patch /home/rails/.rvm/patches/ruby/1.8.7/no_sslv2.diff
ruby-1.8.7-p371 - #configuring
ruby-1.8.7-p371 - #compiling
ruby-1.8.7-p371 - #installing 
Removing old Rubygems files...
Installing rubygems-1.8.24 for ruby-1.8.7-p371 ...
Installation of rubygems completed successfully.
Saving wrappers to '/home/rails/.rvm/bin'.
ruby-1.8.7-p371 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
ruby-1.8.7-p371 - #importing default gemsets (/home/rails/.rvm/gemsets/)
Install of ruby-1.8.7-p371 - #complete 
Please be aware that you just installed a ruby that requires 2 patches just to be compiled on up to date linux system.
This may have known and unaccounted for security vulnerabilities.
Please consider upgrading to Ruby 1.9.3-286 which will have all of the latest security patches.
Making gemset ruby-1.8.7-p371 pristine.
Making gemset ruby-1.8.7-p371@global pristine.
Removing /home/rails/.rvm/src/ruby-1.9.3-p286...
Removing /home/rails/.rvm/rubies/ruby-1.9.3-p286...
No binary rubies available for: centos/5.8/i386/ruby-1.9.3-p286.
Continuing with compilation. Please read 'rvm mount' to get more information on binary rubies.
Installing Ruby from source to: /home/rails/.rvm/rubies/ruby-1.9.3-p286,this may take a while depending on your cpu(s)...
ruby-1.9.3-p286 - #downloading ruby-1.9.3-p286,this may take a while depending on your connection...
ruby-1.9.3-p286 - #extracting ruby-1.9.3-p286 to /home/rails/.rvm/src/ruby-1.9.3-p286
ruby-1.9.3-p286 - #extracted to /home/rails/.rvm/src/ruby-1.9.3-p286
ruby-1.9.3-p286 - #configuring
ruby-1.9.3-p286 - #compiling
ruby-1.9.3-p286 - #installing 
Removing old Rubygems files...
Installing rubygems-1.8.24 for ruby-1.9.3-p286 ...
Installation of rubygems completed successfully.
Saving wrappers to '/home/rails/.rvm/bin'.
ruby-1.9.3-p286 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
ruby-1.9.3-p286 - #importing default gemsets (/home/rails/.rvm/gemsets/)
Install of ruby-1.9.3-p286 - #complete 
Making gemset ruby-1.9.3-p286 pristine.
Making gemset ruby-1.9.3-p286@global pristine.

太糟糕了,警告仍然存在:

$gem -v
/home/rails/.rvm/rubies/ruby-1.9.3-p286/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.24

我该如何摆脱警告?

更新:(应用rvm重新安装1.9.3 – 可移动)

$rvm reinstall 1.9.3 --movable
Removing /home/rails/.rvm/src/ruby-1.9.3-p286...
Removing /home/rails/.rvm/rubies/ruby-1.9.3-p286...
Fetching yaml-0.1.4.tar.gz to /home/rails/.rvm/archives
Extracting yaml-0.1.4.tar.gz to /home/rails/.rvm/src
Prepare yaml in /home/rails/.rvm/src/yaml-0.1.4.
Configuring yaml in /home/rails/.rvm/src/yaml-0.1.4.
Compiling yaml in /home/rails/.rvm/src/yaml-0.1.4.
Installing yaml to /home/rails/.rvm/rubies/ruby-1.9.3-p286
Installing Ruby from source to: /home/rails/.rvm/rubies/ruby-1.9.3-p286,this may take a while depending on your connection...
ruby-1.9.3-p286 - #extracting ruby-1.9.3-p286 to /home/rails/.rvm/src/ruby-1.9.3-p286
ruby-1.9.3-p286 - #extracted to /home/rails/.rvm/src/ruby-1.9.3-p286
Applying patch /home/rails/.rvm/patches/ruby/1.9.3/ruby-multilib.patch
Error running 'patch -F 25 -p1 -N -f -i /home/rails/.rvm/patches/ruby/1.9.3/ruby-multilib.patch',please read /home/rails/.rvm/log/ruby-1.9.3-p286/patch.apply.ruby-multilib.log
There has been an error applying the specified patches. Halting the installation.
Making gemset ruby-1.9.3-p286 pristine.
Making gemset ruby-1.9.3-p286@global pristine.

解决方法

在rvm pkg安装libyaml之后,重新安装ruby 1.9.3:
rvm reinstall 1.9.3 --with-libyaml-dir=/home/rails/.rvm/usr

信用:https://stackoverflow.com/a/12882906/88597

猜你在找的Ruby相关文章