Warum gibt es überhaupt die Trennung von Update und Upgrade?

Warum gibt es überhaupt die Trennung von Update und Upgrade?

Ich verstehe apt, dass der Befehl in updatedie Liste der verfügbaren Pakete aktualisiert, aber keine Software aktualisiert, die bereits aus diesen Paketen installiert wurde.

Mir ist auch bewusst, dass upgradeUpgrades für jede Software gelten, die ich bereits aus einem Paket installiert habe, mit dem ich die Aktualisierung updatewie oben beschrieben durchgeführt habe.

Was war der Grund für die Ubuntu/Debian-Entwickler, diese Aufteilung vorzunehmen updateund upgradestattdessen mit einem Befehl für beide Aufgaben zu arbeiten?

Dies ist eher eine Frage der Architekturphilosophie der Ubuntu-Entwickler.

Antwort1

Die Geschichte des Unterschieds zwischen updateund upgradeist eigentlich ziemlich cool.

Vor langer, langer Zeit – etwa im Jahr 2000, also Jahre bevor es Ubuntu gab – waren Bandbreite und Speicherplatz viel begrenzter, wenn auch im Vergleich zur Mitte der 1990er Jahre viel größer. Breitband war gerade erst im Kommen und Einwahl war noch immer eine wichtige Möglichkeit, online zu gehen. Große Festplatten waren noch immer nur ein paar hundert MB groß. Apt war schick und neu, radikal und revolutionär und basierte auf dpkg.

Die apt-Datenbank ist, wenn man darüber nachdenkt, ein Wunder: Sie ist eine minutengenaue Datenbank mitalleSoftware vonallebekannte Repositorien. Es ist detailliert genug, damit apt Abhängigkeiten berechnen und verfügbare Upgrades identifizieren kann, aber dennoch klein genug, um über die DFÜ-Modems der damaligen Zeit übertragen und auf den kleinen Laufwerken der damaligen Zeit gespeichert zu werden. Das Aktualisieren Ihrer Datenbank per Telefon kannProtokollüber eine gute Verbindung. Das ist zwar schon eine lange Zeit, aber die manuelle Suche nach Paketaktualisierungen (vor apt) konnte viel Zeit in Anspruch nehmen.Std..

Damals wurden Distributionen anders erstellt – keine kontinuierliche Integration, keine Smoke-Tests (also überhaupt nicht viele Tests!), Build-Farmen waren gerade erst im Gange. Upgrades mussten häufiger rückgängig gemacht werden als heute. Viele Benutzer entschieden sich dafür,nichtAktualisieren Sie bestimmte Pakete aus verschiedenen Gründen oder wählen Sie heute nur bestimmte Upgrades aus (um sie manuell zu testen) und andere Upgrades morgen.

In den darauffolgenden etwa 15 JahrenWerkzeugehaben sich nicht viel geändert, weshalb wir immer noch getrennte updateund upgradeAktionen haben. DieBenutzer-Workflowhat sich zusammen mit der Verbesserung der Zuverlässigkeit der Distributionen weiterentwickelt und ein Großteil der früher manuellen Quell-/Update-/Upgrade-Verwaltung wurde langsam hinter Automatisierungsebenen ( software-updater, unattended-upgrades) verborgen.

Die Modernisierung von Softwarepaket-Tools ist ein Grund für das kürzliche Erscheinen von Snaps, AppImage und Flatpak, aber das ist das nächste Kapitel.

Antwort2

Dies kann nicht nur bei einem Upgrade erforderlich sein apt-get update, und ich möchte nicht jedes Mal ein Upgrade durchführen, sondern lediglich die Paketlisten aktualisieren.

Eine apt-get upgradefunktionierende Quelle kann davon abhängen, apt-get updateob sie vor nicht allzu langer Zeit betrieben wurde, aber das gilt auch für apt-get removeund apt-get install! Sollte all dies bedeuten apt-get update? Natürlich nicht! Aus einfachen Gründen der Ressourceneffizienz und Designsauberkeit sollte ein Vorgang, der für mehrere andere Vorgänge üblich ist, herausgerechnet werden.

Umgekehrt, wenn man bedenkt, dass apt-get removeund apt-get installauch davon abhängen können, apt-get updatedass sie kürzlich ausgeführt wurden, um erfolgreich beendet zu werden, ist es dann sinnvoll, apt-get upgradefür jeden Lauf von zu apt-get updateverwenden? Nein, auch hier wieder, da das, was ich zu tun beabsichtige, durchaus im Widerspruch zu dem stehen kann, was ich apt-get upgradetun werde.

Antwort3

Wenn Sie die Softwarequellen ändern, müssen Sie den Befehl ausführen sudo apt update, um die Liste der verfügbaren Software zu aktualisieren. Anschließend können Sie in der gerade hinzugefügten neuen Softwarequelle nach verfügbaren Paketen suchen und/oder diese installieren.

Der Befehl sudo apt upgradeist das Terminaläquivalent zum Aktualisieren der Liste der installierten Pakete mithilfe der Anwendung „Software Updater“. Dies unterscheidet sich vom normalen Arbeitsablauf, bei dem eine neue Softwarequelle hinzugefügt, die Liste der verfügbaren Software aktualisiert wird, um Pakete aus der neuen Softwarequelle aufzunehmen, und neue Pakete aus der neuen Softwarequelle installiert werden, die Sie gerade hinzugefügt haben. Daher ist es bequemer und weniger verwirrend, dass es sich bei sudo apt updateund sudo apt upgradeum separate Befehle handelt.

Außerdem ist die Trennung weniger verwirrend sudo apt update, sudo apt upgradeda sudo apt updateSie bei erfolgreicher Ausführung bestätigt haben, dass Sie über eine Internetverbindung verfügen. Wenn bei der sudo apt upgradenachfolgenden Ausführung ein Problem auftritt, liegt das Problem wahrscheinlich eher an einem Paketverwaltungsproblem als an einem Problem mit der Internetverbindung, und die Ergebnisse sudo apt upgradeliefern Hinweise zur Diagnose und Lösung des Problems.

Antwort4

Man könnte fragen, warum man das Programm aus dem offiziellen Ubuntu-Repository herunterladen und aptdann installieren soll? Welchen Unterschied würde es machen, wenn man es zuerst herunterlädt und dann installiert, anstatt es in einem Vorgang herunterzuladen und zu installieren?

Nun, nachdem ich die Kommentare gelesen und mehr darüber nachgedacht habe, verstehe ich, dass dies auf dieUnix-Philosophie, AmodularPhilosophie, die im Wesentlichen besagt: „Jedes Programm macht eine Sache“: Erst herunterladen, dann installieren – jede Aktion mit einem eigenen, dedizierten Programm.

verwandte Informationen