web-dev-qa-db-fra.com

apt dit que les paquets ont été conservés, que faire?

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? Devrais-je agir? Si oui quoi?

16

Solution rapide & facile:

J'ai eu le même problème, d'innombrables fois. NE PAS faire Sudo apt-get dist-upgrade en premier. Très important.

Pourquoi?

Cela peut rendre votre système très instable, des programmes peuvent se bloquer et vous pouvez perdre beaucoup de fonctionnalités de votre système d'exploitation.

Vous DEVEZ installer chaque paquet individuellement (CEPENDANT, pendant Lors de 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.


Tout d'abord, procédez comme suit:

apt list --upgradable

  • Cela montrera une liste de paquets pouvant être mis à jour.

Ensuite, procédez comme suit:

  • Commencez au début de la liste avec le premier paquet et tapez:

Sudo apt-get install package-name-here

  • Cela se déroulera tout au long du processus d'installation et des dépendances extraction/installation.

Une fois ce processus terminé, procédez comme suit:

apt list --upgradable

  • Cela montrera à nouveau quels paquets peuvent être mis à niveau. Votre liste de paquets devrait maintenant diminuer. Suivez la liste des packages et tapez apt list --upgradable après chaque installation de package. Cela ne devrait prendre que quelques minutes à compléter.

Finalement:

Sudo apt-get autoclean

Sudo apt-get update && Sudo apt-get dist-upgrade

Si cette solution fonctionnait pour vous, n'oubliez pas de la revérifier afin que la solution appropriée soit disponible pour les autres et se trouve en haut de la liste de 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.

24
Gregory Smitherman

Qu'est-ce que ça veut dire?

The following packages have been kept back:

La réponse est ici

Cela signifie que de nouvelles versions de ces packages ne seront pas installées pour une raison quelconque. Les raisons possibles sont des dépendances cassées (un paquet dont il dépend n'a pas de version disponible au téléchargement) ou de nouvelles dépendances (le paquet dépend désormais de nouveaux paquets depuis la dernière version).

Dois-je agir?

Vous devez utiliser dist-upgrade pour installer les nouvelles dépendances et mettre à jour les paquetages:

Sudo apt-get dist-upgrade

Le problème peut être résolu en exécutant dist-upgrade sinon vous devez:

Réparer les dépendances brisées

Sudo apt-get -f install 

Supprimez certains paquets qui ne sont plus installés sur votre système:

Sudo apt-get autoclean

Mettez le paquet désiré en attente:

echo "<package_name> hold" | dpkg --set-selections

Reconfigurez le paquet nommé:

dpkg-reconfigure <package_name>
11
GAD3R

De cette réponse Unix SE :

Premièrement, comme mentionné ci-dessus, veuillez NE PAS dist-mettre à niveau un système de production! Bien que la mise à niveau de dist "va" résoudre les paquets conservés, ce n'est certainement pas la solution à ce problème et très probablement vous causera plus de chagrin que de bien si vous l'exécutez sans connaître les implications sur votre système.

Si la mise à niveau d'un paquet nécessite l'installation de paquets supplémentaires, il sera "conservé" lors de l'exécution de 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 souhaitons.

Pour installer automatiquement les packages supplémentaires nécessaires à la mise à niveau des packages "conservés" sans marquer les packages "conservés" comme étant installés manuellement, exécutez simplement Sudo apt-get --with-new-pkgs upgrade.

3
Brian Heese

J'ai inclus cette réponse dans mon blog. Si vous voulez voir que vous pouvez y aller à partir de ce lien .

L'erreur ci-dessus est très commune dans le terminal Ubuntu lorsque vous essayez de mettre à niveau (apt-get upgrade). Cela se produit généralement parce que les dépendances d'un paquet que vous avez installé ont changé. Afin de 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 paquets conservés en dessous de ce message d'erreur. à titre d'exemple, je peux voir les paquets 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 extrêmement instable.

Par conséquent, mon avis est d'utiliser célèbre

Sudo apt-get install [package]

Vous pouvez remplacer [package] par n'importe quel paquet contenu dans le message d'erreur. Vous pouvez aussi les mettre tels quels sous forme de liste (il suffit de les copier et de les coller). Par 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 tu veux faire

Sudo apt-get dist-upgrade

pour une raison quelconque, assurez-vous simplement d'inspecter la liste des packages à l'aide de l'option simuler -s (Sudo apt-get -s dist-upgrade), ou sans l'option -s, vous pouvez terminer l'exécution avant d'accepter. (vous pouvez toujours choisir l'option non)

2

Récemment, une mise à jour de sécurité Debian a introduit quelques nouvelles dépendances. Dans ce cas, le paquetage linux-image a commencé à nécessiter linux-firmware, entre autres. Ils ont donc été retenus et non installés par unattended-upgrade. Après quelques tests et confirmations, j'ai pu installer de manière sélective 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')

1
Dick Visser