Updating an installed RHEL6 system using DVD ISOs and yum throws dependency errors and aborts, why?
Environment
- Red Hat Enterprise Linux 6
- System not connected to Red Hat Satellite or RHN
Issue
With a system installed with Red Hat Enterprise Linux 6.2 or earlier and attempting to update it to Red Hat Enterprise Linux 6.4 or later by way of loop-mounting the DVD ISO and using yum to perform the update - it fails if for example matahari or systemtap-grapher is installed on the system with errors such as these:
Error: Package: matahari-network-0.4.4-11.el6.x86_64 (@anaconda-RedHatEnterpriseLinux-201111171049.x86_64/6.2)
Requires: libqpidcommon.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-RedHatEnterpriseLinux-201111171049.x86_64/6.2)
libqpidcommon.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (rhel-source)
Not found
Error: Package: systemtap-grapher-1.6-4.el6.x86_64 (@anaconda-RedHatEnterpriseLinux-201111171049.x86_64/6.2)
Requires: systemtap-runtime = 1.6-4.el6
Removing: systemtap-runtime-1.6-4.el6.x86_64 (@anaconda-RedHatEnterpriseLinux-201111171049.x86_64/6.2)
systemtap-runtime = 1.6-4.el6
Updated By: systemtap-runtime-2.3-3.el6.x86_64 (rhel-source)
systemtap-runtime = 2.3-3.el6
Resolution
The resolution is either to de-install the known problematic packages prior to commencing the update; or build a composite repository utilising the ISO images past the minor one is updating from, up to and including the ISO of the minor one is targeting to update to. It may, circumstances depending, be required to do a bit of both.
Root Cause
The problem is that when packages are deprecated (for whatever the reason) they may actually not be included on later minor releases ISOs and there may be transitionary packages in certain minors that sunsets the deprecated package. This can cause problems with dependency resolution where one of those transitionary package versions are needed to make the update smooth. This problem becomes more pronounced when one starts to skip minors, such as going from 6.2 to 6.5 in a single step; especially when either updating packages by hand with rpm or setting up repositories from the loop-mounted ISO media and using yum
Known problematic packages discovered are:
matahari packages was deprecated in Red Hat Enterprise Linux 6.4 (see 6.4 TechNotes and 6.5 TechNotes) and so was actually systemtap-grapher albeit it was not mentioned in the Technical Notes.
systemtap-grapher does actually have a package version 1.7-5.el6_3.1 in Red Hat Enterprise Linux 6.3 that can be installed that prevents the dependency issues, but that would require updating all the installed systemtap packages and any potential dependencies prior to running the full yum upgrade taking the system from <= 6.2 to >= 6.4. Easier is to deinstall systemtap-grapher prior to the system update and then fetch from RHN the latest version of the package if it still is required.
Do note: systemtap-grapher package is deprecated.
Diagnostic Steps
Review the output of yum or rpm when running the update procedure and cross-reference with the TechNotes for all the minors between the one the system currently is on up to and including the one it is being updated to.
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.