Hi
Trying to apply all available updates to CentOS 5 and the following is observed
# yum update Loaded plugins: downloadonly, fastestmirror, rhnplugin Loading mirror speeds from cached hostfile Setting up Update Process Resolving Dependencies --> Running transaction check
<snip>
--> Running transaction check ---> Package unixODBC-libs.i386 0:2.2.11-10.el5 set to be updated ---> Package unixODBC-libs.x86_64 0:2.2.11-10.el5 set to be updated --> Processing Dependency: /bin/tar for package: redhat-lsb --> Processing Dependency: /bin/tar for package: redhat-lsb --> Finished Dependency Resolution redhat-lsb-4.0-2.1.4.el5.x86_64 from installed has depsolving problems --> Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.4.el5.x86_64 (installed) redhat-lsb-4.0-2.1.4.el5.i386 from installed has depsolving problems --> Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.4.el5.i386 (installed) --> Running transaction check ---> Package kernel-xen.x86_64 0:2.6.18-194.32.1.el5 set to be erased ---> Package kernel-xen-devel.x86_64 0:2.6.18-194.32.1.el5 set to be erased --> Processing Dependency: /bin/tar for package: redhat-lsb --> Processing Dependency: /bin/tar for package: redhat-lsb --> Finished Dependency Resolution redhat-lsb-4.0-2.1.4.el5.x86_64 from installed has depsolving problems --> Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.4.el5.x86_64 (installed) redhat-lsb-4.0-2.1.4.el5.i386 from installed has depsolving problems --> Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.4.el5.i386 (installed) Error: Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.4.el5.i386 (installed) Error: Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.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 trying to just update tar
# yum update tar Loaded plugins: downloadonly, fastestmirror, rhnplugin Loading mirror speeds from cached hostfile Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package tar.x86_64 2:1.15.1-32.el5_8 set to be updated --> Processing Dependency: /bin/tar for package: redhat-lsb --> Processing Dependency: /bin/tar for package: redhat-lsb --> Finished Dependency Resolution redhat-lsb-4.0-2.1.4.el5.x86_64 from installed has depsolving problems --> Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.4.el5.x86_64 (installed) redhat-lsb-4.0-2.1.4.el5.i386 from installed has depsolving problems --> Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.4.el5.i386 (installed) Error: Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.4.el5.i386 (installed) Error: Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.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
but interestingly if i yum locainstall the tar package and then yum update it all works fine - seems very odd and possibly a broken yum package as rpm works OK ?
anyone seen this?
thanks
On 06/11/2012 06:21 AM, Tom Brown wrote:
Hi
Trying to apply all available updates to CentOS 5 and the following is observed
# yum update Loaded plugins: downloadonly, fastestmirror, rhnplugin Loading mirror speeds from cached hostfile Setting up Update Process Resolving Dependencies --> Running transaction check
<snip>
--> Running transaction check ---> Package unixODBC-libs.i386 0:2.2.11-10.el5 set to be updated ---> Package unixODBC-libs.x86_64 0:2.2.11-10.el5 set to be updated --> Processing Dependency: /bin/tar for package: redhat-lsb --> Processing Dependency: /bin/tar for package: redhat-lsb --> Finished Dependency Resolution redhat-lsb-4.0-2.1.4.el5.x86_64 from installed has depsolving problems --> Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.4.el5.x86_64 (installed) redhat-lsb-4.0-2.1.4.el5.i386 from installed has depsolving problems --> Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.4.el5.i386 (installed) --> Running transaction check ---> Package kernel-xen.x86_64 0:2.6.18-194.32.1.el5 set to be erased ---> Package kernel-xen-devel.x86_64 0:2.6.18-194.32.1.el5 set to be erased --> Processing Dependency: /bin/tar for package: redhat-lsb --> Processing Dependency: /bin/tar for package: redhat-lsb --> Finished Dependency Resolution redhat-lsb-4.0-2.1.4.el5.x86_64 from installed has depsolving problems --> Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.4.el5.x86_64 (installed) redhat-lsb-4.0-2.1.4.el5.i386 from installed has depsolving problems --> Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.4.el5.i386 (installed) Error: Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.4.el5.i386 (installed) Error: Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.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 trying to just update tar
# yum update tar Loaded plugins: downloadonly, fastestmirror, rhnplugin Loading mirror speeds from cached hostfile Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package tar.x86_64 2:1.15.1-32.el5_8 set to be updated --> Processing Dependency: /bin/tar for package: redhat-lsb --> Processing Dependency: /bin/tar for package: redhat-lsb --> Finished Dependency Resolution redhat-lsb-4.0-2.1.4.el5.x86_64 from installed has depsolving problems --> Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.4.el5.x86_64 (installed) redhat-lsb-4.0-2.1.4.el5.i386 from installed has depsolving problems --> Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.4.el5.i386 (installed) Error: Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.4.el5.i386 (installed) Error: Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.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
but interestingly if i yum locainstall the tar package and then yum update it all works fine - seems very odd and possibly a broken yum package as rpm works OK ?
anyone seen this?
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.
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.
thanks
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.
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.
from memory i have not deliberately removed the i386 package, but you are right it is not there, however rpm does seem to know about /bin/tar
# rpm -ql tar /bin/gtar /bin/tar <snip>
although i agree its something rpm db related as reinstalling tar via rpm rather than yum solves the problem, however i dont see how this situation has arisen.
from memory i have not deliberately removed the i386 package, but you are right it is not there, however rpm does seem to know about /bin/tar
# rpm -ql tar /bin/gtar /bin/tar
<snip>
although i agree its something rpm db related as reinstalling tar via rpm rather than yum solves the problem, however i dont see how this situation has arisen.
rebuilding the rpmdb did not help - installing the i386 package using rpm 'fixed' it but its still very strange
Hello Tom,
On Mon, 2012-06-11 at 14:23 +0100, Tom Brown wrote:
from memory i have not deliberately removed the i386 package, but you are right it is not there, however rpm does seem to know about /bin/tar
# rpm -ql tar /bin/gtar /bin/tar
<snip>
although i agree its something rpm db related as reinstalling tar via rpm rather than yum solves the problem, however i dont see how this situation has arisen.
rm /bin/tar will remove the binary but not update the rpmdb.
rpm -V {package} to verify the package installation.
Regards, Leonard.
Hello Tom,
On Mon, 2012-06-11 at 15:48 +0100, Tom Brown wrote:
well yes - but tar is not removed, that is the point,
I guess I'll have to take your word for it as there is nothing in what you mention that verifies this statement. rpm -ql tar will not verify that any files are actually there, just that they got installed at some point.
Did you verify /bin/tar was actually there before you did the yum localinstall? Perhaps a colleague playing a prank on you? Or an accidental removal while using mc without confirmation on delete enabled?
Since both x86_64 packages *and* i386 packages seem to be missing /bin/tar I doubt this is a multi arch issue.
Regards, Leonard.
I guess I'll have to take your word for it as there is nothing in what you mention that verifies this statement. rpm -ql tar will not verify that any files are actually there, just that they got installed at some point.
Did you verify /bin/tar was actually there before you did the yum localinstall? Perhaps a colleague playing a prank on you? Or an accidental removal while using mc without confirmation on delete enabled?
Since both x86_64 packages *and* i386 packages seem to be missing /bin/tar I doubt this is a multi arch issue.
# yum update Loaded plugins: downloadonly, fastestmirror, rhnplugin Loading mirror speeds from cached hostfile Setting up Update Process Resolving Dependencies --> Running transaction check
<snip>
---> Package tar.x86_64 2:1.15.1-32.el5_8 set to be updated --> Processing Dependency: /bin/tar for package: redhat-lsb --> Finished Dependency Resolution redhat-lsb-4.0-2.1.4.el5.x86_64 from installed has depsolving problems --> Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.4.el5.x86_64 (installed) Error: Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.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
# rpm -ql tar | grep bin /bin/gtar /bin/tar
# ll /bin/tar -rwxr-xr-x 1 root root 230464 Mar 31 2010 /bin/tar
# rpm -q tar tar-1.15.1-30.el5
# rpm -ivh http://vault.centos.org/5.7/os/i386/CentOS/tar-1.15.1-30.el5.i386.rpm Retrieving http://vault.centos.org/5.7/os/i386/CentOS/tar-1.15.1-30.el5.i386.rpm Preparing... ########################################### [100%] 1:tar ########################################### [100%]
# yum update Loaded plugins: downloadonly, fastestmirror, rhnplugin Loading mirror speeds from cached hostfile Setting up Update Process Resolving Dependencies --> Running transaction check
<big snip>
Transaction Summary ================================================================================================================================================================================================================================================================= Install 4 Package(s) Upgrade 263 Package(s) Remove 2 Package(s) Reinstall 0 Package(s) Downgrade 0 Package(s)
Total download size: 417 M Is this ok [y/N]:
So tar really really is there but it only starts working when the i386 package is put onto the system, even though this is a x86_64 box
thanks
# yum update Loaded plugins: downloadonly, fastestmirror, rhnplugin Loading mirror speeds from cached hostfile Setting up Update Process Resolving Dependencies --> Running transaction check
<snip>
---> Package tar.x86_64 2:1.15.1-32.el5_8 set to be updated --> Processing Dependency: /bin/tar for package: redhat-lsb --> Finished Dependency Resolution redhat-lsb-4.0-2.1.4.el5.x86_64 from installed has depsolving problems --> Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.4.el5.x86_64 (installed) Error: Missing Dependency: /bin/tar is needed by package redhat-lsb-4.0-2.1.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
# rpm -ql tar | grep bin /bin/gtar /bin/tar
# ll /bin/tar -rwxr-xr-x 1 root root 230464 Mar 31 2010 /bin/tar
# rpm -q tar tar-1.15.1-30.el5
# rpm -ivh http://vault.centos.org/5.7/os/i386/CentOS/tar-1.15.1-30.el5.i386.rpm Retrieving http://vault.centos.org/5.7/os/i386/CentOS/tar-1.15.1-30.el5.i386.rpm Preparing... ########################################### [100%] 1:tar ########################################### [100%]
# yum update Loaded plugins: downloadonly, fastestmirror, rhnplugin Loading mirror speeds from cached hostfile Setting up Update Process Resolving Dependencies --> Running transaction check
<big snip>
Transaction Summary
Install 4 Package(s) Upgrade 263 Package(s) Remove 2 Package(s) Reinstall 0 Package(s) Downgrade 0 Package(s)
Total download size: 417 M Is this ok [y/N]:
So tar really really is there but it only starts working when the i386 package is put onto the system, even though this is a x86_64 box
To close the loop on this by making the 32 bit tar package available to the system during the update allowed the update to progress as it got pulled in as a dep during the yum run and all was happy.
thanks
Hello Tom,
On Tue, 2012-06-12 at 17:12 +0100, Tom Brown wrote:
To close the loop on this by making the 32 bit tar package available to the system during the update allowed the update to progress as it got pulled in as a dep during the yum run and all was happy.
I suppose my idea that this might not be a multi arch issue is probably bogus. This issue might be worth reporting upstream, although I think you should report this against redhat-lsb, not tar.
It might have something to do with rpm assuming the Requires: /bin/tar in the redhat-lsb spec file to be a i386 binary by default. If you look at that spec file you see that all required libraries have a conditional arch qualifier. Perhaps that is actually needed for explicitly required binaries too. Although that might still cause a catch 22 when upgrading redhat-lsb for both archs as in this case the requirement for one of the archs is still unsatisfied as only one /bin/tar is available. Anyway, probably worth reporting upstream.
Regards, Leonard.
Johnny Hughes wrote: <snip>
When adding packages, Yum can do two things ... install or update ... and it does each differently.
<snip of much-appreciated explanation of how yum install/update/localinstall works>
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.
<snip> Johnny, here's a question: what's the yum d/b - /var/lib/yum/yumdb, and how's it different than the rpm d/b?
mark
On 06/11/2012 09:32 AM, m.roth@5-cent.us wrote:
Johnny Hughes wrote:
<snip> >>> When adding packages, Yum can do two things ... install or update ... >>> and it does each differently. <snip of much-appreciated explanation of how yum install/update/localinstall works> >>> 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. <snip> Johnny, here's a question: what's the yum d/b - /var/lib/yum/yumdb, and how's it different than the rpm d/b?