Pourquoi utiliser apt-get upgrade au lieu de apt-get dist-upgrade?

267

J'utilise habituellement apt-get update && apt-get upgrade pour exécuter mes mises à jour et mises à niveau au lieu de l'interface graphique car elle semble fonctionner plus rapidement.

Cependant, j'ai remarqué récemment que je reçois souvent un message indiquant que l'une de mes mises à niveau a été retardée. J'exécute généralement dist-upgrade pour l'exécuter et cela fonctionne bien. Autant que je sache après avoir lu cette question et ses réponses, dist-upgrade fait toutes les mêmes choses et ensuite certaines.

Alors, ma question est la suivante: pourquoi utiliser apt-get upgrade du tout? Pourquoi ne pas utiliser apt-get dist-upgrade tout le temps? Pourquoi apt-get upgrade existe-t-il même?

    
posée jimchristie 30.09.2012 - 05:21
la source

5 réponses

360

Je mets généralement à niveau mes machines avec:

sudo apt-get update && time sudo apt-get dist-upgrade

Ci-dessous, un extrait de man apt-get . L'utilisation de la mise à niveau reste fidèle à la règle: en aucun cas les packages actuellement installés ne sont supprimés ou les packages déjà installés ne sont pas récupérés et installés. Si cela vous semble important, utilisez apt-get upgrade . Si vous voulez que les choses «fonctionnent», vous voulez probablement que apt-get dist-upgrade s'assure que les dépendances sont résolues.

Pour en savoir plus sur les raisons pour lesquelles vous souhaitez que upgrade au lieu de dist-upgrade , vous devez être prévisible si vous êtes administrateur système. Vous utilisez peut-être des fonctionnalités avancées telles que apt épinglant ou en tirant une collection de PPA (peut-être avez-vous un PPA interne), avec diverses automatisations en place pour inspecter votre système et les mises à niveau disponibles au lieu de toujours mettre à jour avec empressement tous les packages disponibles. Vous deviendrez très frustré lorsque apt exécute un comportement non scripté, en particulier si cela entraîne un temps d'arrêt d'un service de production.

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.

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. So, dist-upgrade
    command may 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.
    
réponse donnée rduplain 06.12.2012 - 18:02
la source
111

Je sais que cette question a été répondue et qu’elle a un an, mais j’ai le sentiment que cela doit être dit. Ubuntu 14.04 et versions ultérieures (et Debian Jessie et versions ultérieures, pour ceux qui trouvent cela dans Google) utilisent APT 1.0, qui autorise la commande apt au lieu de apt-get et apt-cache pour certaines opérations.

  • apt-get upgrade ne changera pas ce qui est installé (seulement les versions),
  • apt-get dist-upgrade installera ou supprimera les packages nécessaires pour terminer la mise à niveau,
  • apt upgrade installera automatiquement mais pas supprimera les packages.
  • apt full-upgrade exécute la même fonction que apt-get dist-upgrade .
réponse donnée Stephen Angelico 22.07.2014 - 07:22
la source
6

L'option upgrade installe uniquement la nouvelle version des packages déjà installés sur le système (et oui, les mises à jour du noyau leur appartiennent).

Cependant, les mises à jour changent parfois de dépendance: par exemple, une nouvelle version d'un package ne dépend plus d'une bibliothèque installée ou nécessite l'installation de bibliothèques supplémentaires. L'option upgrade ne supprimera jamais les packages installés dont vous n'avez plus besoin.

Cependant, l’option dist-upgrade peut gérer "intelligemment" les modifications du système de dépendances. Cela inclut la suppression des packages qui ne sont plus nécessaires ou la résolution des conflits entre les packages dus aux modifications apportées aux dépendances.

    
réponse donnée January 30.09.2012 - 08:17
la source
2

Les utilisateurs sont peut-être venus à se fier à des packages installés implicitement en raison de la dépendance d'autres packages (explicitement installés) à leur égard. Ainsi, le système d'empaquetage ne peut pas être conscient du désir d'un utilisateur / administrateur de conserver certaines fonctionnalités qui pourraient autrement être supprimées via dist-upgrade.

    
réponse donnée user244474 04.02.2014 - 14:42
la source
-4

Ne devrait pas être un problème pour les utilisateurs Win-Home de toujours "dist-upgrade", mais si vous utilisez des systèmes complexes, vous feriez mieux de "ne jamais (vraiment) changer un système en cours d'exécution" ... pas de problème, il pourrait y avoir des problèmes - ce qui vous couperait le souffle! VOUS devrait être celui qui a le droit de décider; -)

    
réponse donnée Thorben Kaufmann 12.08.2015 - 14:17
la source

Lire d'autres questions sur les étiquettes