Ich verstehe, dass apt
der Befehl update
in die Liste der verfügbaren Pakete aktualisiert, jedoch keine Software aktualisiert, die bereits von diesen Paketen installiert wurde.
Ich verstehe auch, dass upgrade
alle Software-Upgrades, die ich bereits von einem Paket installiert habe, mit dem ich update
wie oben beschrieben ein Update durchgeführt habe.
Was war der Grund für die Ubuntu / Debian-Entwickler, diese Aufteilung vorzunehmen update
und upgrade
stattdessen mit einem Befehl zu arbeiten, um beide Aufgaben zu erledigen?
Dies ist eher eine Frage zur Architekturphilosophie der Ubuntu-Entwickler.
package-management
upgrade
updates
architecture
history-of-ubuntu
user9303970
quelle
quelle
alias
es trotzdem. Der Unix-Weg ist ein Befehl, der sowieso nur eine Sache macht, also passt die Trennung besser zum Unix-Weg, wenn Sie auch theologische / philosophische Argumente haben.apt dist-upgrade
und "n" drücke, um abzubrechen, dann ändere ich meine Meinung, dass ich Bandbreite sparen werde, weil es nicht 'aktualisiert' wird, um meinenapt dist-upgrade
Befehl erneut auszuführen ... Auch wenn 'dist-upgrade' das Update durchgeführt hat automatisch gibt es Gründe für ein 'Update', die nicht 'install', 'upgrade' oder 'dist-upgrade' beinhalten, so dass der Befehl 'update' sowieso existieren würde.apt update
nur automatisch ausgeführt werden sollte, wenn dies erforderlich ist.Antworten:
Ein Upgrade ist möglicherweise nicht das einzige Mal, das Sie benötigen
apt-get update
, und ich möchte nicht jedes Mal ein Upgrade durchführen, wenn ich einfach die Paketlisten aktualisieren möchte.Ein
apt-get upgrade
funktionierender Brunnen kann davon abhängenapt-get update
, dass er vor nicht allzu langer Zeit gelaufen ist, aber das gilt auch fürapt-get remove
undapt-get install
! Sollten alle diese implizierenapt-get update
? Natürlich nicht! Aus Gründen der Ressourceneffizienz und der Entwurfssauberkeit sollte ein Vorgang, der mehreren anderen Vorgängen gemeinsam ist, ausgeschlossen werden.Ist es angesichts dessen
apt-get remove
undapt-get install
möglicherweise auch abhängig davon , obapt-get update
der letzte Lauf erfolgreich abgeschlossen wurde, sinnvoll, diesapt-get upgrade
für jeden Lauf von zuapt-get update
tun? Nein, denn was ich vorhabe zu tun, kann durchaus im Widerspruch zu dem stehen, was zuapt-get upgrade
tun ist.quelle
Wenn Sie die Softwarequellen ändern, müssen Sie den Befehl
sudo apt update
ausführen, um die Liste der verfügbaren Software zu aktualisieren. Anschließend können Sie in der gerade hinzugefügten neuen Software-Quelle nach verfügbaren Paketen suchen und / oder diese installieren.Der Befehl
sudo apt upgrade
ist das Terminaläquivalent zum Aktualisieren der Liste der installierten Pakete mit der Software Updater-Anwendung. Dies unterscheidet sich vom normalen Arbeitsablauf beim Hinzufügen einer neuen Softwarequelle, beim Aktualisieren der Liste der verfügbaren Software, um Pakete von der neuen Softwarequelle einzuschließen, und beim Installieren neuer Pakete von der neuen Softwarequelle, die Sie gerade hinzugefügt haben und weniger verwirrend dassudo apt update
undsudo apt upgrade
sind separate Befehle.Es ist auch weniger verwirrend zu trennen,
sudo apt update
undsudo apt upgrade
wenn Siesudo apt update
erfolgreich ausgeführt werden, haben Sie bestätigt, dass Sie über eine Internetverbindung verfügen. Wenn beim anschließenden Ausführen ein Problemsudo apt upgrade
auftritt, handelt es sich wahrscheinlich eher um ein Paketverwaltungsproblem als um ein Problem mit der Internetverbindung. Die Ergebnisse vonsudo apt upgrade
liefern Hinweise zur Diagnose und Lösung des Problems.quelle
Die Geschichte des Unterschieds zwischen
update
undupgrade
ist eigentlich ziemlich cool.Vor langer, langer Zeit - etwa 2000, Jahre bevor Ubuntu existierte - waren Bandbreite und Speicherplatz viel begrenzter ... obwohl sie im Vergleich zu Mitte der 1990er Jahre expansiv waren. Breitband war gerade in den Anfängen und Einwahl war immer noch eine wichtige Möglichkeit, online zu gehen. Große Festplatten hatten nur noch wenige hundert MB. Apt war glänzend und neu, radikal und revolutionär und auf dpkg aufgebaut.
Die apt-Datenbank ist ein Wunder: Sie ist eine minutengenaue Datenbank aller Software aus allen bekannten Repositories. Es ist detailliert genug, um Abhängigkeiten zu berechnen und verfügbare Upgrades zu identifizieren. Es ist jedoch klein genug, um über die damaligen DFÜ-Modems zu übertragen und auf den kleinen Laufwerken der Zeit zu speichern. Das Aktualisieren Ihrer Datenbank per Telefon kann über eine gute Verbindung einige Minuten dauern . Das manuelle Nachschlagen von Paketaktualisierungen (vor apt) kann Stunden in Anspruch nehmen .
Damals wurden Distributionen anders gebaut - keine kontinuierliche Integration, keine Rauchtests (na ja, es wurden überhaupt keine umfangreichen Tests durchgeführt!), Die Erstellung von Farmen begann gerade. Upgrades mussten häufiger als bisher zurückgesetzt werden. Viele Benutzer haben sich aus verschiedenen Gründen dafür entschieden, bestimmte Pakete nicht zu aktualisieren oder nur bestimmte Aktualisierungen heute (zum manuellen Testen) und andere Aktualisierungen morgen auszuwählen.
In den folgenden rund 15 Jahren haben sich die Tools nicht wesentlich verändert, weshalb wir immer noch separate Tools
update
undupgrade
Aktionen haben. Der Benutzerworkflow hat sich mit der Verbesserung der Distributionszuverlässigkeit weiterentwickelt, und ein Großteil der Verwaltung von Quellen, Updates und Upgrades, die früher manuell durchgeführt wurde, wurde langsam hinter Automatisierungsebenen (software-updater
,unattended-upgrades
) verborgen .Die Modernisierung von Softwarepaket-Tools ist ein Grund dafür, dass Snaps und AppImage sowie Flatpack kürzlich erschienen sind, aber das ist das nächste Kapitel.
quelle
Sie machen aus vielen Gründen getrennte Dinge.
Ein Beispiel ist eine Frage, die ich gepostet und selbst beantwortet habe: Wie können PPAs über die Benutzeroberfläche entfernt werden? . Auf diesem Bildschirm möchten wir PPAs entfernen, ohne die Software zu aktualisieren:
Nach dem Entfernen eines PPA wird die GUI-Software automatisch ausgeführt
sudo apt update
. Wenn Sie eine PPA von der Befehlszeile entfernen möchten, müssen Sie sie ausführen,sudo apt update
nachdem Sie eine PPA aus der Quellenliste entfernt haben.Ohne eine separate
apt update
Funktion kann ein PPA! Nicht entfernt werden.Ein weiteres Beispiel ist, dass Sie
sudo apt update
von der Befehlszeile aus ausführen müssen , um die Quellen zu aktualisieren. Dann können Sie herausfinden, was aktualisiert werden könnte , ohne tatsächlich zu aktualisieren:Wenn Sie sich die Ausgabe ansehen, könnten Sie entscheiden, ob ein bestimmtes Paket "angeheftet" oder "zurückgehalten" und beim nächsten Ausführen von "sudo apt upgrade" nicht aktualisiert wird .
Ohne eine separate können
apt update
Sie nicht sehen, was aktualisiert werden würde!quelle
yum
unddnf
automatisch das Äquivalent eines Updates ausführen, wenn relevante Vorgänge ausgeführt werden. Das Äquivalent vonapt list --upgradable
ist beispielsweiseyum check-update
, das die Paketliste aktualisiert, wenn sie nicht kürzlich aktualisiert wurde. Es ist sicherlich möglich, dass dies funktioniert, wie in anderen Paketmanagern zu sehen ist.sudo apt update
nach dem Entfernen eines Repositorys ausgeführt werden müssen.yum
/dnf
wieder hervorgeht, erfolgt die Aktualisierung automatisch, sodass eine deaktivierte Quelle beim nächsten Vorgang automatisch entfernt wird. Wieder etwas, was durchaus möglich ist.yum
nochdnf
installiert. Das Installieren einer dieser Komponenten als Ersatz für eineapt update
würde den Systemaufwand und die Lernzeit erhöhen.Man könnte fragen, warum man das Programm aus dem formalen Ubuntu-Repository herunterlädt und
apt
dann installiert. Welchen Unterschied würde es machen, wenn Sie es zuerst herunterladen und dann installieren, anstatt es in einem Vorgang herunterzuladen und zu installieren?Nachdem ich die Kommentare gelesen und mehr darüber nachgedacht habe, habe ich verstanden, dass dies auf die Unix-Philosophie zurückzuführen ist , eine modulare Philosophie, die im Grunde sagt: "Jedes Programm macht eine Sache": Zuerst herunterladen, dann installieren - jede Aktion mit einem eigenen Programm .
quelle
In keiner Distribution gibt es ein Kommando update-upgrade, wenn es da ist, dann sind es nur vordefinierte Aliase, so viel ich vermute. Diese Aliase können auch unter Ubuntu einfach durch Bearbeiten von ~ / .bashrc gesetzt werden.
Update wird verwendet, um die Repositorys neu zu synchronisieren und eventuelle Probleme dort zu beheben. Wenn Sie dann ein Upgrade durchführen, werden Ihre installierten Pakete tatsächlich beschädigt. Wenn Sie jedoch ein Dist-Upgrade durchführen, führen Sie ein vollständiges Upgrade durch. In Arch Linux legen sie Wert auf ein vollständiges Upgrade mit Syu. Sie können dasselbe in Ubuntu tun. Bei einem vollständigen Upgrade lösen Sie tatsächlich alle systembedingten Abhängigkeitsprobleme, die bei einem teilweisen Upgrade auftreten können.
Ich hoffe es hilft. Bitte entschuldigen Sie den rohen Text als Schreiben am Telefon.
quelle
yum
unddnf
tun automatisch das Äquivalent einesupdate
auf die meisten Operationen , wenn die im Cache gespeicherten Daten alt genug ist. Siehe zum Beispiel die Diskussion zur Änderung dieses Verhaltens in dnf: lwn.net/Articles/750334