Ist die Verwendung von Software Updater dasselbe wie das Ausführen von apt-get update und apt-get upgrade?

Antworten:

21

Kurze Antwort

Nein, sie sind nicht dasselbe. apt-get upgradeÄnderungen der Abhängigkeiten zwischen Versionen werden nicht verarbeitet. Wenn sich also die Abhängigkeiten eines Pakets geändert haben, wird es nicht aktualisiert (es wird "zurückgehalten"). Siehe die lange Antwort für weitere Details.

Die Verwendung des Software-Aktualisierungsprogramms und die Verwendung von sudo apt-get update ; sudo apt-get dist-upgrade(beachten Sie die dist-) wären fast gleichwertig, mit der Ausnahme, dass es sich bei der einen offensichtlich um eine grafische Benutzeroberfläche und bei der anderen um eine Konsolenanwendung handelt und es sich auch um einige sehr geringfügige Informationsunterschiede handelt.


Lange gefragt

Von man apt-get,

  • apt-get upgrade:

    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.

    (Hervorhebung von mir)

    Dies bedeutet, dass eine neuere Version eines Pakets, für das in der alten Version keine neue Abhängigkeit erforderlich ist, nicht mit dieser Methode aktualisiert wird (es sei denn, die neue Abhängigkeit wurde bereits installiert). Diese werden als "Zurückgehalten" angezeigt.

  • apt-get dist-upgrade:

    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. The dist-upgrade
           command may therefore 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.

    (Hervorhebung von mir)

    Dies bedeutet, dass mit diesem Befehl anstelle von upgradePaketen mit neuen (oder entfernten) Abhängigkeiten ein Upgrade durchgeführt werden kann.

Beispiel

Ein gutes Beispiel für den Unterschied zwischen beiden ist die Veröffentlichung eines neuen Linux-Kernels. Dies ist in das linux-image-genericPaket gepackt, das immer vom neuesten Paket des Linux-Kernels abhängt. Da sich die Abhängigkeiten linux-image-genericbei jedem Kernel-Upgrade ändern, wird es upgradenicht aktualisiert.

kiri
quelle
1
Können Sie erklären, warum Sie dies nicht tun können , wenn der Software Updater kein Root-Passwort mehr benötigt, um vorhandene Pakete zu aktualisieren (dh wenn nur eines apt-get upgradeerforderlich ist) apt-get? Es scheint, als gäbe es etwas grundlegend anderes zwischen den beiden.
Jonathan Y.
4

Es ist fast das gleiche, aber nicht genau. Wenn beispielsweise Kernel-Updates angeboten werden, sudo apt-get update && sudo apt-get dist-upgradesind diese Updates erforderlich.

sudo apt-get update && sudo apt-get upgrade wird Ihnen mitteilen, dass einige Pakete zurückgehalten wurden.

Die Verwendung des Software-Updaters macht alles nahtlos und Sie sehen nichts, was zurückgehalten wird.


quelle
3

Bei aptverfügbaren, schrittweisen Aktualisierungen ( von pabouk erwähnt ) ist der Unterschied zwischen der Aktualisierung mit dem Software Updater und der Befehlszeile am ausgeprägtesten.

Heutzutage ist das aptHilfsprogramm - das zum Zeitpunkt der Veröffentlichung dieser Frage noch nicht vorhanden war, aber wahrscheinlich in der Frage enthalten gewesen wäre - eine immer beliebter werdende Alternative zum apt-getAktualisieren von Paketen. Sie sind ähnlich: Das gleiche Paket (auch als " Paket" bezeichnet apt) bietet beides und alles, was aptdie traditionellen apt-Dienstprogramme auch können. In einigen Fällen müssten Sie jedoch spezielle Konfigurationsoptionen übergeben. Ist aptaber näher als apt-getder Software Updater. Wie die Software Updater, ist der Lage , neue Pakete zu installieren , wenn die neue Version eines vorhandenen Paket sie als Abhängigkeiten deklariert.sudo apt upgrade

Heutzutage können Benutzer, die sich mit dieser Unterscheidung befassen, einfach ausgeführt werden, sudo apt upgradeanstatt sudo apt-get upgradeneue Abhängigkeiten automatisch installieren zu lassen. Folglich ist die Funktion des Software-Aktualisierers, einige Aktualisierungen geringfügig zu verzögern, um festzustellen, ob sie in der Natur stabil sind, und um den Schaden zu begrenzen, wenn dies nicht der Fall ist, wahrscheinlich der Hauptunterschied zwischen der Verwendung des Software-Aktualisierers und der Aktualisierung über die Befehlszeile.

Dieses Verhalten des Software-Updaters ist auf die Richtlinie für schrittweise Updates zurückzuführen . Diese Richtlinie - implementiert im Software Updater, aber nicht inapt-get (oder apt) - war seit Einführung der Richtlinie ein wesentlicher Unterschied zwischen den beiden Methoden , und Pabouk hat dies vor einigen Jahren kommentiert :

Ein weiterer Unterschied apt-getist, dass PhasedUpdates nicht verwendet werden und der Software Updater manchmal weniger Updates anzeigt als apt-get. Siehe Warum meldet der Software-Updater, dass keine Updates verfügbar sind, aber dass ein Upgrade erforderlich ist. Zeigt an, dass Updates verfügbar sind? .

- Pabouk 25. Februar 15 um 7:34

Dies mag immer der wichtigste Unterschied gewesen sein, da man immer laufen konnte, sudo apt-get dist-upgradewenn die upgradeAktion nicht bereit war, neue Pakete zu installieren oder bestehende zu deinstallieren. Beim Aktualisieren über die Befehlszeile nimmt jedoch die relative Bedeutung von schrittweisen Aktualisierungen mit den aptfolgenden Schritten zu :

  • Ebenso apt-getwird der aptBefehl Updates herunterladen und installieren, selbst wenn diese aufgrund der Richtlinie für schrittweise Updates verzögert würden, wenn stattdessen der Software Updater verwendet worden wäre.
  • Aber im Gegensatz apt-get zu , der aptBefehl upgradeAktion werden neue Pakete installieren , die nicht zuvor installiert wurden , jedoch als Abhängigkeiten für neue Paketversionen erforderlich.

Abgesehen davon, dass (a) eine grafische Benutzeroberfläche bevorzugt wird und (b) die Desktop-Integration Benachrichtigungen bereitstellt, wenn Aktualisierungen verfügbar sind, kann der Software Updater derzeit der Hauptgrund dafür sein, dass dies der einfachste Weg ist, an schrittweisen Aktualisierungen teilzunehmen.

Eliah Kagan
quelle