I’ve just tried to update one of my CentOS 6.2 servers that was built from an older AMI, only to find that the yum update command stopped unexpectedly with several dependency errors. They all pointed to something called “qpid”, and I must admit that I’ve never heard of it – nor did I know that it was installed.
The long list ended with the following suggestion:
You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
And why not indeed, since yum is so nice to give us suggestions. I’ve tired running “yum update –skip-broken” and got the following message:
Packages skipped because of dependency problems: qpid-cpp-client-0.14-22.el6_3.x86_64 from base qpid-cpp-client-ssl-0.14-22.el6_3.x86_64 from base qpid-cpp-server-0.14-22.el6_3.x86_64 from base qpid-cpp-server-ssl-0.14-22.el6_3.x86_64 from base qpid-qmf-0.14-14.el6_3.x86_64 from base
Looks like this didn’t quite work either.
The Solution
Turns out this is actually a bug in yum, and it’s been fixed in newer versions of CentOS. All I had to do to make it work is first uninstall both culprit packages, and then re-install them just in case they are needed.
Let’s uninstall them:
yum erase qpid-cpp-server Loaded plugins: fastestmirror, priorities Setting up Remove Process Resolving Dependencies --> Running transaction check ---> Package qpid-cpp-server.x86_64 0:0.12-6.el6 will be erased --> Processing Dependency: libqpidbroker.so.5()(64bit) for package: qpid-cpp-server-ssl-0.12-6.el6.x86_64 --> Processing Dependency: qpid-cpp-server = 0.12-6.el6 for package: qpid-cpp-server-ssl-0.12-6.el6.x86_64 --> Processing Dependency: qpid-cpp-server > 0.7 for package: matahari-broker-0.4.4-11.el6.x86_64 --> Running transaction check ---> Package matahari-broker.x86_64 0:0.4.4-11.el6 will be erased --> Processing Dependency: matahari-broker for package: matahari-0.4.4-11.el6.x86_64 ---> Package qpid-cpp-server-ssl.x86_64 0:0.12-6.el6 will be erased --> Running transaction check ---> Package matahari.x86_64 0:0.4.4-11.el6 will be erased --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Removing: qpid-cpp-server x86_64 0.12-6.el6 installed 3.2 M Removing for dependencies: matahari x86_64 0.4.4-11.el6 installed 18 k matahari-broker x86_64 0.4.4-11.el6 installed 32 k qpid-cpp-server-ssl x86_64 0.12-6.el6 installed 121 k Transaction Summary ================================================================================ Remove 4 Package(s) Installed size: 3.4 M Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Erasing : matahari-0.4.4-11.el6.x86_64 1/4 Erasing : matahari-broker-0.4.4-11.el6.x86_64 2/4 Erasing : qpid-cpp-server-ssl-0.12-6.el6.x86_64 3/4 Erasing : qpid-cpp-server-0.12-6.el6.x86_64 4/4 Verifying : matahari-broker-0.4.4-11.el6.x86_64 1/4 Verifying : qpid-cpp-server-0.12-6.el6.x86_64 2/4 Verifying : matahari-0.4.4-11.el6.x86_64 3/4 Verifying : qpid-cpp-server-ssl-0.12-6.el6.x86_64 4/4 Removed: qpid-cpp-server.x86_64 0:0.12-6.el6 Dependency Removed: matahari.x86_64 0:0.4.4-11.el6 matahari-broker.x86_64 0:0.4.4-11.el6 qpid-cpp-server-ssl.x86_64 0:0.12-6.el6 Complete!
and
yum erase qpid-cpp-client Loaded plugins: fastestmirror, priorities Setting up Remove Process Resolving Dependencies --> Running transaction check ---> Package qpid-cpp-client.x86_64 0:0.12-6.el6 will be erased --> Processing Dependency: libqpidclient.so.5()(64bit) for package: matahari-network-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidclient.so.5()(64bit) for package: matahari-host-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidclient.so.5()(64bit) for package: matahari-sysconfig-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidclient.so.5()(64bit) for package: matahari-agent-lib-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidclient.so.5()(64bit) for package: matahari-service-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidclient.so.5()(64bit) for package: qpid-qmf-0.12-6.el6.x86_64 --> Processing Dependency: libqpidclient.so.5()(64bit) for package: qpid-cpp-client-ssl-0.12-6.el6.x86_64 --> Processing Dependency: libqpidcommon.so.5()(64bit) for package: matahari-network-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidcommon.so.5()(64bit) for package: matahari-host-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidcommon.so.5()(64bit) for package: matahari-sysconfig-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidcommon.so.5()(64bit) for package: matahari-agent-lib-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidcommon.so.5()(64bit) for package: matahari-service-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidcommon.so.5()(64bit) for package: qpid-qmf-0.12-6.el6.x86_64 --> Processing Dependency: libqpidcommon.so.5()(64bit) for package: qpid-cpp-client-ssl-0.12-6.el6.x86_64 --> Processing Dependency: libqpidmessaging.so.3()(64bit) for package: matahari-network-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidmessaging.so.3()(64bit) for package: matahari-host-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidmessaging.so.3()(64bit) for package: matahari-sysconfig-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidmessaging.so.3()(64bit) for package: matahari-agent-lib-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidmessaging.so.3()(64bit) for package: matahari-service-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidmessaging.so.3()(64bit) for package: qpid-qmf-0.12-6.el6.x86_64 --> Processing Dependency: libqpidtypes.so.1()(64bit) for package: matahari-network-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidtypes.so.1()(64bit) for package: matahari-host-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidtypes.so.1()(64bit) for package: matahari-sysconfig-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidtypes.so.1()(64bit) for package: matahari-agent-lib-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidtypes.so.1()(64bit) for package: matahari-service-0.4.4-11.el6.x86_64 --> Processing Dependency: libqpidtypes.so.1()(64bit) for package: qpid-qmf-0.12-6.el6.x86_64 --> Processing Dependency: libqpidtypes.so.1()(64bit) for package: qpid-cpp-client-ssl-0.12-6.el6.x86_64 --> Processing Dependency: qpid-cpp-client = 0.12-6.el6 for package: qpid-cpp-client-ssl-0.12-6.el6.x86_64 --> Processing Dependency: qpid-cpp-client = 0.12 for package: qpid-qmf-0.12-6.el6.x86_64 --> Running transaction check ---> Package matahari-agent-lib.x86_64 0:0.4.4-11.el6 will be erased ---> Package matahari-host.x86_64 0:0.4.4-11.el6 will be erased ---> Package matahari-network.x86_64 0:0.4.4-11.el6 will be erased ---> Package matahari-service.x86_64 0:0.4.4-11.el6 will be erased ---> Package matahari-sysconfig.x86_64 0:0.4.4-11.el6 will be erased ---> Package qpid-cpp-client-ssl.x86_64 0:0.12-6.el6 will be erased ---> Package qpid-qmf.x86_64 0:0.12-6.el6 will be erased --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Removing: qpid-cpp-client x86_64 0.12-6.el6 installed 3.9 M Removing for dependencies: matahari-agent-lib x86_64 0.4.4-11.el6 installed 81 k matahari-host x86_64 0.4.4-11.el6 installed 103 k matahari-network x86_64 0.4.4-11.el6 installed 72 k matahari-service x86_64 0.4.4-11.el6 installed 126 k matahari-sysconfig x86_64 0.4.4-11.el6 installed 54 k qpid-cpp-client-ssl x86_64 0.12-6.el6 installed 332 k qpid-qmf x86_64 0.12-6.el6 installed 1.4 M Transaction Summary ================================================================================ Remove 8 Package(s) Installed size: 6.1 M Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Erasing : matahari-network-0.4.4-11.el6.x86_64 1/8 Erasing : matahari-host-0.4.4-11.el6.x86_64 2/8 Erasing : matahari-service-0.4.4-11.el6.x86_64 3/8 Erasing : matahari-sysconfig-0.4.4-11.el6.x86_64 4/8 Erasing : matahari-agent-lib-0.4.4-11.el6.x86_64 5/8 Erasing : qpid-qmf-0.12-6.el6.x86_64 6/8 Erasing : qpid-cpp-client-ssl-0.12-6.el6.x86_64 7/8 Erasing : qpid-cpp-client-0.12-6.el6.x86_64 8/8 Verifying : matahari-sysconfig-0.4.4-11.el6.x86_64 1/8 Verifying : matahari-service-0.4.4-11.el6.x86_64 2/8 Verifying : matahari-host-0.4.4-11.el6.x86_64 3/8 Verifying : qpid-cpp-client-0.12-6.el6.x86_64 4/8 Verifying : matahari-agent-lib-0.4.4-11.el6.x86_64 5/8 Verifying : matahari-network-0.4.4-11.el6.x86_64 6/8 Verifying : qpid-qmf-0.12-6.el6.x86_64 7/8 Verifying : qpid-cpp-client-ssl-0.12-6.el6.x86_64 8/8 Removed: qpid-cpp-client.x86_64 0:0.12-6.el6 Dependency Removed: matahari-agent-lib.x86_64 0:0.4.4-11.el6 matahari-host.x86_64 0:0.4.4-11.el6 matahari-network.x86_64 0:0.4.4-11.el6 matahari-service.x86_64 0:0.4.4-11.el6 matahari-sysconfig.x86_64 0:0.4.4-11.el6 qpid-cpp-client-ssl.x86_64 0:0.12-6.el6 qpid-qmf.x86_64 0:0.12-6.el6 Complete!
Culprits removed. Now bring them back with
yum install qpid-cpp-server qpid-cpp-client
and we’re done. Now yum update works fine again without any error messages.