"Les paquets suivants ont été conservés:" Pourquoi et comment le résoudre?

Je viens d'ajouter un dépôt PPA pour la version de développement de GIMP, mais j'obtiens cette erreur:

$ apt-get update && apt-get upgrade...The following packages have been kept back:  gimp gimp-data libgegl-0.0-0 libgimp2.0

Pourquoi et comment puis-je le résoudre afin de pouvoir utiliser la dernière version au lieu de celle que j'ai maintenant?

Selon un article sur debian-administration.org,

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é".

Solution prudente 1:

Par La réponse de Pablo, tu peux courir sudo apt-get --with-new-pkgs upgrade, et il installera les paquets conservés.

Cela a l'avantage de ne pas marquer les paquets conservés comme "installés manuellement", ce qui pourrait forcer plus d'intervention de l'utilisateur sur la ligne (voir les commentaires).

Si la solution de Pablo vous convient, veuillez voter pour elle. Si ce n'est pas le cas, veuillez commenter ce qui s'est mal passé.

Solution prudente 2:

La solution prudente est de courir sudo apt-get install <list of packages kept back>. Dans la plupart des cas, cela donnera aux paquets conservés ce dont ils ont besoin pour réussir la mise à niveau.

Solution agressive:

Une solution plus agressive consiste à exécuter sudo apt-get dist-upgrade, ce qui forcera l'installation de ces nouvelles dépendances.

Mais dist-upgrade peut être très dangereux. Contrairement à la mise à niveau il peut supprimer packages pour résoudre des situations de dépendance complexes. Contrairement à vous, APT n'est pas toujours assez intelligent pour savoir si ces ajouts et suppressions pourraient faire des ravages.

Donc, si vous vous trouvez dans un endroit où la "solution prudente" ne fonctionne pas, dist-upgrade peut travail... mais vous feriez probablement mieux d'en apprendre un peu plus sur APT et de résoudre les problèmes de dépendance "à la main" en installant et en supprimant des packages au cas par cas.

Pensez-y comme réparer une voiture... si vous avez le temps et que vous êtes à portée de main avec une clé, vous aurez l'esprit tranquille en lisant et en effectuant la réparation vous-même. Si vous vous sentez chanceux, vous pouvez déposer votre voiture avec votre cousin dist-upgrade et j'espère qu'elle connaît son truc.

Chaque fois que vous recevez de la commande apt-get upgrade message

The following packages have been kept back:

ensuite, pour mettre à niveau un ou tous les paquets conservés, sans faire de mise à niveau de distribution (c'est ce que dist-upgrade est-ce que, si je me souviens bien) est d'émettre la commande:

apt-get install <list of packages kept back>

cela résoudra les problèmes de sauvegarde et vous demandera d'installer des packages supplémentaires,etc. comme cela a été expliqué par d'autres réponses.

Voir aussi: Pourquoi utiliser apt-get upgrade au lieu de apt-get dist-upgrade?

Essayer cette réponse Unix SE:

sudo apt-get --with-new-pkgs upgrade

Cela permet d'installer de nouveaux paquets. Il vous permettra de savoir quels paquets seraient installés et vous demandera avant de faire l'installation.

apt commande (alternative amicale de apt-get) partagez cette option.

Utiliser apt install <pkg> au lieu de cela marquera pkg comme "installé manuellement"!! Pour le marquer à nouveau comme" installé automatiquement", utilisez apt-mark auto <pkg> (voir aussi sous-commande showmanual). Plus d'infos sur cette réponse.

apt-get dist-upgrade est dangereux pour l'environnement stable,

  1. mauvaise source.réglage de la liste et vous vous retrouvez avec ubuntu cassé.
  2. vous pourriez obtenir l'application entière mise à niveau vers la version que vous ne voulez pas.

Cas d'utilisation: la mise à niveau du noyau est retardée, vous voulez juste mettre à niveau le noyau, vous ne voulez pas mettre à niveau la distribution entière.

Une meilleure façon de gérer les colis conservés:

sudo aptitude

Si vous avez conservé un paquet, vous devriez voir des Paquets pouvant être mis à niveau en haut de la liste.

  • Appuyez sur + sur cette liste
  • Appuyez deux fois sur g
  • Répondez à debconf stuff si on vous le demande
  • Appuyez sur retour pour continuer
  • Appuyez sur Q
  • Appuyez sur oui

Votre paquet conservé installé.

Il y a normalement deux raisons pour lesquelles vous pouvez voir ce message.

Si vous mettez à niveau le programme (via sudo apt-get upgrade) provoquerait l'ajout ou la suppression de paquets, puis le programme sera retenu. Vous pouvez utiliser sudo apt-get dist-upgrade dans ce cas, qui proposera alors d'ajouter ou de supprimer les programmes supplémentaires.

C'est assez courant et généralement pas un problème. Occasionnellement (en particulier lors d'une alpha Ubuntu) a dist-upgrade proposera de supprimer de nombreux autres programmes, auquel cas vous voudrez probablement l'annuler.

Si le programme dépend de packages ou de versions qui ne sont pas disponibles, le programme sera retenu. Vous ne pouvez vraiment rien faire d'autre que d'attendre dans cette circonstance, car le package est fondamentalement désinstallable. Cela peut se produire lorsque des packages sont ajoutés au référentiel dans le désordre, lorsqu'un package est renommé ou lorsqu'un package cesse de fournir un package virtuel.

Vous pouvez aussi essayer:

sudo aptitude safe-upgrade

C'est plus sûr que full-upgrade (initialement nommé dist-upgrade) parce que "les paquets ne seront pas supprimés à moins qu'ils ne soient inutilisés".

De man aptitude:

safe-mise à niveau

Met à niveau les packages installés vers leur version la plus récente. Les paquets installés ne seront pas supprimés à moins qu'ils ne soient inutilisés /.../ Les paquets qui ne sont pas actuellement installés peuvent être installés pour résoudre les dépendances à moins que l'option de ligne de commande --no-new-installs ne soit fournie.

Très probablement, ces packages sont retenus car leur installation créerait des incohérences de dépendance. Cela peut se produire soit parce que vous utilisez des archives en cours de développement actif, des PPA, soit parce que le miroir que vous utilisez n'est pas entièrement mis à jour.

Dans le dernier cas, attendez, lorsque les dépendances seront résolues, il sera installé la prochaine fois.

Modifier:

Il y a une autre possibilité, les paquets pourraient être retenus s'il y a une retenue sur eux, ou s'ils sont épinglés.

Ça a marché pour moi

sudo aptitude full-upgrade

C'est généralement parce que le package a ajouté une dépendance et que upgrade ne veut pas l'ajouter pour vous sans autorisation.

Si tu cours:

sudo apt-get install gimp gimp-data libgegl-0.0-0 libgimp2.0

Ensuite, les nouvelles versions doivent être installées avec leur nouvelle dépendance.

Ubuntu 18.04, 20.04 (et plus récent) fournit un syntaxe simplifiée par apt full-upgrade qui fonctionne comme sudo apt-get dist-upgrade.

sudo apt full-upgrade

sudo apt upgrade est utilisé pour installer les mises à jour disponibles de tous les packages actuellement installés sur le système à partir des sources configurées via sources.liste(5). De nouveaux paquets seront installés si nécessaire pour satisfaire les dépendances, mais les paquets existants ne seront jamais supprimés. Si une mise à niveau d'un package nécessite la suppression d'un package installé, la mise à niveau de ce package n'est pas effectuée.

sudo apt full-upgrade effectue la fonction de mise à niveau mais sera supprimez les packages actuellement installés si cela est nécessaire pour mettre à niveau le système dans son ensemble.

Note: full-upgrade reste sur la distribution actuelle.

Voir: apt page de manuel: 18.04, 20.04

Quel message poubelle. Pourquoi le système d’exploitation ne peut-il pas simplement faire ce qui est nécessaire?