Réponses:
Non, ils ne sont pas les mêmes. apt-get upgrade
ne gère pas les dépendances changeantes entre les versions, donc si un paquet a changé de dépendances, il ne sera pas mis à jour (il sera "retenu"). Voir la longue réponse pour plus de détails.
Utiliser le logiciel de mise à jour et utiliser sudo apt-get update ; sudo apt-get dist-upgrade
(notez le dist-
) serait presque équivalent, sauf que celui-ci est évidemment une interface graphique et l'autre une application console et également quelques différences d'information très mineures.
De man apt-get
,
apt-get upgrade
:
upgrade
upgrade is used to install the newest versions of all packages
currently installed on the system from the sources enumerated in
/etc/apt/sources.list. Packages currently installed with new
versions available are retrieved and upgraded; under no
circumstances are currently installed packages removed, or packages
not already installed retrieved and installed. New versions of
currently installed packages that cannot be upgraded without
changing the install status of another package will be left at
their current version. An update must be performed first so that
apt-get knows that new versions of packages are available.
(souligné par moi)
Cela signifie qu'une version plus récente d'un package qui a une nouvelle dépendance non requise dans l'ancienne version ne sera pas mise à niveau avec cette méthode (sauf si la nouvelle dépendance a déjà été installée). Ceux-ci seront affichés comme "Retenus".
apt-get dist-upgrade
:
dist-upgrade
dist-upgrade in addition to performing the function of upgrade,
also intelligently handles changing dependencies with new versions
of packages; apt-get has a "smart" conflict resolution system, and
it will attempt to upgrade the most important packages at the
expense of less important ones if necessary. The dist-upgrade
command may therefore remove some packages. The
/etc/apt/sources.list file contains a list of locations from which
to retrieve desired package files. See also apt_preferences(5) for
a mechanism for overriding the general settings for individual
packages.
(souligné par moi)
Cela signifie qu'avec cette commande au lieu de upgrade
, les packages avec des dépendances nouvelles (ou supprimées) peuvent être mis à niveau.
Un bon exemple de la différence entre les deux est quand un nouveau noyau Linux est sorti. Ceci est empaqueté dans le linux-image-generic
paquet qui dépend toujours du dernier paquet du noyau Linux. Parce que les dépendances linux-image-generic
changent avec chaque mise à niveau du noyau, upgrade
ne le mettez pas à niveau.
apt-get upgrade
est requis), apt-get
ne peut pas faire de même? Il semble qu'il y ait quelque chose d'autre fondamentalement différent entre les deux.
C'est presque pareil mais pas exactement. Par exemple, lorsque des mises à jour du noyau sont proposées, sudo apt-get update && sudo apt-get dist-upgrade
est nécessaire pour obtenir ces mises à jour.
sudo apt-get update && sudo apt-get upgrade
vous dira que certains paquets ont été retenus.
L'utilisation de Software Updater rend tout transparent et vous ne verrez rien de retenu.
apt
les mises à jour disponibles et échelonnées ( mentionnées par pabouk ), la différence la plus évidente entre la mise à jour avec le Software Updater et la ligne de commande.De nos jours, l' apt
utilitaire - qui n'existait pas lorsque cette question a été publiée, mais aurait probablement été inclus dans la question s'il l'avait été - est une alternative de plus en plus populaire à la apt-get
mise à niveau des packages. Ils sont similaires: le même package (également appelé apt
) fournit les deux , et tout apt
peut le faire, les apt-
utilitaires traditionnels le peuvent aussi, bien que dans certains cas, vous deviez passer des options de configuration spéciales. Mais apt
est plus proche que apt-get
le Software Updater. Comme le Software Updater, est capable d'installer de nouveaux packages lorsque la nouvelle version d'un package existant les déclare en tant que dépendances.sudo apt upgrade
Ainsi, de nos jours, les utilisateurs concernés par cette distinction peuvent simplement s'exécuter sudo apt upgrade
au lieu de sudo apt-get upgrade
s'ils souhaitent que de nouvelles dépendances soient installées automatiquement. Par conséquent, la caractéristique du Software Updater de retarder légèrement certaines mises à jour, pour déterminer si elles sont stables dans la nature et limiter les dommages si elles ne le sont pas, est maintenant probablement la principale différence entre l'utilisation du Software Updater et la mise à jour sur la ligne de commande.
Ce comportement de Software Updater est dû à la politique de mise à jour progressive . Cette politique - mise en œuvre dans le logiciel de mise à jour du logiciel mais pas dansapt-get
(ou apt
) - a été une différence majeure entre les deux méthodes depuis l'introduction de la politique , et pabouk en a fait le commentaire il y a quelques années :
Il y a une autre différence:
apt-get
n'utilise pas PhasedUpdates donc parfois Software Updater affiche moins de mises à jour queapt-get
. Voir Pourquoi le programme de mise à jour de logiciels indique-t-il qu'aucune mise à jour n'est disponible, mais la mise à niveau apt-get affiche les mises à jour disponibles? .
Cela a peut-être toujours été la différence la plus significative, en ce sens que l'on pouvait toujours s'exécuter sudo apt-get dist-upgrade
face à la upgrade
réticence de l' action à installer de nouveaux packages ou à désinstaller des packages existants. Cependant, lors de la mise à jour à partir de la ligne de commande, l' importance relative des mises à jour progressives augmente avec apt
:
apt-get
, la apt
commande téléchargera et installera les mises à jour même si elles seraient retardées en raison de la politique de mise à jour progressive si le Software Updater avait été utilisé à la place.apt-get
, la apt
de commande upgrade
l'action va installer de nouveaux paquets qui n'étaient pas installés mais nécessaires en tant que dépendances pour les nouvelles versions de package.Mis à part (a) la préférence pour une interface graphique et (b) son intégration sur le bureau fournissant des notifications lorsque des mises à jour sont disponibles, la principale raison actuelle pour laquelle on pourrait utiliser le Software Updater est que c'est le moyen le plus simple de participer aux mises à jour par phases.
apt-get
n'utilise pas PhasedUpdates donc parfois Software Updater affiche moins de mises à jour queapt-get
. Voir Pourquoi le programme de mise à jour de logiciels indique-t-il qu'aucune mise à jour n'est disponible, mais la mise à niveau apt-get affiche les mises à jour disponibles? .