From time to time, the yum package manager may encounter issues with duplicate packages that are erroneously installed on a system. This manifests in a yum update going awry, telling us something along the lines of this:
yum update ... --> Finished Dependency Resolution Error: Package: ntp-4.2.6p5-22.el7.centos.2.x86_64 (@updates) Requires: ntpdate = 4.2.6p5-22.el7.centos.2 Removing: ntpdate-4.2.6p5-22.el7.centos.2.x86_64 (@updates) ntpdate = 4.2.6p5-22.el7.centos.2 Updated By: ntpdate-4.2.6p5-25.el7.centos.x86_64 (base) ntpdate = 4.2.6p5-25.el7.centos You could try using --skip-broken to work around the problem ** Found 41 pre-existing rpmdb problem(s), 'yum check' output follows: // huge scary list of packages follows
You may at times install all other packages via yum update –skip-broken, but it will still leave some trouble on the system. Best to take care of it.
Here’s how I’ve managed to do it on many occasions:
Installing yum-utils
The utility that will help us fix these issues is called package-cleanup, and it’s part of the yum-utils package. Let’s install that first before we continue:
yum install yum-utils
Next, let’s see what’s wrong with our system. package-cleanup –dupes will show us duplicate packages on the system:
package-cleanup --dupes Loaded plugins: fastestmirror parted-3.1-23.el7.x86_64 parted-3.1-28.el7.x86_64 tar-1.26-31.el7.x86_64 tar-1.26-29.el7.x86_64 lvm2-2.02.130-5.el7_2.5.x86_64 lvm2-2.02.166-1.el7_3.1.x86_64 ...
The list could go on. Here we see that several packages are seemingly installed more than once. The –cleandupes parameter will take care of this, erasing such superfluous packages:
package-cleanup --cleandupes
The process will look very similar to a yum update, with yum verifying and erasing the duplicates. It doesn’t hurt to make a note of the erased packages and check if the latest version is still installed. Should this not be the case, you can bring those packages back with “yum reinstall packagename”.
Finishing Up
At this point, let’s try to update the system again with a standard yum update command. This should take care of any missing dependencies that may have been removed in the previous process, and of course it’ll update the rest of your system too, hopefully taking care of the initial problem.
yum update
Finally, to see if there’s any remaining trouble with the yum database, we can issue the following and are – hopefully – greeted with the same message:
package-cleanup --problems Loaded plugins: fastestmirror No Problems Found
you needed two hyphens before cleandupes.
package-cleanup –cleandupes
They’re definitely in place, on some screens they’re difficult to read.