Como corrigir “instalação do ruby está faltando psych (para saída YAML).” no CentOS?

5

Após a instalação de rvm no CentOS 5.8:

[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

há um aviso:

$ 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

Eu segui alguns conselhos :

$ 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

e depois:

$ 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.

Que pena, o aviso ainda está lá:

$ 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

Como posso me livrar do aviso?

UPDATE: (aplicando rvm reinstall 1.9.3 --movable )

$ 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 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
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.
    
por ohho 25.10.2012 / 04:27

5 respostas

13

Após rvm pkg install libyaml , reinstale o ruby 1.9.3 por:

 rvm reinstall 1.9.3 --with-libyaml-dir=/home/rails/.rvm/usr

crédito: link

    
por 25.10.2012 / 10:06
1

tente isto:

rvm get head
rvm reinstall 1.9.3 --movable
    
por 25.10.2012 / 07:00
1
sudo apt-get install libtool
sudo apt-get install libyaml-dev
rvm reinstall 1.9.3

Eu tentei de tudo, isso resolveu meu problema.

    
por 07.11.2012 / 12:25
0

Eu acho que você tem que instalar o libyaml:

$ wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz 
$ tar xzvf yaml-0.1.4.tar.gz 
$ cd yaml-0.1.4 
$ ./configure --prefix=/usr/local 
$ make 
$ make install

consulte: link

    
por 25.10.2012 / 08:55
0

Você pode instalar o libyaml-devel a partir de um repositório alternativo (eu usei o repoforge.org):

sudo rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
sudo rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
sudo yum install -y libyaml-devel
    
por 03.04.2013 / 19:49

Tags