Que signifie «Les paquets suivants ont été conservés».


72

Quand apt-get upgradeje fais un je reçois parfois un message disant "Les paquets suivants ont été conservés". Par exemple:

$ sudo apt-get upgrade                                                                                                
Reading package lists... Done                                                                                                          
Building dependency tree                                                                                                               
Reading state information... Done                                                                                                      
The following packages have been kept back:                                                                                            
  linux-headers-server linux-image-server linux-server                                                                                 
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

Qu'est-ce que cela signifie exactement? Évidemment, les paquets ont été retenus et non installés, mais pourquoi?

La question suivante serait la suivante: comment met-on à niveau ces paquets conservés?


2
Une explication très claire peut être trouvée ici: debian-administration.org/article/69/…
jplandrain

J'ai résumé les commentaires et la documentation technique sur: Les paquets suivants ont été conservés, je vous invite à lire dans mon article et à laisser des commentaires afin que cela puisse être amélioré. Merci d'avoir pris le temps de répondre à cette pétition. Aussi, je souhaite que vous trouviez utile le post. Ceci est son lien: guillermo.lopez.co.cr/… Merci de citer cet article comme ressource quand quelqu'un a besoin d'aide sur ce sujet.
Ithan

Réponses:


63

Si la mise à niveau nécessite la suppression d'un autre package ou l'installation d'un nouveau package, le package sera "conservé". Comme l'explique la page de manuel d'apt-get upgrade :

Les packages actuellement installés avec les nouvelles versions disponibles sont récupérés et mis à niveau; en aucun cas, les packages actuellement installés ne sont supprimés, ou les packages non déjà installés ne sont récupérés et installés.

Pour surmonter cela, vous pouvez faire

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

Cela permet d'installer de nouveaux packages. Il vous indiquera quels paquets seraient installés et vous indiquera comment procéder avant de procéder à l'installation.


6
Bien, c'est l'explication la plus claire à ce jour. La page de manuel à laquelle vous avez accédé sur die.net n'inclut cependant pas l'option --with-new-pkgs. Celui-ci fait: manpages.debian.org/cgi-bin/man.cgi?query=apt-get
Charles Roper

1
Mais j'ai mis à jour et mis à jour tous les paquets, alors pourquoi ces paquets ne sont pas mis à jour?
Nullpointer

2
@Nullpointer "apt-get upgrade" n'installera pas de nouveaux packages (à moins que vous ne fournissiez l'indicateur). Sans l'indicateur, si la mise à niveau d'un package existant nécessitait l'installation d'un nouveau package, cette mise à niveau n'aurait pas lieu.
Tchad

Cela ne fonctionne pas pour moi (Ubuntu 19.04) et donne exactement le même message que `apt upgrade`, à savoir" gardé en arrière ".
Marc il y a

18

Le rapport de base est que apt-get upgradene mettra pas à niveau les packages pour lesquels le gestionnaire de packages souhaite supprimer et réinstaller le package. Cela arrive souvent dans les correctifs de sécurité car, souvent, c’est en fait des bibliothèques précurseurs de la compilation distribuable finale qui ont été corrigées. La fonctionnalité "allez-y et supprimez les choses" existe, apt-get dist-upgrademais assurez-vous de la lancer en apt-get updatepremier au cas où les gars en amont découvriraient quelque chose depuis votre dernière tentative. Parfois, ils manquent des choses et les réparent rapidement.


3

Essayez apt-get dist-upgrade. De la page de manuel:

dist-upgrade

dist-upgradeen plus de remplir la fonction de upgrade, gère également de manière intelligente les dépendances changeantes avec les nouvelles versions de packages; apt-get dispose d’un système "intelligent" de résolution des conflits et tente de mettre à niveau les packages les plus importants aux dépens des moins importants, le cas échéant. Donc, la dist-upgradecommande peut supprimer certains paquets. Le /etc/apt/sources.listfichier contient une liste d'emplacements à partir desquels extraire les fichiers de package souhaités. Voir aussi apt_preferences(5)pour un mécanisme permettant de remplacer les paramètres généraux pour des packages individuels.

Bien que cette commande soit utilisée pour effectuer une mise à niveau vers une nouvelle version majeure du système d'exploitation, elle ne le fait pas par défaut. Le fichier /etc/apt/sources.listdoit être remplacé par la nouvelle version, puis a dist-upgradeest utilisé.


1

Il suffit de faire

sudo apt-get install linux-headers-server linux-image-server linux-server

mettre à jour les paquets en attente.

Alors courez apt-get upgradeet tout ira bien.


5
Ceci est une erreur. NEapt-get dist-upgrade mettra PAS votre système d'exploitation à niveau vers une nouvelle version. man apt-getpour voir les différences.
BT643

@ BT643 (et ceux qui ont voté en faveur du commentaire), votez pour les réponses erronées au lieu de laisser un commentaire. Des réponses particulièrement fausses comme celle-ci perpétuent une idée fausse commune. Nous comptons sur les votes pour mettre de bons contenus au premier plan, mais aussi pour rejeter les mauvais contenus.
Terdon

1
@terdon, j'ai essayé mais je n'ai pas assez de représentant :) (besoin de 125 pour voter).
BT643

La première partie (installer / mettre à jour uniquement les paquets retenus) n'est-elle pas une bonne réponse? Ensuite, procédez à la mise à niveau. Supprimer le conseil offensant concernant dist-upgrade semble être une meilleure idée que de simplement voter pour une réponse partiellement correcte ...
Xen2050

sudo apt-get --with-new-pkgs upgrade
Envisagez d’
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.