Error when upgrading libcurl with yum on RHEL 6.6

Stereo asked:

I am trying to update libcurl on a RHEL 6 server by means of yum update libcurl. When I do this I get the following error:

Resolving Dependencies
--> Running transaction check
---> Package libcurl.x86_64 0:7.19.7-40.el6_6.4 will be updated
--> Processing Dependency: libcurl = 7.19.7-40.el6_6.4 for package: libcurl-devel-7.19.7-40.el6_6.4.x86_64
---> Package libcurl.x86_64 0:7.19.7-46.el6 will be an update
--> Running transaction check
---> Package libcurl-devel.x86_64 0:7.19.7-40.el6_6.4 will be updated
---> Package libcurl-devel.x86_64 0:7.19.7-46.el6 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

 Package                                  Arch                              Version                                   Repository                                          Size
 libcurl                                  x86_64                            7.19.7-46.el6                             xxx-patch-nonprod-rhel-6                            168 k
Updating for dependencies:
 libcurl-devel                            x86_64                            7.19.7-46.el6                             xxx-patch-nonprod-rhel-6                            246 k

Transaction Summary
Upgrade       2 Package(s)

Total size: 415 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
ERROR with rpm_check_debug vs depsolve:
libcurl(x86-64) = is needed by (installed)
** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows: has missing requires of libcurl(x86-64) = ('0', '7.39.0', '')
Your transaction was saved, rerun it with: yum load-transaction /tmp/yum_save_tx-2015-08-11-12-01SQI5ei.yumtx

Any suggestions how I could resolve this?

My answer:

Your system has a copy of curl from the third party city-fan repository installed. Unfortunately someone didn’t install it correctly and its libcurl dependency does not match the version of curl, because libcurl is still the one shipped by Red Hat.

How you resolve this depends on whether you really intended to use the city-fan copy of curl, or whether it should be removed and replaced with the Red Hat distributed version.

If you intend to use city-fan then enable its repository (which is either disabled or not present) and try your original command again. I do not recommend using this repository unless you know exactly what you are doing and can resolve the dependency issues which are certain to follow. (If you could, you wouldn’t be here right now, so I strongly recommend against using this repo.)

If you intend to use the Red Hat distributed software, remove the city-fan repository if it is present, and run yum distro-sync. Note that in addition to replacing the third party package, this will also bring the system up to date.

View the full question and answer on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.