web-dev-qa-db-fra.com

L'utilisation de Software Updater est-elle équivalente à l'exécution d'apt-get update et d'apt-get upgrade?

Il semble que cela devrait être vrai, mais je voulais être sûr. Merci!

27
zandm7

Réponse courte

Non, ils ne sont pas les mêmes. apt-get upgrade ne gère pas la modification des dépendances entre les versions. Ainsi, si un paquet a changé de dépendance, il ne sera pas mis à niveau (il sera "retenu"). Voir la réponse longue pour plus de détails.

Utiliser Software Updater et Sudo apt-get update ; Sudo apt-get dist-upgrade (notez le dist-) serait presque équivalent, sauf que l'une d'elles est évidemment une interface graphique et l'autre une application console, ainsi que quelques très différences d'information mineures.


Longue réponse

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 paquet ayant une nouvelle dépendance non requise dans l'ancienne version ne sera pas mise à niveau avec cette méthode (à moins que la nouvelle dépendance était déjà installé). Ceux-ci seront montrés comme "Retenu".

  • 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 de nouvelles dépendances (ou supprimées) peuvent être mis à niveau.

Exemple

Un bon exemple de la différence entre les deux est la publication d’un nouveau noyau Linux. Ceci est contenu dans le paquetage linux-image-generic qui dépend toujours du dernier paquetage du noyau Linux. Étant donné que les dépendances de linux-image-generic changent avec chaque mise à niveau du noyau, upgrade ne la met pas à niveau.

20
kiri

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 être retenu.

4
user25656

Avec apt disponible, mises à jour progressives ( mentionné par pabouk ) constituent la différence la plus saillante entre la mise à jour avec Software Updater et la ligne de commande.

Ces jours-ci, l'utilitaire apt - qui n'existait pas lorsque cette question a été posée mais aurait probablement été inclus dans la question si elle avait - est une alternative de plus en plus populaire à apt-get pour la mise à jour de paquets. Ils sont similaires: même paquet (également appelé apt) fournit les deux , et tout ce que apt peut faire, les utilitaires traditionnels apt- peuvent aussi, même si dans certains cas vous devez passer des options de configuration spéciales. Mais apt est plus proche que apt-get de Software Updater. Comme le programme de mise à jour de logiciel, Sudo apt upgrade est capable d'installer de nouveaux packages lorsque la nouvelle version d'un package existant les déclare comme dépendances.

Ainsi, de nos jours, les utilisateurs concernés par cette distinction peuvent simplement exécuter Sudo apt upgrade au lieu de Sudo apt-get upgrade s’ils souhaitent que les nouvelles dépendances soient installées automatiquement. Par conséquent, la fonction 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, constitue probablement maintenant la différence principale entre en utilisant Software Updater et en effectuant une mise à jour sur la ligne de commande.

Ce comportement de Software Updater est dû à = stratégie de mise à jour progressive . Cette politique - mise en œuvre dans Software Updater mais pas dans apt-get (ou apt) - constitue une différence majeure entre les deux méthodes depuis la politique a été introduite , et commenta pabouk à ce sujet il y a quelques années :

Il y a une autre différence: apt-get n'utilise pas --- [PhasedUpdates ) donc Software Updater affiche parfois moins de mises à jour que apt-get. Voir Pourquoi Software Updater ne dit-il pas de mises à jour disponibles, mais apt-get upgrade indique les mises à jour disponibles? .

- pabouk 25 février '15 à 7h34

Cela a peut-être toujours été la différence la plus significative, en ce sens que l'on pouvait toujours exécuter Sudo apt-get dist-upgrade face à la réticence de l'action upgrade à installer de nouveaux packages ou à désinstaller ceux déjà 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 commande apt téléchargera et installera les mises à jour même si elles seraient retardées en raison de la stratégie de mise à jour progressive si Software Updater avait été utilisé à la place.
  • Mais contrairement àapt-get, l'action apt de la commande upgradeva installer de nouveaux packages qui n'étaient pas précédemment installés mais qui sont obligatoires en tant que dépendances pour les nouvelles versions de package.

À part ​​de (a) préférant une interface graphique et (b) son intégration de bureau fournissant des notifications lorsque des mises à jour sont disponibles, la principale raison pour laquelle on peut actuellement utiliser Software Updater est le moyen le plus simple de participer par étapes. mises à jour.

3
Eliah Kagan