每次我尝试#sudo yum update时,都会收到警告: PyYAML-3.08-4.el5.x86_64缺少一个依赖项libyaml-0.so.1()(64位)。
所以我做了一些检查,看起来确实安装了libyaml,所以我想知道我的PyYAML和libyaml安装出了什么问题。libyaml是由PyYAML自动拉出的,这让我认为repo发生了一些奇怪的事情。YUM的输出如下:
[root@am-web-1 ~]# yum update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror01.th.ifl.net
* epel: mirror01.th.ifl.net
* extras: mirror01.th.ifl.net
* rpmforge: fr2.rpmfind.net
* updates: mirror01.th.ifl.net
Excluding Packages from CentOS-5 - Base
Finished
Reducing CentOS-5 Testing to included packages only
Finished
Excluding Packages from CentOS-5 - Updates
Finished
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package git.x86_64 0:1.7.10-1.el5.rf set to be updated
--> Processing Dependency: libyaml-0.so.1()(64bit) for package: PyYAML
---> Package libyaml.x86_64 0:0.1.4-1.el5.rf set to be updated
---> Package perl-Git.x86_64 0:1.7.10-1.el5.rf set to be updated
--> Finished Dependency Resolution
PyYAML-3.08-4.el5.x86_64 from installed has depsolving problems
--> Missing Dependency: libyaml-0.so.1()(64bit) is needed by package PyYAML-3.08-4.el5.x86_64 (installed)
Error: Missing Dependency: libyaml-0.so.1()(64bit) is needed by package PyYAML-3.08-4.el5.x86_64 (installed)
You could try using --skip-broken to work around the problem
You could try running: package-cleanup --problems
package-cleanup --dupes
rpm -Va --nofiles --nodigest所以我们知道我们有一个问题,那么libyaml到底在哪里呢?
[alexander@am-web-1 ~]$ yum whatprovides "*/libyaml-0.so.1"
Loaded plugins: fastestmirror
Excluding Packages from CentOS-5 - Base
Finished
Reducing CentOS-5 Testing to included packages only
Finished
Excluding Packages from CentOS-5 - Updates
Finished
libyaml-0.1.2-3.el5.i386 : YAML 1.1 parser and emitter written in C
Repo : epel
Matched from:
Filename : /usr/lib/libyaml-0.so.1
libyaml-0.1.2-3.el5.x86_64 : YAML 1.1 parser and emitter written in C
Repo : epel
Matched from:
Filename : /usr/lib64/libyaml-0.so.1
libyaml-0.1.2-3.el5.x86_64 : YAML 1.1 parser and emitter written in C
Repo : installed
Matched from:
Filename : /usr/lib64/libyaml-0.so.1
libyaml-0.1.2-3.el5.i386 : YAML 1.1 parser and emitter written in C
Repo : installed
Matched from:
Filename : /usr/lib/libyaml-0.so.1那么这个库真的存在吗?
[alexander@am-web-1 ~]$ ls /usr/lib64/libyaml-0.so.1*
/usr/lib64/libyaml-0.so.1 /usr/lib64/libyaml-0.so.1.1.064位的可以,32位的可以吗?
[alexander@am-web-1 ~]$ ls /usr/lib/libyaml-0.so.1*
/usr/lib/libyaml-0.so.1 /usr/lib/libyaml-0.so.1.1.0它们都存在,那还有什么问题?!?
发布于 2012-04-30 12:36:06
这更像是一个ServerFault问题,但我在更新/安装Cobbler时也遇到过同样的问题。这是您在此时启用的多个存储库的问题。同时永久启用两个repos通常是不好的做法。在来自RPMForge的libyaml包和通过EPEL存储库提供的包之间有一点冲突。
要修复此问题,请通过yum erase libyaml擦除RPMForge包,然后使用yum update --disablerepo=rpmforge继续更新。您还可以执行额外的步骤,从您的RPMForge存储库配置文件中永久排除该特定包...
发布于 2015-11-19 14:53:50
受到@ewwhite答案的启发,我发现这样做效果很好。
yum erase libyaml
yum install --disablerepo=rpmforge libyaml-develhttps://stackoverflow.com/questions/10076344
复制相似问题