无法解决Ruby错误(缺少心理)
每当我在服务器上运行Ruby时,我都会收到以下错误:
/usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/yaml.rb:56:in `': 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
……
我有这个问题,安装libyaml没有帮助。 事实certificate,心理需要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
我不得不同意@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
在基于RHEL的发行版(如CentOS 6.x)上,您需要添加另一个yum存储库,例如包含libyaml-devel包的EPEL。
EPEL或下载的 密钥
EPEL的RPM
更多信息:
- CentOS – 其他资源
- Fedora项目:EPEL Howto
还建议使用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)
安装libyaml
可以解决这个问题。 以下是最受欢迎的发行版的相应软件包:
- Fedora
libyaml
- Ubuntu和其他基于Debian的
libyaml-dev
- 其他一些像CentOS
libyaml-devel
并且您还应安装以下内容以避免将来出现类似问题:
ruby-devel libxml2 libxml2-devel libxslt libxslt-devel
如果人们仍然这样做,我使用RVM中的新autolibsfunction修复它,它使用自制软件库自动安装依赖项(查看rvm help autolibs
获取信息。)
rvm reinstall 1.9.3 --autolibs=2
你好像在使用Fedora。 有关在Fedora上安装的说明,请查看官方Ruby网站。
请尝试此链接http://sraji.wordpress.com/2011/01/25/how-to-install-ruby-on-fedora-14/
我和CentOS 6.2有同样的libyaml问题
做…
rvm pkg install libyaml rvm reinstall 1.9.3 --with-libyaml-dir=/usr/local/rvm/usr
为我修好了。
(感谢@ Eugene )
确保您的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将安装好。