web-dev-qa-db-fra.com

Que signifie «Les packages suivants ont été conservés»?

Lors d'une apt-get upgrade J'ai 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: comment peut-on mettre à niveau ces paquets conservés?

77
Charles Roper

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

Les packages actuellement installés avec de 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 qui ne sont pas déjà installés sont récupérés et installés.

Pour dépasser cela, vous pouvez faire

Sudo apt-get --with-new-pkgs upgrade

Cela permet d'installer de nouveaux packages. Il vous permettra de savoir quels packages seront installés et vous invitera avant de procéder à l'installation.

68
Chad

Le rapport de base est que apt-get upgrade ne mettra pas à niveau les packages pour lesquels le gestionnaire de packages souhaite supprimer et réinstaller le package. Cela se produit souvent dans les correctifs de sécurité car, souvent, ce sont 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" se trouve dans apt-get dist-upgrade mais assurez-vous d'exécuter apt-get update d'abord juste au cas où les gars en amont trouveraient quelque chose depuis votre dernier essai. Parfois, ils manquent des choses et les réparent rapidement.

19
rhoyerboat

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

dist-upgrade

dist-upgrade En plus d'effectuer la fonction de upgrade, gère également intelligemment les dépendances changeantes avec les nouvelles versions des packages; apt-get Possède un système de résolution des conflits "intelligent", et il tentera de mettre à niveau les packages les plus importants au détriment des packages moins importants si nécessaire. Ainsi, la commande dist-upgrade Peut supprimer certains packages. Le fichier /etc/apt/sources.list Contient une liste d'emplacements à partir desquels récupérer les fichiers de package souhaités. Voir aussi apt_preferences(5) pour un mécanisme permettant de remplacer les paramètres généraux des packages individuels.

Bien que cette commande soit utilisée pour mettre à niveau vers une nouvelle version majeure du système d'exploitation, elle ne pas faites cela par défaut. Le fichier /etc/apt/sources.list Doit être changé pour la nouvelle version et puis un dist-upgrade Est utilisé.

3
Darin Luckie

Fais juste

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

pour mettre à niveau les packages retenus.

Exécutez ensuite apt-get upgradeet tout ira bien.

2
Robert

le message indique une condition potentiellement dangereuse

si vous êtes certain que vous voulez que ce changement se produise, vous pouvez simplement

Sudo apt-get install  xxxxx

où xxxx correspond au (x) package (s) retenu (s) ... cela se produit généralement lorsque le système sait qu'en effectuant cette installation, il devra désinstaller d'autres packages ... par exemple

Sudo apt-get --with-new-pkgs upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  libc6 libc6-dbg
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.

mais je suis d'accord pour aller de l'avant et faire des mises à jour sur ces paquets détenus, donc je lance

Sudo apt-get install   libc6 libc6-dbg

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  libx11-xcb1:i386
Use 'Sudo apt autoremove' to remove it.
Suggested packages:
  glibc-doc
The following packages will be REMOVED:
  libatomic1:i386 libbsd0:i386 libc6:i386 libdrm-amdgpu1:i386 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libdrm2:i386 libedit2:i386 libelf1:i386
  libexpat1:i386 libffi6:i386 libgcc1:i386 libgl1:i386 libgl1-mesa-dri:i386 libglapi-mesa:i386 libglvnd0:i386 libglx-mesa0:i386 libglx0:i386 libidn2-0:i386 libllvm9:i386
  libnvidia-compute-430:i386 libnvidia-decode-430:i386 libnvidia-encode-430:i386 libnvidia-fbc1-430:i386 libnvidia-gl-430:i386 libnvidia-ifr1-430:i386 libpciaccess0:i386
  libsensors5:i386 libstdc++6:i386 libtinfo6:i386 libunistring2:i386 libx11-6:i386 libxau6:i386 libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386
  libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxshmfence1:i386 libxxf86vm1:i386 zlib1g:i386
The following packages will be upgraded:
  libc6 libc6-dbg
2 upgraded, 0 newly installed, 47 to remove and 0 not upgraded.
Need to get 8,459 kB of archives.
After this operation, 525 MB disk space will be freed.
Do you want to continue? [Y/n] 

car en faisant des recherches, je vais bien faire cette mise à niveau, je dis Y à l'invite ci-dessus ... maintenant, ces packages retenus ont été installés et le coût a été l'élimination des packages auxiliaires 32 bits inutiles ... bien sûr, vous aurez un ensemble différent des paquets à l'origine de cette The following packages have been kept back ou un message similaire

0
Scott Stensland