La sortie de apt-get upgrade
est:
The following packages have been kept back:
certbot python-acme python-certbot python-certbot-apache python-cryptography python-openssl
Qu'est-ce que ça veut dire? Dois-je agir? Si oui, quoi?
La sortie de apt-get upgrade
est:
The following packages have been kept back:
certbot python-acme python-certbot python-certbot-apache python-cryptography python-openssl
Qu'est-ce que ça veut dire? Dois-je agir? Si oui, quoi?
Réponses:
J'ai eu le même problème, plusieurs fois. Ne pas faire d'
sudo apt-get dist-upgrade
abord. Très important. **** REMARQUE: Cette solution est destinée aux machines basées sur Debian mais ne fonctionnera pas sur KDE Neon . Pour mettre à jour KDE Neon, vous devez utilisersudo pkcon update
. ****
Cela peut rendre votre système très instable, les programmes peuvent se bloquer et vous pouvez perdre beaucoup de fonctionnalités dans votre système d'exploitation.
Vous DEVEZ installer chaque paquet individuellement, CEPENDANT , pendant ce processus, d'autres dépendances seront également installées automatiquement et votre problème sera résolu en quelques minutes.
Je n'ai eu aucun problème avec la solution suivante. C'est assez rapide et facile.
apt list --upgradable
sudo apt-get install package-name-here
apt list --upgradable
apt list --upgradable
après chaque installation de package. Cela ne devrait prendre que quelques minutes.
sudo apt-get autoclean
sudo apt-get update && sudo apt-get dist-upgrade
Si cette solution a fonctionné pour vous, n'oubliez pas de voter pour que la bonne solution soit disponible pour les autres et figure en tête de liste des réponses.
Si pour une raison quelconque, cette solution ne fonctionne pas pour vous, veuillez consulter la réponse de l'utilisateur GAD3R ci-dessous. C'est aussi une bonne solution.
Merci.
Qu'est-ce que ça veut dire?
The following packages have been kept back:
La réponse est ici
Cela signifie qu'il existe de nouvelles versions de ces packages qui ne seront pas installées pour une raison quelconque. Les raisons possibles sont des dépendances brisées (un package dont il dépend n'a pas de version disponible en téléchargement) ou de nouvelles dépendances (le package dépend des nouveaux packages depuis la dernière version).
Dois-je agir?
Vous devez utiliser dist-upgrade
pour installer les nouvelles dépendances et mettre à niveau les packages:
sudo apt-get dist-upgrade
Le problème peut être résolu en exécutant dist-upgrade
sinon vous devez:
Corrige les dépendances cassées
sudo apt-get -f install
Supprimez certains packages qui ne sont plus installés sur votre système:
sudo apt-get autoclean
Mettez le paquet souhaité en attente:
echo "<package_name> hold" | dpkg --set-selections
Reconfigurez le package nommé:
dpkg-reconfigure <package_name>
Tout d'abord, comme mentionné ci-dessus, veuillez NE PAS mettre à niveau un système de production! Bien que la mise à niveau dist "résoudra" les paquets conservés, ce n'est certainement pas la solution à ce problème et vous causera probablement plus de chagrin que de bien si vous l'exécutez sans en connaître les implications sur votre système.
Si la mise à niveau d'un package nécessite l'installation de packages supplémentaires, il sera "conservé" lors de l'exécution sudo apt-get upgrade
.
Comme mentionné ci-dessus, vous pouvez installer ces packages "conservés" manuellement en exécutant explicitement, sudo apt-get install [paste kept back packages here]
mais cela marquera ces packages comme "installés manuellement", ce qui n'est souvent pas ce que nous voulons.
Pour installer automatiquement les packages supplémentaires nécessaires à la mise à niveau des packages "conservés" sans marquer les packages "conservés" comme installés manuellement, exécutez-le sudo apt-get --with-new-pkgs upgrade
.
J'ai inclus cette réponse dans mon blog. Si vous voulez voir que vous pouvez y aller depuis ce lien .
L'erreur ci-dessus est très courante dans le terminal Ubuntu lorsque vous essayez de mettre à niveau ( apt-get upgrade
). Cela se produit généralement car les dépendances d'un package que vous installez ont changé. Pour mettre à niveau, vous devez d'abord les mettre à niveau. Il est donc très simple de résoudre ce problème. Vous pourrez voir les packages qui sont restés en dessous de ce message d'erreur. à titre d'exemple, je peux voir les packages suivants dans la liste:
gnome-software gnome-software-common linux-generic linux-headers-generic
linux-image-generic snapd ubuntu-core-launcher ubuntu-software
Ne vous contentez pas de taper sudo apt-get dist-upgrade
Il est très dangereux car il installe toutes les mises à jour en attente. Cela pourrait amener votre environnement de travail à un état très instable.
Par conséquent, mon avis est d'utiliser le célèbre
sudo apt-get install [package]
Vous pouvez remplacer [package]
par n'importe quel package dans le message d'erreur. Vous pouvez également les mettre tels quels sous forme de liste (il suffit de les copier-coller). À titre d'exemple dans mon cas, je peux entrer
sudo apt-get install gnome-software gnome-software-common linux-generic linux-headers-generic
linux-image-generic snapd ubuntu-core-launcher ubuntu-software
Si vous voulez faire
sudo apt-get dist-upgrade
pour une raison quelconque, assurez-vous simplement d'inspecter la liste des packages en utilisant l'option simulate -s
( sudo apt-get -s dist-upgrade
), ou sans l' -s
option, vous pouvez terminer l'exécution avant d'accepter. (vous pouvez toujours choisir l'option non)
Récemment, une mise à jour de sécurité Debian a introduit quelques nouvelles dépendances. Dans ce cas, le linux-image
paquet a commencé à exiger linux-firmware
, entre autres. Ils ont donc été retenus et non installés par unattended-upgrade
. Après quelques tests et confirmation, j'ai pu installer sélectivement uniquement ces packages, sans toucher aux autres mises à jour en attente:
apt-get -yy install $(apt-get -s upgrade | sed '1,/kept back/d;/will be upgraded/,$d')
Cet article résume bien pourquoi cela se produit:
Si les dépendances ont changé sur l'un des packages que vous avez installés de sorte qu'un nouveau package doit être installé pour effectuer la mise à niveau, il sera répertorié comme "conservé".
La solution à cela est de les installer explicitement avec
sudo apt install [packages]
Vous voudrez probablement marquer ces packages comme installés automatiquement, sauf si vous vous souciez d'eux et pas seulement pour satisfaire les dépendances.
sudo apt-mark auto [packages]
Pour éviter que cela ne se produise en premier lieu, je recommande d'utiliser
sudo apt --with-new-pkgs upgrade
pour mettre à niveau les packages à l'avenir, ce qui permet l'installation de nouveaux packages pour satisfaire les changements de dépendances.
--with-new-pkgs
! Et permettez-moi de souligner encore une fois que, " NE PAS mettre à niveau dist n'importe quel système de production! Bien que la mise à niveau dist" résoudra "les paquets conservés, ce n'est certainement pas la solution à ce problème et vous causera probablement plus de chagrin que de bien si vous exécutez-le sans connaître les implications sur votre système. "