How to fix duplicate packages in yum

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 can leave a comment on my original post.