Frage Warum apt-get upgrade statt apt-get dist-upgrade?


Ich benutze normalerweise apt-get update && apt-get upgrade um meine Updates und Upgrades statt der GUI auszuführen, weil es schneller zu laufen scheint.

Allerdings habe ich in letzter Zeit gemerkt, dass ich oft eine Nachricht bekomme, dass eines meiner Upgrades zurückgehalten wurde. Ich laufe dann normalerweise dist-upgrade um es zu durchlaufen und es funktioniert gut. Soweit ich das nachlesen kann diese Frage und seine Antworten, dist-upgrade macht alle die gleichen Dinge und dann einige.

Also, meine Frage ist: Warum verwenden? apt-get upgrade überhaupt? Warum nicht benutzen? apt-get dist-upgrade die ganze Zeit? Warum tut apt-get upgrade gibt es sogar?


270
2017-09-30 03:21


Ursprung


In neueren Ubuntu-Versionen sudo apt full-upgrade macht ähnliche Dinge. - Aaron Franke


Antworten:


Ich aktualisiere meine Maschinen normalerweise mit:

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

Unten ist ein Auszug von man apt-get. Die Verwendung von Upgrades hält sich an die Regel: Unter keinen Umständen werden derzeit installierte Pakete entfernt oder Pakete, die noch nicht installiert wurden, abgerufen und installiert. Wenn das für dich wichtig ist, benutze es apt-get upgrade. Wenn Sie möchten, dass Dinge "nur funktionieren", möchten Sie wahrscheinlich apt-get dist-upgrade um sicherzustellen, dass Abhängigkeiten aufgelöst werden.

Um zu erweitern, warum Sie wollen Aktualisierung Anstatt von dist-upgradeWenn Sie ein Systemadministrator sind, benötigen Sie Vorhersagbarkeit. Möglicherweise verwenden Sie erweiterte Funktionen wie apt pinning oder aus einer Sammlung von PPA (Vielleicht haben Sie eine interne PPA), mit verschiedenen Automatisierungen, um Ihr System und verfügbare Upgrades zu inspizieren, anstatt immer alle verfügbaren Pakete zu aktualisieren. Sie würden sehr frustriert sein, wenn apt nicht-skriptgesteuertes Verhalten ausführt, insbesondere wenn dies zu Ausfallzeiten eines Produktionsdienstes führt.

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



Danke, dass Sie nicht nur die Unterschiede zwischen den beiden zusammenfassen, sondern auch die Situationen erklären, in denen die eine besser ist als die andere. Das war genau das, wonach ich suchte. - jimchristie
dist-upgrade Es ist wahrscheinlicher, dass sie das Zeug schlecht kaputt machen upgrade. upgrade sorgt dafür, dass Ihr System vollständig bleibt. - Braiam
dist-upgrade ist eher dazu geeignet, Probleme mit in Konflikt stehenden Paketversionen zu beheben, wenn Sie mit dem Road-Roller-Ansatz vertraut sind (d. h. Sie haben keine missionskritische Produktionssoftware auf der Box) - Henno
Eine kleine Frage zu 'apt-get upgrade' bezieht sich auf die Tatsache, dass "keine aktuell installierten Pakete entfernt oder neu hinzugefügt wurden": Werden bestehende Pakete ebenfalls entsprechend aktualisiert? Zum Beispiel hängt oldA von oldB ab. Werden OldA und OldB beide aktualisiert? Wie ist es, wenn NewA von OldB und nicht NewB abhängt, was passiert mit diesen beiden während des Upgrades? beide nicht aktualisiert oder beide aufgerüstet, was dazu führt, dass newA nicht funktioniert, weil oldB verloren ist? - Kenny
Was ist der Grund für die Verwendung? time Hier? - ItalyPaleAle


Ich weiß, dass diese Frage beantwortet wurde und ein Jahr alt ist, aber ich denke, das muss gesagt werden. Ubuntu 14.04 und später (und Debian Jessie und später, für diejenigen, die dies von Google finden) verwendet APT 1.0, das den Befehl erlaubt apt Anstatt von apt-get und apt-cache für einige Operationen.

  • apt-get upgrade wird nicht ändern, was installiert ist (nur Versionen),
  • apt-get dist-upgrade installiert oder entfernt Pakete nach Bedarf, um das Upgrade abzuschließen,
  • apt upgrade installiert automatisch, entfernt jedoch keine Pakete.
  • apt full-upgrade erfüllt die gleiche Funktion wie apt-get dist-upgrade.

111
2017-07-22 05:22



@muru Danke für die Bearbeitung und den Hinweis über Full-Upgrade. Ich benutze hauptsächlich Debian 7 (was vor APT 1.0 ist), und ich habe nur mit Debian Jessie und Ubuntu 14.04 gespielt. - Stephen Angelico
Bitte. Als jemand, der benutzt jessie und 14.04 habe ich das erste Mal von dieser Antwort erfahren! - muru
Haben Sie eine Quelle für Ihre Beschreibung von? apt upgrade? Alles, was mir einfällt, deutet darauf hin apt upgrade ist das gleiche wie apt-get upgrade. Beispielsweise, apt help upgrade auf meinen Systemausgaben: "apt upgrade" is equivalent to "sudo apt-get upgrade" - Jon Bentley
Die entsprechenden Manpages für apt und apt-get gib an, was ich ursprünglich gesagt habe. - Stephen Angelico
apt safe-upgrade ist keine gültige Operation auf meinem System. Wenn du meinst aptitude safe-upgrade, nicht ganz. apt-get upgrade wird nie Pakete installieren, während apt upgrade und aptitude safe-upgrade wird neue Pakete installieren, wenn Abhängigkeiten dies erfordern. Damit aptitude safe-upgrade ist äquivalent zu apt upgradenicht apt-get upgrade. - Stephen Angelico


Das upgrade Option installiert nur neue Versionen der Pakete, die bereits auf dem System installiert sind (und ja, Kernel-Updates gehören zu ihnen).

Manchmal ändern die Aktualisierungen jedoch die Abhängigkeiten: Beispielsweise hängt eine neue Version eines Pakets nicht mehr von einer von Ihnen installierten Bibliothek ab oder erfordert die Installation zusätzlicher Bibliotheken. Das upgrade Die Option entfernt niemals installierte Pakete, die Sie nicht mehr benötigen.

Aber die dist-upgrade Option kann "intelligent" Änderungen im Abhängigkeiten System behandeln. Dies umfasst das Entfernen von Paketen, die nicht mehr benötigt werden, oder das Lösen von Konflikten zwischen Paketen, die aufgrund von Änderungen in den Abhängigkeiten aufgetreten sind.


6
2017-09-30 06:17



Obwohl dies korrekt ist, glaube ich nicht, dass es die Frage beantwortet. Wenn wir eine "intelligente" Option haben, die Abhängigkeitsänderungen verarbeiten und Unordnung beseitigen kann, warum nicht immer verwenden? - ændrük
upgrade wird auch nie hinzufügen neue Pakete, die werden benötigt als Abhängigkeiten. Von man apt-get: "Unter keinen Umständen werden derzeit installierte Pakete entfernt, oder Pakete, die noch nicht installiert sind, abgerufen und installiert" @ ændrük Nur weil etwas "intelligent" ist, heißt das nicht, dass es immer das tun wird, was der Benutzer will (oder überhaupt etwas vernünftig). Immer ein Systemupdate entfernt ein Paket, es ist gut, über das, was es macht, zu schauen, bevor man Y drückt. - Eliah Kagan


Benutzer könnten sich auf Pakete verlassen haben, die aufgrund anderer Abhängigkeiten von (explizit installierten) Paketen implizit installiert wurden. Daher kann das Verpackungssystem nicht den Wunsch eines Benutzers / Administrators kennen, bestimmte Funktionen beizubehalten, die andernfalls durch dist-upgrade entfernt werden könnten.


2
2018-02-04 13:42





Sollte kein Problem für Win-Home-Benutzer sein, immer "dist-upgrade" zu machen, aber wenn Sie komplexe Systeme laufen lassen, sollten Sie "nie (wirklich) ein laufendes System ändern" ... Auch wenn "sollte" kein Problem sein sollte , da könnte "probs" sein - was wird dich abschneiden! SIE sollte derjenige sein, der das Recht hat 2 zu entscheiden ;-)


-4
2017-08-12 12:17



Should not be a problem for Win-Home Users to always "dist-upgrade" ..Warum das ? - heemayl
Nehmen wir an, Sie richten einen Ubuntu-Server ein, eine Workstation für die produktive Umgebung: Wenn Sie immer und automatisch das Dist-Upgrade durchführen, können Sie wahrscheinlich nicht kontrollieren, wann Sie Probleme bekommen - selbst wenn Sie nicht die Zeit haben, es zu lösen In diesem Moment wird ein automatisiertes dist upgrade durchgeführt. Einige Konfigurationen benötigen möglicherweise eine "menschliche" Berührung für den Anschluss. Das habe ich mehrmals erlebt. Wenn Sie einfach auf "Home" -Plattformen wie Win-Home arbeiten, ist der Benutzer standardmäßig nicht in der Lage, Updates zu steuern. Du magst dich also nicht stören. - Thorben Kaufmann