docker.io :取決於:containerd (>= 1.2.6-0ubuntu1~)

docker.io :取決於:containerd (>= 1.2.6-0ubuntu1~)

我在 Ubuntu 20.04 中安裝 docker 時遇到問題。

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:~$ 

錯誤訊息說我需要containerd (>= 1.2.6-0ubuntu1~)

這很奇怪,因為我已經有了更新的版本1.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:~$ 

系統已更新。我已經執行過sudo apt update && sudo apt upgrade,不需要新的更新。

按照評論中的要求更新

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:~$ 

答案1

containerdcontainerd.io2 個不同的包。

嘗試一下dpkg -l containerd*,您應該會看到這兩個包。

$ 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
$ 

如果containerd不存在,請繼續安裝它sudo apt install containerd

讓我知道這是否有幫助。

答案2

我有同樣的錯誤,但情況更複雜:

~# 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.

顯然,我在更新時忽略了一個明確的警告:

~# 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] 

我沒有深入挖掘,但有一些較新的安全包,它們不能組合在一起。但它並沒有解釋為什麼docker.io不接受事實上安裝containerd的版本1.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

解決方法

我可以透過降級containerd到主池包然後重新安裝來解決這個問題docker.io

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

錯誤報告

錯誤報告在這裡:https://bugs.launchpad.net/ubuntu/+source/docker.io/+bug/1940920

相關內容