L'utilisation de Software Updater revient-elle à exécuter la mise à jour apt-get et la mise à niveau apt-get?

Réponses:

21

Réponse courte

Non, ils ne sont pas les mêmes. apt-get upgradene 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.


Réponse longue

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.

Exemple

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-genericpaquet qui dépend toujours du dernier paquet du noyau Linux. Parce que les dépendances linux-image-genericchangent avec chaque mise à niveau du noyau, upgradene le mettez pas à niveau.

kiri
la source
1
Pouvez-vous expliquer pourquoi, lorsque Software Updater n'a plus besoin du mot de passe root pour mettre à jour les packages existants (c'est-à-dire, lorsque seul apt-get upgradeest requis), apt-getne peut pas faire de même? Il semble qu'il y ait quelque chose d'autre fondamentalement différent entre les deux.
Jonathan Y.
4

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-upgradeest 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.


la source
3

Avec aptles 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' aptutilitaire - 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-getmise à niveau des packages. Ils sont similaires: le même package (également appelé apt) fournit les deux , et tout aptpeut le faire, les apt-utilitaires traditionnels le peuvent aussi, bien que dans certains cas, vous deviez passer des options de configuration spéciales. Mais aptest plus proche que apt-getle 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 upgradeau lieu de sudo apt-get upgrades'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-getn'utilise pas PhasedUpdates donc parfois Software Updater affiche moins de mises à jour que apt-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? .

- pabouk 25 février 15 à 7:34

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-upgradeface à la upgraderé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:

  • Comme apt-get, la aptcommande 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.
  • Mais à la différence apt-get , la aptde commande upgradel'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.

Eliah Kagan
la source