Unable to resolve Ruby error (missing psych)

前端 未结 8 1354
死守一世寂寞
死守一世寂寞 2020-12-16 16:38

Whenever I run something with Ruby on my server, I get the following error:

/usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/yaml.rb:56:in `

        
相关标签:
8条回答
  • 2020-12-16 17:10

    I had this problem and installing libyaml didn't help. It turned out that libyaml-devel was needed by psych. I was on centos6 so I did this:

    curl -O http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/atomic-release-1.0-14.el6.art.noarch.rpm
    
    sudo  rpm -Uvh atomic-release-1.0-14.el6.art.noarch.rpm
    
    sudo yum install libyaml-devel
    
    rvm reinstall 1.9.3-p194
    
    0 讨论(0)
  • 2020-12-16 17:10

    In case people still hit this, I fixed it using the new autolibs feature in RVM, which automatically installs dependencies using your homebrew libraries (check out rvm help autolibs for info.)

    rvm reinstall 1.9.3 --autolibs=2

    0 讨论(0)
  • 2020-12-16 17:14

    The problem could be solved by installing libyaml. Below are the corresponding packages for the most popular distributions:

    • Fedora libyaml
    • Ubuntu and other Debian based libyaml-dev
    • Some other like CentOS libyaml-devel

    and also you should install the following to avoid similar problems in future:

    ruby-devel libxml2 libxml2-devel libxslt libxslt-devel
    
    0 讨论(0)
  • 2020-12-16 17:20

    I have to disagree with @JunaidKirkire in that I think you are running CentOS or Redhat 5 which uses a a very old version of Ruby by default and I think using RVM is a much better way to go. I believe you will just need to compile libyaml from source with the following:

    rvm pkg install libyaml

    This will tell you the directory that it is compiling into, in my case, it is /Users/ehowe/.rvm/usr

    You then need to recompile Ruby with the following option:

    rvm reinstall 1.9.3 --with-libyaml-dir=$directory_that_rvm_installed_libyaml_to

    So in my case, I would do:

    rvm install 1.9.3 --with-libyaml-dir=/Users/ehowe/.rvm/usr

    If you are running rvm as root, this will get installed into /usr/local/rvm/usr. If you are running it as a user, as is recommended, it would be /home/$user/.rvm/usr

    0 讨论(0)
  • 2020-12-16 17:21

    I had this same libyaml issue with CentOS 6.2

    Doing...

    rvm pkg install libyaml
    rvm reinstall 1.9.3 --with-libyaml-dir=/usr/local/rvm/usr
    

    Fixed it for me.

    (thanks to @Eugene)

    0 讨论(0)
  • 2020-12-16 17:22

    You seem to be working on Fedora. Check the official Ruby website for instructions on installing on Fedora.

    Try this link too http://sraji.wordpress.com/2011/01/25/how-to-install-ruby-on-fedora-14/

    0 讨论(0)
提交回复
热议问题