Unable to resolve Ruby error (missing psych)
每当我在服务器上运行Ruby时,都会出现以下错误:
1 2 3
| /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。
我尝试按照堆栈溢出其他问题中的说明安装软件包libyaml,但无济于事。
我不确定我的VPS正在运行哪种类型的系统,但没有apt-get命令。 它确实有yum…
我必须不同意@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
-
这看起来正确吗:rvm reinstall 1.9.3 --with-libyaml-dir=usrlocalrvmsrcyaml-0.1.4。还是会这样? rvm reinstall 1.9.3 --with-libyaml-dir=usrlocalrvm?
-
先运行rvm pkg install libyaml然后运行rvm reinstall 1.9.3 --with-libyaml-dir=usrlocalrvmsrcyaml-0.1.4,我仍然收到psych警告。
-
您应该只使用usrlocalrvmusr作为路径,我对此进行了测试并奏效了。
-
我仍然遇到相同的错误:(还有其他想法吗?
-
您绝对确定使用正确的路径吗?我在干净的CentOS 5.8安装上对此进行了测试,它对我有用。您可以再试一次,然后从头到尾将完整的输出发送给我吗?
-
hastebin.com/mewexusidu.vbs-在底部重新安装后立即出现错误的示例。
-
谢谢!解决了我的问题:serverfault.com/questions/442150/
-
使用--with-libyaml-dir=home$user.rvmusr在CentOS 6.3上对我的问题进行了排序。谢谢!
-
我在Ubuntu上遇到了同样的问题,这为我解决了。许多其他建议没有用。谢谢!
我遇到了这个问题,安装libyaml并没有帮助。事实证明,心理需要libyaml-devel。我在centos6上,所以我这样做了:
1 2 3 4 5 6 7
| 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 |
-
当我运行sudo rpm -Uvh atomic-release-1.0-14.el6.art.noarch.rpm时,我得到:warning: atomic-release-1.0-14.el6.art.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 5ebd2744 error: Failed dependencies: rpmlib(FileDigests) <= 4.6.0-1 is needed by atomic-release-1.0-14.el6.art.noarch rpmlib(PayloadIsXz) <= 5.2-1 is needed by atomic-release-1.0-14.el6.art.noarch
-
什么操作系统?您可以在shell中运行吗:uname -a并在此处发布输出
-
如果您正在运行的是Fedora,请在rpm.pbone.net中搜索:libyaml-devel fedora rpm-您的版本。例如,Fedora 16 x86_64将带您到rpm.pbone.net/index.php3/stat/4/idpl/17341900/dir/fedora_16/com/。
-
Linux服务器9987 2.6.32-042stab049.6#1 SMP 2月6日星期一19:17:43 MSK 2012 i686 i686 i386 GNU / Linux
-
好的-所以它的openvz服务器。也许我不应该指出x86_64存储库。抱歉。似乎您可以在此存储库中找到i386的libyaml-devel:www6.atomicorp.com/channels/atomic/redhat/6/i386/RPMS/。
-
相反,使用该存储库运行上述命令会给我与以前完全相同的错误(请参见上面的注释)。对不起,如果我看起来像个n00b。感谢您的指导。
-
您有未解决的依赖性错误,这些错误未出现在我的系统上-尝试安装其要求的依赖性:FileDigests和PayloadIsXz。我不知道他们是什么。如果成功,则安装libyaml-devel,然后重新安装ruby。我只是搜索了libyaml-devel openvz,发现了一些建议的链接:wgetpackages.sw.be/rpmforge-release/-然后-rpm -ivh rpmforge-release-0.5.2-2.el5.rf.i386 .rpm-然后-yum install libyaml-devel ...对不起,我无法尝试其中的任何一个。
-
运行注释末尾提到的命令,然后重新安装Ruby:rvm reinstall 1.9.3。排序!非常非常感谢你。
-
凉!很高兴它有所帮助。
-
完整的安装过程(CentOS 6.3,Ruby)gist.github.com/denispeplin/5011950
在基于RHEL的发行版(例如CentOS 6.x)上,您需要添加另一个包含libyaml-devel软件包的yum存储库(例如EPEL)。
EPEL密钥或下载
EPEL的RPM
更多信息:
-
CentOS-其他资源
-
Fedora项目:EPEL Howto
还会建议使用yum-plugin-priorities
添加EPEL Yum存储库
1 2
| 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
1
| yum -y install libyaml-devel |
包
1 2 3 4 5 6 7 8 9 10 11 12 13
| 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
并且还应安装以下组件,以避免将来出现类似问题:
1
| ruby-devel libxml2 libxml2-devel libxslt libxslt-devel |
-
它在Fedora中起作用
-
"没有可用的软件包libyaml。"
-
rvm pkg install libyaml正常工作。
-
是的,它应该可以解决问题。如果可以,请在答案上打勾:)
-
libyaml用rvm pkg安装,然后我用rvm重新安装了Ruby 1.9.3。还是一样的问题。
-
谢谢你的编辑:)
-
尝试根据stackoverflow.com/a/12919013/1082754安装libyaml-devel。但是,该安装无法正常工作-并且不在Yum中。
-
如果无法找到,请尝试apt-get install pkg_name,如果找不到,请尝试apt-get search pkg_name
-
我没有apt-get命令。运行Fedora,Centos 5.8。
-
如果您使用的是fedora,则必须使用sudo yum install pkg_name
-
如果问题解决,请勾选它作为答案。
-
尚未解决,抱歉。如果我遇到百胜麻烦,请参阅其他答案中的评论。
以防万一,人们仍然使用RVM中的新autolibs功能修复了该问题,该功能使用自制软件库自动安装依赖项(有关信息,请参见rvm help autolibs。)
rvm reinstall 1.9.3 --autolibs=2
确保您的Redhat机器具有有效的订阅:
1 2 3 4 5 6 7 8 9 10 11 12 13
| # 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上购买订阅。
完成后,运行
1
| # subscription-manager repos --enable rhel-7-server-optional-rpms |
然后libyaml-devel将安装
我在CentOS 6.2上遇到了同样的libyaml问题
做...
1 2
| rvm pkg install libyaml
rvm reinstall 1.9.3 --with-libyaml-dir=/usr/local/rvm/usr |
为我修复它。
(感谢@Eugene)
您似乎正在使用Fedora。在Ruby官方网站上查看有关在Fedora上安装的说明。
也尝试此链接http://sraji.wordpress.com/2011/01/25/how-to-install-ruby-on-fedora-14/
-
我该如何安装rubygems?
-
@OliverJosephAsh:安装Ruby时默认会安装Rubygems。
-
ruby -v // ruby?? 1.8.5(2006-08-25)[i386-linux]。 gem // bash:gem:找不到命令
-
@OliverJosephAsh尝试此链接technetra.com/2009/04/22/按照上面的说明进行操作,您会很好的。祝好运。
-
无论如何,我能找到适用于ruby 1.8.5的最新rubygems版本吗?或者我可以以任何方式让yum安装1.9.3吗?
-
您的VPS正在运行哪个版本的Fedora / Redhat / CentOS?您可以使用cat etcredhat-release进行查找
-
CentOS版本5.8(最终版)(谢谢)
-
在下面查看我的答案。