Question Pourquoi utiliser apt-get upgrade à la place de apt-get dist-upgrade?


J'utilise habituellement apt-get update && apt-get upgrade d'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. Je cours habituellement 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.

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 apt-get upgrade existe même?


270
2017-09-30 03:21


origine


Dans les nouvelles versions d'Ubuntu, sudo apt full-upgrade fait des choses similaires - Aaron Franke


Réponses:


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 ne sont pas déjà installés et récupéré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 développer pourquoi vous voulez améliorer au lieu de dist-upgrade, si vous êtes administrateur de systèmes, vous avez besoin de prévisibilité. Vous utilisez peut-être des fonctionnalités avancées comme apt épinglant ou en tirant d'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 impatience 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.

363
2017-12-06 17:02



Merci non seulement de résumer les différences entre les deux, mais aussi d’expliquer les situations où l’un pourrait être meilleur que l’autre. C'était exactement ce que je cherchais. - jimchristie
dist-upgrade est plus susceptible de casser des trucs que upgrade. upgrade s'assure que votre système reste complet. - Braiam
dist-upgrade est plus susceptible de résoudre les problèmes avec les versions de package contradictoires, si vous êtes à l'aise avec l'approche «road roller» (vous n'avez pas de logiciel de production critique sur la boîte) - Henno
Une petite question à propos de «apt-get upgrade» faisant référence au fait que «aucun paquet actuellement installé n’a été supprimé ou n’en a ajouté un nouveau»: les paquetages existants sont-ils également mis à niveau en conséquence. Par exemple oldA dépend de oldB. OldA et oldB seront-ils tous deux mis à niveau? Que diriez-vous si newA dépend de oldB et pas newB, qu'advient-il de ces deux lors de la mise à niveau? les deux ne sont pas mis à niveau ou les deux sont mis à niveau, ce qui peut laisser NewA ne pas fonctionner car oldB est perdu? - Kenny
Quelle est la raison de l'utilisation time ici? - ItalyPaleAle


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 versions ultérieures (et Debian Jessie et versions ultérieures, pour ceux qui trouvent cela depuis Google) utilise 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 va installer ou supprimer des paquets si nécessaire pour terminer la mise à niveau,
  • apt upgrade va automatiquement installer mais pas supprimer les paquets.
  • apt full-upgrade effectue la même fonction que apt-get dist-upgrade.

111
2017-07-22 05:22



@muru Merci pour la modification et la note concernant la mise à niveau complète. J'utilise principalement Debian 7 (qui est antérieure à APT 1.0), et je n'ai joué qu'avec Debian Jessie et Ubuntu 14.04. - Stephen Angelico
vous êtes les bienvenus. Comme quelqu'un qui utilise jessie et 14.04 régulièrement, j'ai d'abord appris ce nouvel utilitaire à partir de votre réponse! - muru
Avez-vous une source pour votre description de apt upgrade? Tout ce que je peux trouver suggère que apt upgrade est le même que apt-get upgrade. Par exemple, apt help upgrade sur mes sorties système: "apt upgrade" is equivalent to "sudo apt-get upgrade" - Jon Bentley
Les pages de manuel respectives pour apt et apt-get spécifier ce que j'ai dit à l'origine. - Stephen Angelico
apt safe-upgrade n'est pas une opération valide sur mon système. Si tu veux dire aptitude safe-upgrade, pas assez. apt-get upgrade n'installera jamais de paquets, alors que apt upgrade et aptitude safe-upgrade va installer de nouveaux paquets comme les dépendances l'exigent. Alors aptitude safe-upgrade est équivalent à apt upgrade, ne pas apt-get upgrade. - Stephen Angelico


le upgrade L'option 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 que vous avez installée ou nécessitera l'installation de bibliothèques supplémentaires. le upgrade L'option ne supprimera jamais les packages installés dont vous n'avez plus besoin.

Cependant, le dist-upgrade L'option 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 des dépendances.


6
2017-09-30 06:17



Bien que ce soit exact, je ne pense pas que cela réponde à la question. Si nous avons une option "intelligente" capable de gérer les changements de dépendance et de supprimer l'encombrement, pourquoi ne pas toujours l'utiliser? - ændrük
upgrade ne sera jamais aussi ajouter nouveaux paquets qui devenir nécessaire comme dépendances. De man apt-get: "les paquets actuellement installés ne sont en aucun cas supprimés ou les paquets ne sont pas déjà installés récupérés et installés" @ ændrük Ce n'est pas parce que quelque chose est "intelligent" que l'utilisateur fera toujours ce qu'il veut (ou même quelque chose de raisonnable). A tout moment une mise à jour du système enlève un paquet, il est bon de regarder ce qu'il fait avant d'appuyer sur Y. - Eliah Kagan


Les utilisateurs peuvent se fier aux packages qui ont été installés implicitement en raison d'autres dépendances (explicitement installées) des packages. Ainsi, le système d'empaquetage ne peut pas savoir qu'un utilisateur / administrateur souhaite conserver certaines fonctionnalités qui pourraient être supprimées via dist-upgrade.


2
2018-02-04 13:42





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" ... Même si " , il pourrait y avoir des problèmes - qu'est-ce qui va vous couper le souffle! TOI devrait être celui qui a le droit 2 décider ;-)


-4
2017-08-12 12:17



Should not be a problem for Win-Home Users to always "dist-upgrade" ..pourquoi donc ? - heemayl
Eh bien, disons que vous configurez un serveur ubuntu, un poste de travail pour un environnement productif: lorsque vous installez toujours dist-upgrade, vous ne pourrez probablement pas le contrôler lorsque vous rencontrez des problèmes, même si vous n'avez pas le temps de le résoudre. à ce moment, une mise à niveau automatisée est effectuée. Certains configs peuvent avoir besoin de toucher "humain" pour mettre en communication. C'est ce que j'ai expirien plusieurs fois. Lorsque vous travaillez simplement sur des plates-formes telles que Win-Home, l'utilisateur n'est pas autorisé à contrôler les mises à jour. Donc, vous ne pouvez pas vous déranger. - Thorben Kaufmann