Je me demandais pourquoi upgrade
parfois, ne veut pas mettre à niveau certaines parties du système, alors que dist-upgrade
si. Voici un exemple après avoir exécuté apt-get upgrade
:
apt-get upgrade
:
rimmer@rimmer-Lenovo-IdeaPad-S10-2:~$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
linux-generic linux-headers-generic linux-image-generic
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
par rapport à apt-get dist-upgrade
:
rimmer@rimmer-Lenovo-IdeaPad-S10-2:~$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
linux-headers-3.0.0-13 linux-headers-3.0.0-13-generic
linux-image-3.0.0-13-generic
The following packages will be upgraded:
linux-generic linux-headers-generic linux-image-generic
3 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 48.5 MB of archives.
After this operation, 215 MB of additional disk space will be used.
Do you want to continue [Y/n]?
En d'autres termes, pourquoi cela ne peut-il pas être réalisé par upgrade
?
full-upgrade
comme une option àapt-get
moins de 14.04.1.apt
non plus, mais il semble que ce soit une commande complètement différente selon la page de manuel qu'il a liéeapt
et non deapt-get
... :-) Essayezman apt
.apt-get upgrade
est limité au cas où des packages doivent être remplacés par des versions plus récentes, mais aucun package ne doit être ajouté ou supprimé. Une nouvelle version de Firefox, par exemple, devrait pouvoir être installée avecapt-get upgrade
.Toutefois,
apt-get upgrade
il refusera de travailler lorsque des ajouts ou des suppressions sont nécessaires en raison des versions mises à jour. Par exemple, lorsque le noyau estlinux-image-3.2.0-10-generic
installé etlinux-image-3.2.0-11-generic
apparaît, lalinux-image-generic
mise à jour du package dépend de la version la plus récente. Pour installer le nouveau noyau, vous devez exécuterapt-get dist-upgrade
.Remarquez comment on
apt-get upgrade
va dire que les paquets du noyau ont étéheld back
. C'est la queue pour utiliserapt-get dist-upgrade
.la source
update-manager
, n'utilise pasapt-get
directement; Au lieu de cela, cela fonctionne avec un backend appeléaptdaemon
. Les capacités standard deupdate-manager
sont un mélange des modesupgrade
etdist-upgrade
deapt-get
: il peut ajouter des packages, mais pas les supprimer. Il appelle l'outil "Mise à niveau partielle" lorsque des suppressions sont nécessaires. Lorsque vous utilisez la ligne de commande, utilisezapt-get upgrade
. Si vous voyez des rapports indiquant que des packages ont été "retenus", exécutez-lesapt-get dist-upgrade
pour récupérer les mises à jour restantes.Fondamentalement, la mise à niveau ne mettra à niveau que les packages existants d'une version à une autre. Il n’installe ni ne supprime les packages, même si cela est nécessaire pour mettre à niveau les autres. Dans le cas des mises à jour du noyau, la mise à niveau du paquet linux-generic nécessite l'installation du nouveau paquet linux-3.0.0-13-generic, et comme la mise à niveau refuse d'installer ou de supprimer des packages, elle refuse de mettre à niveau linux-generic.
Parfois, diverses incompatibilités entre les packages nécessiteront la suppression de certains packages pour en mettre à jour d'autres, ce qui nécessitera également la mise à niveau dist. Les mises à jour du noyau nécessitent toujours dist-upgrade en raison de la manière dont elles sont gérées. Plutôt que d'avoir un package de noyau mis à jour, un package de noyau entièrement nouveau est créé à chaque fois et le méta-paquet de noyau est mis à jour pour dépendre du nouveau package de noyau au lieu de l'ancien. Ceci a été fait pour que vous gardiez les anciennes versions du noyau et qu'en cas de problème avec le démarrage du nouveau noyau, vous puissiez choisir l'ancienne dans le menu de démarrage et la récupérer.
la source
La
apt-get upgrade
commande installera normalement uniquement les mises à jour (ou correctifs) des packages actuellement installés. Par exemple, une nouvelle version de Mozilla Firefox , par exemple, serait installée avec cette commande.Cependant,
apt-get upgrade
il n’installe généralement PAS les nouvelles versions nécessitant des modifications majeures (y compris la suppression de packages ou la mise à jour GRUB). Par exemple, lorsqu'un nouveau noyau Linux (linux-image-3.xx-xx-generic, etc.) est disponible, le package ne sera pas installé.Pour installer le nouveau noyau, vous devrez exécuter
apt-get dist-upgrade
. Vous serez averti lorsque vous exécuterezapt-get upgrade
, car il sera dit que certains paquets ont été retenus. C'est votre queue de billard à utiliser:apt-get dist-upgrade
.la source
dist-upgrade
La mise à niveau vers une nouvelle version ne sera mise à niveau que si ellesources.list
a été modifiée en conséquence (et même dans ce cas, ce n'est pas un moyen de mise à niveau pris en charge dans Ubuntu). Lorsqu'un nouveau noyau est installé avecdist-upgrade
, ce n'est pas une nouvelle version d'Ubuntu . C'est juste un nouveau paquet. De plus, la déclaration "ou la mise à jour GRUB est requise" est fausse.sudo apt-get upgrade
est parfaitement capable de mettre à jour des paquets dans une situation où GRUB doit être mis à jour, à condition qu'aucun paquet ne soit supprimé et que de nouveaux paquets ne soient installés.update-grub
est exécuté automatiquement, comme toujours.apt-get upgrade
cela ne supprime ni n'ajoute de paquet. Si un correctif sur un paquet nécessite un nouveau paquet, la mise à jour sera retenue. La réponse de pablomme , que vous avez révisée pour être moins précise, est meilleure et je conseillerais aux lecteurs d'y aller.apt-get upgrade
jamais aucun paquet. Les mises à niveau du noyau sont regroupées dans de nouveaux packages et, par conséquent, ne le met jamais à niveau. Le fait que la mise à niveau du noyau entraîne des modifications "majeures" telles que la configuration de GRUB n'est pas la raison de la différence entre et .apt-get upgrade
upgrade
dist-upgrade
Votre meilleure option est:
apt full-upgrade
-qui gère automatiquement les dépendances lors de la mise à niveau des paquets; tandis que:
-Ne gère PAS automatiquement les dépendances lors de la mise à niveau des packages.
- duBtrotterS
la source