How to fix yum update failure blaming “qpid-cpp”

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.

You can leave a comment on my original post.