Unable to resolve Ruby error (missing psych)

2020-02-10 04:26发布

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 `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.

I installed Ruby using RVM onto my VPS.

I’ve tried installing the package libyaml as per instructed in other issues on Stack Overflow, to no avail.

I’m not sure what type of system my VPS is running, but it doesn’t have the apt-get command. It does have yum

标签: ruby install vps
8条回答
倾城 Initia
2楼-- · 2020-02-10 04:31

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/

查看更多
欢心
3楼-- · 2020-02-10 04:35

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

查看更多
乱世女痞
4楼-- · 2020-02-10 04:35

On a RHEL based distro such as CentOS 6.x you need to add another yum repository such as EPEL which contain the libyaml-devel package.

Keys for EPEL or download
RPM for EPEL

More info:

Would also suggest the use of yum-plugin-priorities

Add EPEL Yum Repository

rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
rpm -Kih http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Install libyaml-devel via yum

yum -y install libyaml-devel

Packages

Dependencies Resolved

====================================================================================
 Package                       Arch         Version           Repository       Size
====================================================================================
Installing:
 libyaml-devel                 x86_64       0.1.3-1.el6       epel             84 k
Installing for dependencies:
 libyaml                       x86_64       0.1.3-1.el6       epel             52 k

Transaction Summary
====================================================================================
Install       2 Package(s)
查看更多
女痞
5楼-- · 2020-02-10 04:37

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
查看更多
对你真心纯属浪费
6楼-- · 2020-02-10 04:42

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)

查看更多
贼婆χ
7楼-- · 2020-02-10 04:46

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

查看更多
登录 后发表回答