web-dev-qa-db-fra.com

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 mes mises à niveau au lieu de l'interface graphique, car elle semble fonctionner plus rapidement.

Cependant, j'ai récemment remarqué que je recevais souvent le message que l'une de mes mises à niveau avait été retardée. Ensuite, je lance généralement dist-upgrade pour l'exécuter et tout fonctionne correctement. Autant que je sache, après avoir lu cette question et ses réponses, dist-upgrade fait toutes les mêmes choses, puis certaines autres.

Ma question est donc la suivante: Pourquoi utiliser apt-get upgrade? Pourquoi ne pas utiliser apt-get dist-upgrade tout le temps? Pourquoi apt-get upgrade existe-t-il même?

292
jimchristie

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 respecte la règle: en aucun cas les packages actuellement installés ne sont supprimés, ni les packages non déjà installés 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 que apt-get dist-upgrade garantisse la résolution des dépendances.

Pour expliquer pourquoi vous voudriez upgrade au lieu de dist-upgrade , si vous êtes administrateur système, vous avez besoin de prévisibilité. Vous pouvez utiliser des fonctionnalités avancées telles que apt pinning ou extraire une collection de PPAs (peut-être avez-vous un PPA interne), avec diverses automatisations en place pour inspecter votre système et mises à niveau disponibles au lieu de toujours mettre à niveau avec impatience tous les packages disponibles. Vous pourriez être 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.
397
rduplain

Je sais que cette question a été répondue et a 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 de 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 à la mise à niveau,
  • apt upgrade installera automatiquement mais ne supprimera pas les packages.
  • apt full-upgrade remplit la même fonction que apt-get dist-upgrade.
121
Stephen Angelico

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 de la bibliothèque que vous avez 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 "intelligemment" gérer les modifications dans le système de dépendances. Cela inclut la suppression des packages qui ne sont plus nécessaires ou la résolution des conflits entre packages dus aux modifications apportées aux dépendances.

7
January

Les utilisateurs peuvent s’en remettre à des packages installés de manière implicite en raison de la dépendance d’autres packages (installés explicitement). Ainsi, le système de conditionnement ne peut pas être conscient du souhait d'un utilisateur/administrateur de conserver certaines fonctionnalités qui pourraient sinon être supprimées via dist-upgrade.

2
user244474