On 06/11/2012 07:17 AM, Tom Brown wrote:
The issue seems to be that the package tar was somehow removed from your system.
When you tried to update, the system saw that the package tar was removed from the system and that it was required by the "already installed" package redhat-lsb.
This means that somehow, someone removed the package tar without regard for its dependencies ... creating several packages that had unmet dependency for tar in the rpm database.
When adding packages, Yum can do two things ... install or update ... and it does each differently.
When you "update" (even an individual package), yum is going to verify all the dependencies are met as well as to update the package. In this case it was confused about the missing dependency that was somehow created by a forced removal.
When you do an install (or localinstall), yum only tries to meet the dependencies for single package being installed, not all the dependencies for the entire rpm database plus the package being updated ... so it did not see that the already installed redhat-lsb package does not have all its dependencies met.
After tar is installed, all dependencies are met for redhat-lsb, so an update works fine.
The problem all along is that someone did a force removal of tar (at least from the rpm database) with a --nodeps switch, thus creating a system with missing dependencies.
The lesson is ... don't force remove packages manually unless you plan to repair the situation manually as well.
thanks for the response - tar has definately not been removed!
# rpm -q tar tar-1.15.1-30.el5
# yum info tar Loaded plugins: downloadonly, fastestmirror, rhnplugin Loading mirror speeds from cached hostfile Installed Packages Name : tar Arch : x86_64 Epoch : 2 Version : 1.15.1 Release : 30.el5 Size : 1.6 M Repo : installed Summary : A GNU file archiving program. URL : http://www.gnu.org/software/tar/ License : GPL Description: The GNU tar program saves many files together in one archive and can : restore individual files (or all of the files) from that archive. Tar : can also be used to add supplemental files to an archive and to update : or list files in the archive. Tar includes multivolume support, : automatic archive compression/decompression, the ability to perform : remote archives, and the ability to perform incremental and full : backups. : : If you want to use tar for remote backups, you also need to install : the rmt package.
Available Packages Name : tar Arch : x86_64 Epoch : 2 Version : 1.15.1 Release : 32.el5_8 Size : 748 k Repo : centos-5-x86_64-01062012 Summary : A GNU file archiving program License : GPL Description: The GNU tar program saves many files together in one archive and can : restore individual files (or all of the files) from that archive. Tar : can also be used to add supplemental files to an archive and to update : or list files in the archive. Tar includes multivolume support, : automatic archive compression/decompression, the ability to perform : remote archives, and the ability to perform incremental and full : backups. : : If you want to use tar for remote backups, you also need to install : the rmt package.
i know it seems like yum thinks its not there, but it is, This happens on multiple systems also.
Somehow it is NOT in the rpm database ... that is why yum thinks it is not there.
This could also happen accidentally with multilib installs (it looks like you do have this possible issue).
When a system is installed in c5, the default behavior is that both i386 and x86_64 packages are installed. It looks like you have removed the i386 packages as a rpm -q tar shows only one package (I do this too ... I think it is a good idea). There is a potential problem though ... both versions of tar (the i386 and x86_64 versions) provide /bin/tar ... when removing the i386 version, sometimes the database will remove /bin/tar from the list of installed packages even though the x86_64 version is still installed.
This can lead to the same kind of issue that you had ... and it is possible to get it silently. So, I will add a .rpmmacros entry to root so that rpm -qa also shows "E-V-R.<arch>", remove all i[3,4,5,6]86 packages, then I make an entry to exclude multilib like this in yum.conf:
multilib_policy=best
Then I reinstall all x86_64 packages that had i386 packages removed (I create a list before I remove them).
So, if you are doing "rpm -e tar.i386" (I suspect you are since there is only one currently installed) ... that might also be the source of the problem.
This is no longer a problem in CentOS-6 as anaconda does not install i386 packages on x86_64 installs by default ... but they are installed by default on CentOS-5.