podman: Ubuntu 19.10 package conflicts with kubeadm

Is this a BUG REPORT or FEATURE REQUEST? (leave only one on its own line)

/kind bug

Description

When trying to install version 1.8.0~7 of podman on Ubuntu 19.10, apt fails with the following error:

You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 podman : Depends: containernetworking-plugins (>= 0.8.1) but it is not installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

Running apt-get install -f results in:

The following additional packages will be installed:
  containernetworking-plugins
The following NEW packages will be installed:
  containernetworking-plugins
0 upgraded, 1 newly installed, 0 to remove and 4 not upgraded.
1 not fully installed or removed.
Need to get 0 B/8.454 kB of archives.
After this operation, 52,2 MB of additional disk space will be used.
dpkg: regarding .../containernetworking-plugins_0.8.5~1_amd64.deb containing containernetworking-plugins:
 containernetworking-plugins conflicts with kubernetes-cni
  kubernetes-cni (version 0.7.5-00) is present and installed.

dpkg: error processing archive /var/cache/apt/archives/containernetworking-plugins_0.8.5~1_amd64.deb (--unpack):
 conflicting packages - not installing containernetworking-plugins
Errors were encountered while processing:
 /var/cache/apt/archives/containernetworking-plugins_0.8.5~1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

The package kubernetes-cni is installed because of kubadm.

Steps to reproduce the issue:

  1. Set up Ubuntu 19.10 to install podman.

  2. Try to install podman.

Describe the results you received:

Podman 0.8.5 cannot be installed.

Describe the results you expected:

Podman 0.8.5 can be installed.

Additional information you deem important (e.g. issue happens only occasionally):

Output of podman version:

ersion:            1.8.0
RemoteAPI Version:  1
Go Version:         go1.12.10
OS/Arch:            linux/amd64

Output of podman info --debug:

debug:
  compiler: gc
  git commit: ""
  go version: go1.12.10
  podman version: 1.8.0
host:
  BuildahVersion: 1.13.1
  CgroupVersion: v1
  Conmon:
    package: 'conmon: /usr/libexec/podman/conmon'
    path: /usr/libexec/podman/conmon
    version: 'conmon version 2.0.10, commit: unknown'
  Distribution:
    distribution: ubuntu
    version: "19.10"
  IDMappings:
    gidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 100000
      size: 65536
    uidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 100000
      size: 65536
  MemFree: 950431744
  MemTotal: 16667303936
  OCIRuntime:
    name: runc
    package: 'containerd.io: /usr/bin/runc'
    path: /usr/bin/runc
    version: |-
      runc version 1.0.0-rc8+dev
      commit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
      spec: 1.0.1-dev
  SwapFree: 376832
  SwapTotal: 1027600384
  arch: amd64
  cpus: 8
  eventlogger: journald
  hostname: stevens
  kernel: 5.3.0-40-generic
  os: linux
  rootless: true
  slirp4netns:
    Executable: /usr/bin/slirp4netns
    Package: 'slirp4netns: /usr/bin/slirp4netns'
    Version: |-
      slirp4netns version 0.4.3
      commit: unknown
  uptime: 8h 5m 19.46s (Approximately 0.33 days)
registries:
  search:
  - docker.io
  - quay.io
store:
  ConfigFile: /home/joost/.config/containers/storage.conf
  ContainerStore:
    number: 4
  GraphDriverName: overlay
  GraphOptions:
    overlay.mount_program:
      Executable: /usr/bin/fuse-overlayfs
      Package: 'fuse-overlayfs: /usr/bin/fuse-overlayfs'
      Version: |-
        fusermount3 version: 3.4.1
        fuse-overlayfs: version 0.7.6
        FUSE library version 3.4.1
        using FUSE kernel interface version 7.27
  GraphRoot: /home/joost/.local/share/containers/storage
  GraphStatus:
    Backing Filesystem: extfs
    Native Overlay Diff: "false"
    Supports d_type: "true"
    Using metacopy: "false"
  ImageStore:
    number: 4
  RunRoot: /run/user/1000/containers
  VolumePath: /home/joost/.local/share/containers/storage/volumes

Package info (e.g. output of rpm -q podman or apt list podman):

Listing...
podman/unknown 1.8.0~7 amd64 [upgradable from: 1.8.0~6]
podman/unknown 1.8.0~7 arm64
podman/unknown 1.8.0~7 armhf

Additional environment details (AWS, VirtualBox, physical, etc.):

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 25 (11 by maintainers)

Most upvoted comments

Used some brute force to get them both installed…

sudo apt update -qq && sudo apt install -qq -y podman kubelet kubeadm kubectl 
cp -a /var/cache/apt/archives/containernetworking-plugins_0.8.7~1_amd64.deb /tmp/
mkdir container
dpkg-deb -R containernetworking-plugins_0.8.7~1_amd64.deb container/
sed -i -e '/^Version:/s/$/~conflictfree/' -e '/^Conflicts: kubernetes-cni/d' container/DEBIAN/control
rm -f container/opt/cni/bin/*
sudo dpkg -b container/ containernetworking-plugins_0.8.7~1_amd64_custom.deb
sudo dpkg -i containernetworking-plugins_0.8.7~1_amd64_custom.deb
sudo apt update -qq && sudo apt install -qq -y podman kubelet kubeadm kubectl 
sudo apt-mark hold kubelet kubeadm kubectl podman containernetworking-plugins
$ dpkg -s kubernetes-cni
Package: kubernetes-cni
Status: install ok installed
Priority: optional
Section: misc
Installed-Size: 70475
Maintainer: Kubernetes Authors <kubernetes-dev@googlegroups.com>
Architecture: amd64
Version: 0.8.7-00
Description: Kubernetes CNI
 The binaries required to provision container networking
Homepage: https://kubernetes.io

$ dpkg -s containernetworking-plugins
Package: containernetworking-plugins
Status: install ok installed
Priority: extra
Section: devel
Installed-Size: 53028
Maintainer: Lokesh Mandvekar <lsm5@fedoraproject.org>
Architecture: amd64
Version: 0.8.7~1~conflictfree
Depends: libc6 (>= 2.4)
Description: Libraries for writing CNI plugins
 The CNI (Container Network Interface) project consists of a specification
 and libraries for writing plugins to configure network interfaces in Linux
 containers, along with a number of supported plugins. CNI concerns itself
 only with network connectivity of containers and removing allocated resources
 when the container is deleted.
Built-Using: golang-1.13 (= 1.13.8-1ubuntu1)
Homepage: https://github.com/containernetworking/plugins
$ ls -l /opt/cni/bin/
total 70496
-rwxr-xr-x 1 root root  4159518 May 13 19:50 bandwidth
-rwxr-xr-x 1 root root  4671647 May 13 19:50 bridge
-rwxr-xr-x 1 root root 12124326 May 13 19:50 dhcp
-rwxr-xr-x 1 root root  5945760 May 13 19:50 firewall
-rwxr-xr-x 1 root root  3069556 May 13 19:50 flannel
-rwxr-xr-x 1 root root  4174394 May 13 19:50 host-device
-rwxr-xr-x 1 root root  3614480 May 13 19:50 host-local
-rwxr-xr-x 1 root root  4314598 May 13 19:50 ipvlan
-rwxr-xr-x 1 root root  3209463 May 13 19:50 loopback
-rwxr-xr-x 1 root root  4389622 May 13 19:50 macvlan
-rwxr-xr-x 1 root root  3939867 May 13 19:50 portmap
-rwxr-xr-x 1 root root  4590277 May 13 19:50 ptp
-rwxr-xr-x 1 root root  3392826 May 13 19:50 sbr
-rwxr-xr-x 1 root root  2885430 May 13 19:50 static
-rwxr-xr-x 1 root root  3356587 May 13 19:50 tuning
-rwxr-xr-x 1 root root  4314446 May 13 19:50 vlan

@lsm5 Sorry for the late reply. Thanks for adding the podman-rootless package. Using it now alongside kubeadm.

@jcassee @jayaddison I pushed a new build to OBS just now which has a podman-rootless package which doesn’t depend on containernetworking-plugins but is otherwise the exact same as the podman package. Should be available in a bit. It should be available already on the OBS testing repo in case anyone would like to try it out, https://build.opensuse.org/project/show/devel:kubic:libcontainers:testing