docker.io: Hängt ab von: containerd (>= 1.2.6-0ubuntu1~)

docker.io: Hängt ab von: containerd (>= 1.2.6-0ubuntu1~)

Ich habe ein Problem bei der Installation von Docker in Ubuntu 20.04.

wolf@linux:~$ sudo apt install docker.io
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 docker.io : Depends: containerd (>= 1.2.6-0ubuntu1~)
E: Unable to correct problems, you have held broken packages.
wolf@linux:~$ 

Fehlermeldung besagt, dass ich brauchecontainerd (>= 1.2.6-0ubuntu1~)

Es ist seltsam, da ich bereits eine noch neuere Version habe, nämlich1.2.13-2

wolf@linux:~$ dpkg -l containerd.io 
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-======================================
ii  containerd.io  1.2.13-2     amd64        An open and reliable container runtime
wolf@linux:~$ 

Das System ist aktualisiert. Ich habe es bereits durchgeführt sudo apt update && sudo apt upgradeund es ist kein neues Update erforderlich.

Aktualisierung wie im Kommentar angefordert

wolf@linux:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.1 LTS
Release:    20.04
Codename:   focal
wolf@linux:~$ 

Antwort1

containerdund containerd.iosind 2 verschiedene Pakete.

Versuchen Sie es dpkg -l containerd*und Sie sollten beide Pakete sehen.

$ dpkg -l containerd*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version        Architecture Description
+++-==============-==============-============-======================================
ii  containerd     1.3.3-0ubuntu2 amd64        daemon to control runC
rc  containerd.io  1.2.13-2       amd64        An open and reliable container runtime
$ 

Wenn containerdes dort nicht vorhanden ist, fahren Sie mit der Installation mit fort sudo apt install containerd.

Lassen Sie mich wissen, ob das hilft.

Antwort2

Ich hatte den gleichen Fehler, aber eine komplexere Situation:

~# dpkg -l | grep containerd
ii  containerd                            1.3.3-0ubuntu2.3                  amd64        daemon to control runC

~# apt-get install docker.io                 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 docker.io : Depends: containerd (>= 1.2.6-0ubuntu1~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

offensichtlich habe ich beim Update eine deutliche Warnung übersehen:

~# apt-get dist-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
  bridge-utils cgroupfs-mount dns-root-data dnsmasq-base git git-man iptables libcurl3-gnutls liberror-perl libip6tc2 libnetfilter-conntrack3 libnfnetlink0 libnftnl11 libnghttp2-14 librtmp1 libssh-4 patch pigz ubuntu-fan
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
  docker.io                    ^^^^^^^  !!!
The following packages will be upgraded:
  containerd
1 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
Need to get 27.8 MB of archives.
After this operation, 192 MB disk space will be freed.
Do you want to continue? [Y/n] 

Ich habe nicht tiefer gegraben, aber es gibt neuere Sicherheitspakete, die nicht zusammenpassen. Aber es erklärt nicht, warum die installierte Version docker.ionicht akzeptiert wird , die in Wirklichkeitcontainerd1.3.3-0ubuntu2.3>= 1.2.6-0ubuntu1~

~# apt-cache policy docker.io containerd
docker.io:
  Installed: (none)
  Candidate: 19.03.8-0ubuntu1.20.04.1
  Version table:
     19.03.8-0ubuntu1.20.04.1 500
        500 http://ch.archive.ubuntu.com/ubuntu focal-security/universe amd64 Packages
        100 /var/lib/dpkg/status
     19.03.8-0ubuntu1 500
        500 http://ch.archive.ubuntu.com/ubuntu focal/universe amd64 Packages

containerd:
  Installed: 1.3.3-0ubuntu2.3
  Candidate: 1.3.3-0ubuntu2.3
  Version table:
 *** 1.3.3-0ubuntu2.3 500
        500 http://ch.archive.ubuntu.com/ubuntu focal-security/main amd64 Packages
        100 /var/lib/dpkg/status
     1.3.3-0ubuntu2 500
        500 http://ch.archive.ubuntu.com/ubuntu focal/main amd64 Packages

Problemumgehung

Ich konnte dieses Problem beheben, indem ich ein Downgrade containerdauf das Hauptpoolpaket durchführte und dann Folgendes neu installierte docker.io:

~# apt-get install containerd=1.3.3-0ubuntu2
The following packages will be DOWNGRADED:
  containerd
~# apt-get install docker.io

Fehlerbericht

Fehlerbericht hier:https://bugs.launchpad.net/ubuntu/+source/docker.io/+bug/1940920

verwandte Informationen