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