Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use OS native runc rather than bundling on RHEL8 #231

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

goeranu
Copy link

@goeranu goeranu commented Apr 30, 2021

The RPM does provide on runc for most platforms, but not for RHEL8. It
does not work there, since there is native package that provides runc
that lives in a module stream. Yum fails to find or install a non-modular
package when a module provides the same name.

For those with access to RedHat pages, some more information is available
here: https://access.redhat.com/solutions/5588101

A problem with simply omitting the "provides" from the package is that it
will then come in conflict with the native package. It is for example not
possible to install both docker and the native podman in parallel.

This patch changes the contanerd.io package on RHEL8 to require the native
OS version instead of bundling its own copy. With this, parallel installation
of docker and podman is again possible.

Closes #210

@koryaga
Copy link

koryaga commented Jul 8, 2021

Hi. Any plans to finish this PR ? Do you need some assistance ?

@mirekingr
Copy link

+1 This came back on my RHEL8.

DCO needs author's fix: https://github.com/docker/containerd-packaging/pull/231/checks?check_run_id=2477036864
Minor conflicts to be resolved.

@hrv231
Copy link

hrv231 commented Jan 21, 2022

A problem with simply omitting the "provides" from the package is that it will then come in conflict with the native package. It is for example not possible to install both docker and the native podman in parallel.

This patch changes the contanerd.io package on RHEL8 to require the native OS version instead of bundling its own copy. With this, parallel installation of docker and podman is again possible.

Hello @goeranu , can you please let us know how you manage to install both at the same time, I'm having the same problem on Centos 8 Stream.

[root@vm1 ~]# yum install podman
Last metadata expiration check: 0:47:25 ago on Fri 21 Jan 2022 02:34:50 PM EST.
Error: 
 Problem: package podman-1:3.4.1-3.module_el8.6.0+954+963caf36.x86_64 requires runc >= 1.0.0-57, but none of the providers can be installed
  - package containerd.io-1.3.7-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.3.7-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.3.7-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.3.7-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.3.7-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.3.7-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.3.7-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.3.7-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.3.7-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.3.7-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.3.7-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.3.7-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - problem with installed package containerd.io-1.4.12-3.1.el8.x86_64
  - package containerd.io-1.3.9-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.3.9-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.3.9-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.3.9-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.3.9-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.3.9-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.3.9-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.3.9-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.3.9-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.3.9-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.3.9-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.3.9-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - cannot install the best candidate for the job
  - package runc-1.0.0-64.rc10.module_el8.4.0+522+66908d0c.x86_64 is filtered out by modular filtering
  - package runc-1.0.0-70.rc92.module_el8.5.0+736+58cc1a5a.x86_64 is filtered out by modular filtering
  - package containerd.io-1.4.3-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.4.3-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.4.3-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.4.3-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.4.3-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.4.3-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.4.3-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.4.3-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.4.3-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.4.3-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.4.3-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.4.3-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.4.3-3.2.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.4.3-3.2.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.4.3-3.2.el8.x86_64 conflicts with runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.4.3-3.2.el8.x86_64 obsoletes runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.4.3-3.2.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.4.3-3.2.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.4.3-3.2.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.4.3-3.2.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.4.3-3.2.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.4.3-3.2.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.4.3-3.2.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.4.3-3.2.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.4.4-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.4.4-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.4.4-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.4.4-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.4.4-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.4.4-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.4.4-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.4.4-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.4.4-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.4.4-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.4.4-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.4.4-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.4.6-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.4.6-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.4.6-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.4.6-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.4.6-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.4.6-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.4.6-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.4.6-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.4.6-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.4.6-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.4.6-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.4.6-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.4.8-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.4.8-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.4.8-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.4.8-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.4.8-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.4.8-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.4.8-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.4.8-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.4.8-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.4.8-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.4.8-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.4.8-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.4.9-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.4.9-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.4.9-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.4.9-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.4.9-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.4.9-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.4.9-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.4.9-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.4.9-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.4.9-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.4.9-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.4.9-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.4.10-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.4.10-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.4.10-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.4.10-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.4.10-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.4.10-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.4.10-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.4.10-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.4.10-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.4.10-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.4.10-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.4.10-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.4.11-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.4.11-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.4.11-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.4.11-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.4.11-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.4.11-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.4.11-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.4.11-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.4.11-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.4.11-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.4.11-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.4.11-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.4.12-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.4.12-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - package containerd.io-1.4.12-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.4.12-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - package containerd.io-1.4.12-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.4.12-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - package containerd.io-1.4.12-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.4.12-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - package containerd.io-1.4.12-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.4.12-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.4.12-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - package containerd.io-1.4.12-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
  - installed package containerd.io-1.4.12-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  - installed package containerd.io-1.4.12-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64
  - installed package containerd.io-1.4.12-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64
  - installed package containerd.io-1.4.12-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.1-5.module_el8.5.0+890+6b136101.x86_64
  - installed package containerd.io-1.4.12-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - installed package containerd.io-1.4.12-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.6.0+926+8bef8ae7.x86_64
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

@goeranu
Copy link
Author

goeranu commented Jan 21, 2022

Hello @goeranu , can you please let us know how you manage to install both at the same time, I'm having the same problem on Centos 8 Stream.

  • package containerd.io-1.3.7-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
  • package containerd.io-1.3.7-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64

If you look at the patch, you'll see it removes both the conflict and the obsoletes declaration on runc, in addition to removing the actual binary. That will cause dnf to pull in the OS package runc, which will be used by both podman and containerd.

@hrv231
Copy link

hrv231 commented Jan 21, 2022

Sorry, but I don't get it.

So in my case should I remove the containerd package, which removes docker-ce.
Then install runc , and then try again to install docker which includes the containerd?

@goeranu
Copy link
Author

goeranu commented Jan 21, 2022

You should just build a containerd package with my patch. If you install that package, you will not get any of the warnings, and things will install nicely. Currently you have the regular containerd package installed, don't you?

@Romain-Geissler-1A
Copy link
Contributor

@thaJeztah Sorry to bother you, but have you already had the time to review this ? Red Hat already provides an official runc package so there is no need to embed it inside the containerd.io package.

ziegenberg added a commit to ziegenberg/creator-ee that referenced this pull request Mar 17, 2022
In ansible#22 and ansible#23 the podman and docker molecule drivers were added,
but the respective binaries are still missing.

This commit adds the necesarry dependencies to the execution
enviroments bindep.txt.

This commit also adds some CLI commands to check we do not remove
them inadvertently and output some helpful version information at
build time.

There is also a workaround to make installing podman and docker
simultaneously possible. This is due to a conflict between the
packaged version of runc in the containerd.io package from Docker
and the CentOS 8 Stream native version packaged for Podman and Skopeo.
This can be changed once docker/containerd-packaging#231
is merged and available upstream via the Docker repository.
Cudos for the workaround:
https://faun.pub/how-to-install-simultaneously-docker-and-podman-on-rhel-8-centos-8-cb67412f321e

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
ziegenberg added a commit to ziegenberg/creator-ee that referenced this pull request Mar 17, 2022
In ansible#22 and ansible#23 the podman and docker molecule drivers were added,
but the respective binaries are still missing.

This commit adds the necesarry dependencies to the execution
enviroments bindep.txt.

This commit also adds some CLI commands to check we do not remove
them inadvertently and output some helpful version information at
build time.

There is also a workaround to make installing podman and docker
simultaneously possible. This is due to a conflict between the
packaged version of runc in the containerd.io package from Docker
and the CentOS 8 Stream native version packaged for Podman and Skopeo.
This can be changed once docker/containerd-packaging#231
is merged and available upstream via the Docker repository.
Cudos for the workaround:
https://faun.pub/how-to-install-simultaneously-docker-and-podman-on-rhel-8-centos-8-cb67412f321e

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
@ssbarnea
Copy link

@goeranu Any change to update this PR to address CI reported issues? It would be awesome to get this in.

@Romain-Geissler-1A
Copy link
Contributor

Romain-Geissler-1A commented Mar 17, 2022

Fixing CI issues might be possible... if only external contributor could see the logs of the CI. But for this specific git repo, only Docker employees have access to it.

Note, I created a more recent pull request here #272 largely inspired from this one. For me things are in the hands of Docker employees now, there is nothing the external contributors like us can do more than what we already did.

Göran Uddeborg and others added 2 commits March 18, 2022 14:28
The RPM does provide on runc for most platforms, but not for RHEL8. It
does not work there, since there is native package that provides runc
that lives in a module stream. Yum fails to find or install a non-modular
package when a module provides the same name.

For those with access to RedHat pages, some more information is available
here: https://access.redhat.com/solutions/5588101

A problem with simply omitting the "provides" from the package is that it
will then come in conflict with the native package. It is for example not
possible to install both docker and the native podman in parallel.

This patch changes the contanerd.io package on RHEL8 to require the native
OS version instead of bundling its own copy. With this, parallel installation
of docker and podman is again possible.

Signed-off-by: Göran Uddeborg <goeran@uddeborg.se>
Signed-off-by: Göran Uddeborg <goeran@uddeborg.se>
@goeranu
Copy link
Author

goeranu commented Mar 18, 2022

@ssbarnea because of the apparent lack of interest by upstreams I haven't been too keen on updating the PR. But by your request I'v now updated it. Let's see if it gets picked up this time.

@wibbit
Copy link

wibbit commented Nov 11, 2022

Morning all

Just a note that we have the same issue on RHEL9.

@Romain-Geissler-1A
Copy link
Contributor

Romain-Geissler-1A commented Nov 11, 2022

Hi,

On my side I use RHEL 9, and I don't have this problem (anymore, it's link to my request to Red Hat to install crun by default when installing podman, instead of runc which is wrongly packaged by the Docker team rather than relying on the runc packages of the underlying distributions).

You should make sure you use recent Red Hat repositories/packages, as with the latest podman found on RHEL 9 since couple of months, this problem doesn't appear anymore.

Note: I just tried RHEL 8 now, and it still has this problem. On my side I abandonned RHEL 8 so I am no longer impacted by this issue.

Cheers,
Romain

@wibbit
Copy link

wibbit commented Nov 11, 2022

For us the conflict is buildah (depends on runc) and docker-ce, as opposed to podman specifically.

@Romain-Geissler-1A
Copy link
Contributor

@wibbit I have opened a Red Hat support request just after your last reply, asking them to fix buildah the same way they fixed podman some months ago. They just pushed the change here: https://gitlab.com/redhat/centos-stream/rpms/buildah/-/commit/27fab4ca4e59ad0f0939b494a2972aba918de517 So it will most likely be available in CentOS Stream 9 in couple of weeks. For RHEL 9, podman/containers tools was just upgraded this week, and they only upgrade it every 3 months. So it will be either be fixed in 3 months (mid Februrary 2023) or in 6 months (mid May 2023) based on which buildah version they decide to include during the next update (the release cycle on Red Hat side from commit in the git repo to actual customer availability is rather long).

@Romain-Geissler-1A
Copy link
Contributor

Hi,

FYI, Red Had has closed by ticket as solved. I didn't check myself, but I assume that now installing buildah on RHEL 9 installes only crun, no more runc, so the problem described here about co-installing podman/buildha with docker shall be ok now on RHEL 9, and most likely will never be fixed on RHEL 8.

Cheers,
Romain

@marc-guenther
Copy link

So, there exists a solution to this problem for over two years now, and it is not being merged because ??? Docker, the company, wants to make it as hard as possible to switch to Podman? Nah, just kidding. Why would they do that...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

split runc rpm (for co-installing Docker and Podman)
8 participants