无法解决Ruby错误(缺少心理)

时间:2012-10-14 12:27:27

标签: ruby install vps

每当我在服务器上运行Ruby时,我都会收到以下错误:

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

我使用RVM将Ruby安装到我的VPS上。

我已尝试按照Stack Overflow上的其他问题的说明安装软件包libyaml,但无济于事。

我不确定我的VPS正在运行什么类型的系统,但它没有apt-get命令。它确实有yum ...

8 个答案:

答案 0 :(得分:18)

我不得不同意@JunaidKirkire,因为我认为你运行的是CentOS或Redhat 5,默认使用的是旧版本的Ruby,我认为使用RVM是一个更好的方法。我相信您只需要使用以下内容从源代码编译libyaml:

rvm pkg install libyaml

这将告诉你它正在编译的目录,在我的例子中,它是/Users/ehowe/.rvm/usr

然后,您需要使用以下选项重新编译Ruby:

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

所以在我的情况下,我会这样做:

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

如果您以root用户身份运行rvm,则会将其安装到/usr/local/rvm/usr。如果您按照建议的那样以用户身份运行它,那么它将是/home/$user/.rvm/usr

答案 1 :(得分:12)

我遇到了这个问题,安装libyaml没有帮助。事实证明,心理需要libyaml-devel。我在centos6上所以我这样做了:

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

答案 2 :(得分:8)

在基于RHEL的发行版(如CentOS 6.x)上,您需要添加另一个yum存储库,例如包含libyaml-devel包的EPEL。

EPEL的{p> Keysdownload
EPEL RPM

更多信息:

还建议使用yum-plugin-priorities

添加EPEL Yum存储库

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

通过yum

安装libyaml-devel
yum -y install libyaml-devel

软件包

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)

答案 3 :(得分:3)

安装libyaml可以解决问题。以下是最受欢迎的发行版的相应软件包:

  • Fedora libyaml
  • Ubuntu和其他基于Debian的libyaml-dev
  • 其他一些像CentOS libyaml-devel

并且您还应安装以下内容以避免将来出现类似问题:

ruby-devel libxml2 libxml2-devel libxslt libxslt-devel

答案 4 :(得分:1)

如果人们仍然点击这个,我使用RVM中的新autolibs功能修复它,它使用自制软件库自动安装依赖项(查看rvm help autolibs获取信息。)

rvm reinstall 1.9.3 --autolibs=2

答案 5 :(得分:0)

你似乎正在开发Fedora。查看官方Ruby网站,了解有关在Fedora上安装的说明。

请尝试此链接http://sraji.wordpress.com/2011/01/25/how-to-install-ruby-on-fedora-14/

答案 6 :(得分:0)

我与CentOS 6.2有同样的libyaml问题

...做

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

为我修好了。

(感谢@ Eugene

答案 7 :(得分:0)

确保您的Redhat计算机具有有效订阅:

# subscription-manager list 

+-------------------------------------------+
    Installed Product Status
+-------------------------------------------+
Product Name:   Red Hat Enterprise Linux Server
Product ID:     69
Version:        7.1
Arch:           x86_64
Status:         Subscribed
Status Details: 
Starts:         06/13/2014
Ends:           06/12/2015

状态必须说“已订阅”。如果没有,那么通过登录并在https://access.redhat.com/management/consumers购买订阅可能会受到影响。

完成后,运行

# subscription-manager repos --enable rhel-7-server-optional-rpms

然后libyaml-devel将安装OK。