YUM update dependency not found in RHEL7

Latest response

I'm an issue when using 'yum update' in RHEL7 where if say the 'rpm' rpm needs to update I receive a Not Found message for an unrelated rpm (custom rpm).

The "conflicting" rpm is one that I have created named ejstestdeps-3.2-1.noarch that doesn't contain any files only that it has a dependency on /usr/bin/rpm (as I have other rpms that have this dep). The problem came to light when I attempted to patch the server; I'm going from rpm-4.11.3-17.el7.x86_64 to rpm-4.11.3-21.el7.x86_64 and the output received is:
Loaded plugins: product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Resolving Dependencies
--> Running transaction check
---> Package rpm.x86_64 0:4.11.3-17.el7 will be updated
--> Processing Dependency: rpm = 4.11.3-17.el7 for package: rpm-libs-4.11.3-17.el7.x86_64
--> Processing Dependency: rpm = 4.11.3-17.el7 for package: rpm-python-4.11.3-17.el7.x86_64
--> Processing Dependency: rpm = 4.11.3-17.el7 for package: rpm-build-4.11.3-17.el7.x86_64
---> Package rpm.x86_64 0:4.11.3-21.el7 will be an update
--> Running transaction check
---> Package rpm-build.x86_64 0:4.11.3-17.el7 will be updated
---> Package rpm-build.x86_64 0:4.11.3-21.el7 will be an update
---> Package rpm-libs.x86_64 0:4.11.3-17.el7 will be updated
--> Processing Dependency: rpm-libs(x86-64) = 4.11.3-17.el7 for package: rpm-build-libs-4.11.3-17.el7.x86_64
---> Package rpm-libs.x86_64 0:4.11.3-21.el7 will be an update
---> Package rpm-python.x86_64 0:4.11.3-17.el7 will be updated
---> Package rpm-python.x86_64 0:4.11.3-21.el7 will be an update
--> Running transaction check
---> Package rpm-build-libs.x86_64 0:4.11.3-17.el7 will be updated
---> Package rpm-build-libs.x86_64 0:4.11.3-21.el7 will be an update
--> Processing Dependency: /usr/bin/rpm for package: ejstestdeps-3.2-1.noarch
--> Finished Dependency Resolution
Error: Package: ejstestdeps-3.2-1.noarch (installed)
Requires: /usr/bin/rpm
Removing: rpm-4.11.3-17.el7.x86_64 (@ej-dev-rhel7-64-201610)
Not found
Updated By: rpm-4.11.3-21.el7.x86_64 (ej-dev-rhel7-64-201701)
Not found
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

For some reason yum is complaining about my ejstestdeps-3.2-1.noarch and it seems to want to remove the old version of rpm. This doesn't only happen for the 'rpm' rpm either b/c we're seeing for lspci, bash, and other commands. This behavior was never experienced on RHEL5/6.
Also using --skip-broken doesn't work nor does excluding the ejstestdeps (test rpm).

I also created another rpm that only requires /bin/bash and the 'rpm' rpm is updated as expected.

I realize the custom rpm should only require rpm and not be fully pathed unfortunately I have many rpms in this state and they all can't be rebuilt.
I'm looking for a solution or workaround or even understanding if this is a bug in RHEL7 yum.

Thank you.
--Ed

Responses

Looks similar to this issue. yum update on Satellite client fails with "Not found" dependency resolution errors

Try clearing repodata on the channel then yum clean all on the RHEL 7 system.

Thank you for the info but this isn't a cache issue. It seems that when yum is upgrading the 'rpm' rpm it wants to delete it then add it which is causing the ejstestdeps-3.2-1.noarch to complain about removing its dependency. If I create a test rpm that only requires /bin/rpm vs. /usr/bin/rpm then the upgrade happens without issue.

Interesting. /bin is a symbolic link to /usr/bin. It's a huge inconvenience having to rebuild all your RPMs to use /bin/rpm.

Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.