Question

Every single time I try to #sudo yum update, I get warnings that PyYAML-3.08-4.el5.x86_64 is missing a dependency, libyaml-0.so.1()(64bit).

So I did some checks, and it appears that libyaml is indeed installed, so I'm wondering what is wrong with my installation of PyYAML and libyaml. libyaml was automatically pulled by PyYAML, which leads me to think that something odd is going on with the repo. Output from YUM is as follows:

[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

So we know we have a problem, so where is this libyaml anyway?

[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

So does the library exist?

[alexander@am-web-1 ~]$ ls /usr/lib64/libyaml-0.so.1*
/usr/lib64/libyaml-0.so.1  /usr/lib64/libyaml-0.so.1.1.0

The 64bit one does, does the 32bit one?

[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

They both exist, so what's the problem?!?

Was it helpful?

Solution

This is more of a ServerFault question, but I've seen the same issue with updating/installing Cobbler. This is an issue with the multiple repos you have enabled at this point. It's generally bad practice to have both repos permanently enabled at the same time. There's a slight conflict between the libyaml package from RPMForge and the packages provided via the EPEL repository.

To fix, erase the RPMForge package via yum erase libyaml, then continue your update with yum update --disablerepo=rpmforge. You could also go an extra step by permanently excluding that particular package from your RPMForge repo config file...

OTHER TIPS

inspired by @ewwhite 's answer I found out doing this works well

yum erase libyaml
yum install --disablerepo=rpmforge libyaml-devel
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top