14 votes

Docker.io : Dépend de : containerd (>= 1.2.6-0ubuntu1~)

Je rencontre un problème pour installer docker sur 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 : Dépend de containerd (>= 1.2.6-0ubuntu1~)
E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « gardé ».
wolf@linux:~$ 

Le message d'erreur indique que j'ai besoin de containerd (>= 1.2.6-0ubuntu1~)

C'est étrange car j'ai déjà une version encore plus récente, qui est 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        Un moteur de conteneur ouvert et fiable
wolf@linux:~$ 

Le système est à jour. J'ai déjà effectué sudo apt update && sudo apt upgrade et aucune nouvelle mise à jour n'est requise.

Mise à jour comme demandé dans le commentaire

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

19voto

Sabrina Points 1583

containerd et containerd.io sont 2 packages différents.

Essayez dpkg -l containerd* et vous devriez voir les deux packages.

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

Si containerd n'est pas là, allez-y et installez-le avec sudo apt install containerd.

Dites-moi si cela vous aide.

2voto

Scott Saunders Points 12721

J'ai eu la même erreur mais dans une situation plus complexe :

~# dpkg -l | grep containerd
ii  containerd                            1.3.3-0ubuntu2.3                  amd64        démon pour contrôler runC

~# apt-get install docker.io                 
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Certains paquets ne peuvent être installés. Cela peut signifier que vous avez
demandé l'impossible ou que vous utilisez la distribution unstable
et que certains paquets n'ont pas encore été créés
ou ne sont pas sortis d'Incomimg.
Les informations suivantes peuvent aider à résoudre la situation :

Les paquets suivants contiennent des dépendances non satisfaites :
 docker.io : Dépend: containerd (>= 1.2.6-0ubuntu1~) mais ne doit pas être installé
E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».

Évidemment, j'avais ignoré un avertissement clair lors de la mise à jour :

~# apt-get dist-upgrade
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Calcul de la mise à jour... Fait
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
  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
Utilisez « apt autoremove » pour les supprimer.
Les paquets suivants seront ENLEVÉS :
  docker.io                    ^^^^^^^  !!!
Les paquets suivants seront mis à jour :
  containerd
1 mis à jour, 0 nouvellement installés, 1 à enlever et 0 non mis à jour.
27,8 Mo d'archives vont être téléchargés.
Après cette opération, 192 Mo d'espace disque seront libérés.
Voulez-vous continuer ? [O/n]

Je n'ai pas creusé plus loin, mais il y a des paquets plus récents sur la sécurité, qui ne vont pas ensemble. Mais cela n'explique pas pourquoi docker.io n'accepte pas le containerd installé de la version 1.3.3-0ubuntu2.3 qui est en fait >= 1.2.6-0ubuntu1~

~# apt-cache policy docker.io containerd
docker.io:
  Installé : (aucun)
  Candidat : 19.03.8-0ubuntu1.20.04.1
  Table de version :
     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:
  Installé : 1.3.3-0ubuntu2.3
  Candidat : 1.3.3-0ubuntu2.3
  Table de version :
 *** 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

Solution

J'ai pu résoudre ce problème en rétrogradant containerd vers le package principal et en réinstallant ensuite docker.io :

~# apt-get install containerd=1.3.3-0ubuntu2
Les paquets suivants seront DOWNGRADED :
  containerd
~# apt-get install docker.io

Rapport de bogue

Rapport de bogue ici : https://bugs.launchpad.net/ubuntu/+source/docker.io/+bug/1940920

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X