372 votes

Pourquoi utiliser apt-get upgrade au lieu d'apt-get dist-upgrade ?

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

Cependant, j'ai remarqué dernièrement que je reçois souvent un message indiquant que l'une de mes mises à jour a été retenue. Je lance alors généralement dist-upgrade pour le faire passer et ça marche bien. D'après ce que je peux dire après avoir lu cette question et ses réponses, dist-upgrade fait les mêmes choses et même plus.

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

506voto

rduplain Points 5378

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

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

Vous trouverez ci-dessous un extrait de man apt-get . L'utilisation de la mise à niveau permet de respecter la règle : en aucun cas, les paquets actuellement installés ne sont supprimés, ou les paquets qui ne sont pas encore installés ne sont récupérés et installés. Si c'est important pour vous, utilisez apt-get upgrade . Si vous voulez que les choses "fonctionnent", vous voulez probablement apt-get dist-upgrade pour s'assurer que les dépendances sont résolues.

Pour expliquer pourquoi vous voulez mise à niveau au lieu de dist-upgrade Si vous êtes un administrateur système, vous avez besoin de prévisibilité. Vous utilisez peut-être des fonctions avancées comme épinglage apt ou à partir d'une collection de PPAs (vous avez peut-être un PPA interne), avec plusieurs automatismes en place pour inspecter votre système et les mises à jour disponibles au lieu de toujours mettre à jour avec empressement tous les paquets disponibles. Vous seriez très frustré lorsqu'apt adopte un comportement non programmé, en particulier si cela entraîne l'interruption 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.

163voto

Anders Eriksson Points 43

Je sais que cette question a déjà reçu une réponse et qu'elle date d'un an, mais je pense que cela doit être dit. Ubuntu 14.04 et les versions ultérieures (et Debian Jessie et les versions ultérieures, pour ceux qui trouvent ceci sur Google) utilisent APT 1.0, qui permet à la commande apt au lieu de apt-get y 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 paquets nécessaires à la réalisation de la mise à niveau,
  • apt upgrade installera automatiquement les paquets mais ne les supprimera pas.
  • apt full-upgrade remplit la même fonction que apt-get dist-upgrade .

9voto

January Points 33673

El upgrade n'installe que la nouvelle version des paquets qui sont déjà installés sur le système (et oui, les mises à jour du noyau en font partie).

Cependant, il arrive que les mises à jour modifient les dépendances : par exemple, la nouvelle version d'un paquet ne dépendra plus d'une bibliothèque que vous avez installée, ou nécessitera l'installation de bibliothèques supplémentaires. Le site upgrade ne supprimera jamais les paquets installés dont vous n'avez plus besoin.

Toutefois, le dist-upgrade peut gérer "intelligemment" les changements dans le système de dépendances. Cela inclut la suppression des paquets qui ne sont plus nécessaires ou la résolution des conflits entre paquets qui sont apparus à cause de changements dans les dépendances.

3voto

user244474 Points 31

Les utilisateurs peuvent en être venus à se fier à des paquets qui ont été installés implicitement en raison de la dépendance d'autres paquets (explicitement installés) à leur égard. Ainsi, le système d'empaquetage ne peut pas être conscient du désir d'un utilisateur ou d'un administrateur de conserver certaines fonctionnalités qui pourraient autrement être supprimées par une mise à niveau.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X