Dealing with EPEL Conflicts

General support questions
Post Reply
fresh-pie
Posts: 6
Joined: 2019/11/22 23:49:51

Dealing with EPEL Conflicts

Post by fresh-pie » 2021/09/10 19:52:42

Hi,

I use Katello to manage the deployment of CentOS packages. I synced my repository with the upstream CentOS 7 and EPEL 7 repositories and I am now attempting to patch a system.

However, I am getting the below error:

Code: Select all

Resolving Dependencies
--> Running transaction check
---> Package qpid-proton-c.x86_64 0:0.14.0-2.el7 will be updated
--> Processing Dependency: qpid-proton-c(x86-64) = 0.14.0-2.el7 for package: python-qpid-proton-0.14.0-2.el7.x86_64
--> Processing Dependency: libqpid-proton.so.8()(64bit) for package: python-qpid-proton-0.14.0-2.el7.x86_64
---> Package qpid-proton-c.x86_64 0:0.35.0-1.el7 will be an update
--> Finished Dependency Resolution
Error: Package: python-qpid-proton-0.14.0-2.el7.x86_64 (@CentOS_7_Linux_for_x86_64_CentOS7-Extras-x86_64)
           Requires: libqpid-proton.so.8()(64bit)
           Removing: qpid-proton-c-0.14.0-2.el7.x86_64 (@CentOS_7_Linux_for_x86_64_CentOS7-Extras-x86_64)
               libqpid-proton.so.8()(64bit)
           Updated By: qpid-proton-c-0.35.0-1.el7.x86_64 (CentOS_7_Linux_for_x86_64_EPEL7-x86_64)
              ~libqpid-proton.so.11()(64bit)
Error: Package: python-qpid-proton-0.14.0-2.el7.x86_64 (@CentOS_7_Linux_for_x86_64_CentOS7-Extras-x86_64)
           Requires: qpid-proton-c(x86-64) = 0.14.0-2.el7
           Removing: qpid-proton-c-0.14.0-2.el7.x86_64 (@CentOS_7_Linux_for_x86_64_CentOS7-Extras-x86_64)
               qpid-proton-c(x86-64) = 0.14.0-2.el7
           Updated By: qpid-proton-c-0.35.0-1.el7.x86_64 (CentOS_7_Linux_for_x86_64_EPEL7-x86_64)
               qpid-proton-c(x86-64) = 0.35.0-1.el7
**********************************************************************
yum can be configured to try to resolve such errors by temporarily enabling
disabled repos and searching for missing dependencies.
To enable this functionality please set 'notify_only=0' in /etc/yum/pluginconf.d/search-disabled-repos.conf
**********************************************************************

Error: Package: python-qpid-proton-0.14.0-2.el7.x86_64 (@CentOS_7_Linux_for_x86_64_CentOS7-Extras-x86_64)
           Requires: libqpid-proton.so.8()(64bit)
           Removing: qpid-proton-c-0.14.0-2.el7.x86_64 (@CentOS_7_Linux_for_x86_64_CentOS7-Extras-x86_64)
               libqpid-proton.so.8()(64bit)
           Updated By: qpid-proton-c-0.35.0-1.el7.x86_64 (CentOS_7_Linux_for_x86_64_EPEL7-x86_64)
              ~libqpid-proton.so.11()(64bit)
Error: Package: python-qpid-proton-0.14.0-2.el7.x86_64 (@CentOS_7_Linux_for_x86_64_CentOS7-Extras-x86_64)
           Requires: qpid-proton-c(x86-64) = 0.14.0-2.el7
           Removing: qpid-proton-c-0.14.0-2.el7.x86_64 (@CentOS_7_Linux_for_x86_64_CentOS7-Extras-x86_64)
               qpid-proton-c(x86-64) = 0.14.0-2.el7
           Updated By: qpid-proton-c-0.35.0-1.el7.x86_64 (CentOS_7_Linux_for_x86_64_EPEL7-x86_64)
               qpid-proton-c(x86-64) = 0.35.0-1.el7
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
Uploading Enabled Repositories Report
Loaded plugins: fastestmirror, post-transaction-actions, product-id,
              : subscription-manager
I don't know why, but I'm having trouble understanding exactly what went wrong.

It looks to me that package qpid-proton-c.x86_64 0:0.14.0-2.el7 is to be upgraded. It has a couple dependencies. It requires a package and wants to remove a package.

If I use "yum info" I can see more about this package:

Code: Select all

# yum info  qpid-proton-c
Loaded plugins: enabled_repos_upload, fastestmirror, package_upload, post-transaction-actions, product-id, search-disabled-repos, subscription-manager
Loading mirror speeds from cached hostfile
 * base: ftp.usf.edu
 * extras: mirror.compevo.com
 * updates: mirrors.usinternet.com
Installed Packages
Name        : qpid-proton-c
Arch        : x86_64
Version     : 0.14.0
Release     : 2.el7
Size        : 334 k
Repo        : installed
From repo   : CentOS_7_Linux_for_x86_64_CentOS7-Extras-x86_64
Summary     : C libraries for Qpid Proton
URL         : http://qpid.apache.org/proton/
License     : ASL 2.0
Description : C libraries for Qpid Proton.

Available Packages
Name        : qpid-proton-c
Arch        : x86_64
Version     : 0.35.0
Release     : 1.el7
Size        : 215 k
Repo        : CentOS_7_Linux_for_x86_64_EPEL7-x86_64
Summary     : C libraries for Qpid Proton
URL         : http://qpid.apache.org/proton/
License     : ASL 2.0
Description : C libraries for Qpid Proton.

Uploading Enabled Repositories Report
Loaded plugins: fastestmirror, post-transaction-actions, product-id,
              : subscription-manager
It looks like EPEL has a higher version that the "CentOS Extras" repository. I'm guessing it wants to remove the currently installed version from the "CentOS Extras" repository and install the higher version from EPEL. I'm just not able to deduce why that is a problem based on the error message.

I'm 100% sure its me being an air-head, but maybe someone can help me understand this a little bit better?

fresh-pie
Posts: 6
Joined: 2019/11/22 23:49:51

Re: Dealing with EPEL Conflicts

Post by fresh-pie » 2021/09/10 19:58:42

So after typing everything out and looking at it again, I think I may see what a part of the problem is..

Is it that the system wants to upgrade "qpid-proton-c" from "0.14.0-2" to "0.35.0-1", so it wants to remove "qpid-proton-c-0.14.0-2.el7.x86_64", BUT package "python-qpid-proton-0.14.0-2.el7.x86_64" is dependent on it, so it can't remove to upgrade?

I guess I should have a "python-qpid-proton-0.35.0-1.el7.x86_64" from somewhere, but I'm missing it?

Code: Select all

# yum info python-qpid-proton
Loaded plugins: enabled_repos_upload, fastestmirror, package_upload, post-transaction-actions, product-id, search-disabled-repos, subscription-manager
Loading mirror speeds from cached hostfile
 * base: mirror.mia11.us.leaseweb.net
 * extras: mirror.compevo.com
 * updates: mirror.vacares.com
Installed Packages
Name        : python-qpid-proton
Arch        : x86_64
Version     : 0.14.0
Release     : 2.el7
Size        : 1.4 M
Repo        : installed
From repo   : CentOS_7_Linux_for_x86_64_CentOS7-Extras-x86_64
Summary     : Python language bindings for the Qpid Proton messaging framework
URL         : http://qpid.apache.org/proton/
License     : ASL 2.0
Description : Python language bindings for the Qpid Proton messaging framework.

Uploading Enabled Repositories Report
Loaded plugins: fastestmirror, post-transaction-actions, product-id,
              : subscription-manager

fresh-pie
Posts: 6
Joined: 2019/11/22 23:49:51

Re: Dealing with EPEL Conflicts

Post by fresh-pie » 2021/09/10 20:39:19

Well, I think I was able to narrow down the dependency chain here.

The root of it seems to be the "katello-agent" package. After playing around a bit with `yum deplist`, I was able to put together the below list:

1. katello-agent.noarch 3.5.4-1.el7 depends on python-gofer-proton.noarch 2.12.5-3.el7
2. python-gofer-proton.noarch 2.12.5-3.el7 depends on python-qpid-proton.x86_64 0.14.0-2.el7
3. python-qpid-proton.x86_64 0.14.0-2.el7 depends on qpid-proton-c.x86_64 0.14.0-2.el7

So, it looks like in EPEL7, python-qpid-proton-0.35.0-1.el7.x86_64 has been introduced which I guess breaks the above. I still can't wrap my head around what needs to happen for this to work? Is it the maintainers of the "katello-agent" package who would need to make the RPM compatible with the newer dependencies or one/all of the other packages in the chain?

For now, I can create a content filter to exclude upgrades to "qpid-proton-c" from EPEL, but I'd still like to understand how I could get around using that band-aid.

This stuff hurts my brain sometimes!

User avatar
TrevorH
Site Admin
Posts: 33202
Joined: 2009/09/24 10:40:56
Location: Brighton, UK

Re: Dealing with EPEL Conflicts

Post by TrevorH » 2021/09/10 22:17:27

I think the version in extras might want rebasing and rebuilding to fix this. I checked on a RHEL 7 system with their 'extras' repo enabled and cannot find qpid-proton-c on that at all - which means that the CentOS Extras copy is not a rebuild of the RHEL 7 one (it doesn't exist as far as I can see). That means that it was required for something else though I don't know what.

I looked and I cannot find python-gofer-proton anywhere. You'd also need whoever built that to rebuild it.
The future appears to be RHEL or Debian. I think I'm going Debian.
Info for USB installs on http://wiki.centos.org/HowTos/InstallFromUSBkey
CentOS 5 and 6 are deadest, do not use them.
Use the FAQ Luke

crisanti
Posts: 1
Joined: 2021/09/15 12:08:12

Re: Dealing with EPEL Conflicts

Post by crisanti » 2021/09/15 12:10:34

I had the same problem.

To fix this just exclude qpid-proton-c in the epel repo and re-run the setup. Add the following line in /etc/yum.repos.d/epel.repo:


[epel]
...
exclude=qpid-proton-c

and the do yum upgrade

It worked for me.

User avatar
TrevorH
Site Admin
Posts: 33202
Joined: 2009/09/24 10:40:56
Location: Brighton, UK

Re: Dealing with EPEL Conflicts

Post by TrevorH » 2021/09/16 20:21:27

That will work but is not really the right solution. It would be better to get the CentOS extras copies of all those things upgraded and to do that it will need a bugs.centos.org report.
The future appears to be RHEL or Debian. I think I'm going Debian.
Info for USB installs on http://wiki.centos.org/HowTos/InstallFromUSBkey
CentOS 5 and 6 are deadest, do not use them.
Use the FAQ Luke

Post Reply