Antworten:
Kurz gesagt, apt-get update
installiert keine neuen Softwareversionen. Stattdessen werden die Paketlisten für Upgrades für Pakete, die aktualisiert werden müssen, sowie für neue Pakete, die gerade in die Repositorys eingegangen sind, aktualisiert.
apt-get update
Lädt die Paketlisten aus den Repositorys herunter und "aktualisiert" sie, um Informationen zu den neuesten Versionen von Paketen und deren Abhängigkeiten zu erhalten. Dies wird für alle Repositorys und PPAs durchgeführt. Von http://linux.die.net/man/8/apt-get :
Dient zum erneuten Synchronisieren der Paketindexdateien von ihren Quellen. Die Indizes der verfügbaren Pakete werden von den in
/etc/apt/sources.list
(5) angegebenen Speicherorten abgerufen . Ein Update sollte immer vor einem Upgrade oder Dist-Upgrade durchgeführt werden.
apt-get upgrade
ruft neue Versionen von Paketen ab, die auf dem Computer vorhanden sind, wenn APT über diese neuen Versionen Bescheid weiß apt-get update
.
Von http://linux.die.net/man/8/apt-get :
Wird verwendet, um die neuesten Versionen aller derzeit auf dem System installierten Pakete aus den in
/etc/apt/sources.list
(5) aufgeführten Quellen zu installieren . Derzeit installierte Pakete, für die neue Versionen verfügbar sind, werden abgerufen und aktualisiert. Derzeit installierte Pakete werden unter keinen Umständen entfernt, und noch nicht installierte Pakete werden abgerufen und installiert. Neue Versionen der aktuell installierten Pakete, die nicht aktualisiert werden können, ohne den Installationsstatus eines anderen Pakets zu ändern, behalten ihre aktuelle Version bei. [Hervorheben] Zuerst muss ein Update durchgeführt werden, damit apt-get weiß, dass neue Versionen von Paketen verfügbar sind.
apt-get dist-upgrade
erledigt die gleiche Aufgabe, die auch von ausgeführt wird apt-get upgrade
, und behandelt die Abhängigkeiten auf intelligente Weise, sodass möglicherweise veraltete Pakete entfernt oder neue hinzugefügt werden. Siehe hier: Was ist "dist-upgrade" und warum wird mehr aktualisiert als "upgrade"?
Von http://linux.die.net/man/8/apt-get :
Diese Option führt nicht nur die Upgrade-Funktion aus, sondern verarbeitet auch die sich ändernden Abhängigkeiten mit neuen Paketversionen auf intelligente Weise. apt-get verfügt über ein "intelligentes" Konfliktlösungssystem, das bei Bedarf versucht, die wichtigsten Pakete auf Kosten weniger wichtiger Pakete zu aktualisieren. Die
/etc/apt/sources.list
Datei (5) enthält eine Liste von Speicherorten, von denen die gewünschten Paketdateien abgerufen werden können. Siehe auch apt_preferences (5) für einen Mechanismus zum Überschreiben der allgemeinen Einstellungen für einzelne Pakete.
Sie können Befehle &&
wie folgt kombinieren :
sudo apt-get update && sudo apt-get install foo bar baz foo-dev foo-dbg
oder um die neuesten Versionen zu erhalten, die gemäß den Versionsanforderungen der Abhängigkeiten möglich sind:
sudo apt-get update && sudo apt-get dist-upgrade
Sie brauchen sudo
beide Male, aber da sudo
Sie nicht innerhalb von 5 Minuten nach dem letzten sudo
Vorgang zur Eingabe aufgefordert werden, werden Sie nur einmal (oder gar nicht) zur Eingabe Ihres Passworts aufgefordert.
apt-get update
eine Weile dauert, das Internet ist hier immer noch primitiv.
Eine Google-Suche kann Ihnen die Definition für fast jeden Terminalbefehl geben, ebenso wie --help im Terminal. Zum Beispiel,
apt-get --help
sudo apt-get update
besteht im Wesentlichen aus drei Teilen:
sudo
Führt den folgenden Befehl mit Superuser-Funktionen (Root) aus. Für viele Aktionen, die das Ändern von Systemdateien oder das Installieren von Anwendungen erfordern, sind zusätzliche Berechtigungen erforderlich.
apt-get
ist ein Befehlszeilentool, mit dem Ubuntu Softwarepakete installiert, entfernt und verwaltet
update
ist eine Option, die das Programm apt-get verwendet, um die Paketlisten von einem Server im Internet zu aktualisieren. Die Paketlisten enthalten wichtige Informationen zu den Softwarepaketen, die Sie mit apt-get installieren können. apt-get verwendet diese Listen, um zu bestimmen, welche Software installiert werden soll, wenn ein Installationsbefehl erteilt wird. Zum Beispiel
sudo apt-get install guake
würde das Guake-Terminal so installieren, wie es derzeit in den lokalen Softwarelisten meines Computers aufgeführt ist. Dies ist jedoch möglicherweise nicht die richtige Version, oder wenn das Programm neu ist, ist es möglicherweise überhaupt nicht verfügbar. Wenn Sie also Software mit apt-get installieren, geben Sie normalerweise Folgendes ein
sudo apt-get update
sudo apt-get install <package>
Stellen Sie sicher, dass apt-get die neueste Version des Pakets installiert.
Eine weitere nützliche Informationsquelle ist die help.ubuntu.com
Website. Wenn Sie beispielsweise diese Site nach durchsuchen, apt-get
finden Sie AptGet / Howto als eines der Ergebnisse.
&&
zwischen ihnen alssudo apt-get update&&sudo apt-get install foo bar baz
&&
bedeutet, dass der zweite Befehl nur ausgeführt wird, wenn der erste erfolgreich ist. Wenn Sie sich nicht für den Erfolg des ersten Befehls interessieren, verwenden Sie ;
stattdessen.
Beim Ausführen wird sudo apt-get update
lediglich sichergestellt, dass Ihre Liste der Pakete aus allen Repositorys und PPAs auf dem neuesten Stand ist. Wenn Sie diesen Befehl nicht ausführen, erhalten Sie möglicherweise ältere Versionen verschiedener Pakete, die Sie installieren, oder schlimmer noch Abhängigkeitsprobleme. Wenn Sie gerade eine PPA hinzugefügt und nicht aktualisiert haben, funktioniert nichts von der PPA, da Sie keine Paketliste von dieser PPA oder dem Repository haben.
Kurz und bündig: Es wird dringend empfohlen, sudo apt-get update
vor der Installation auszuführen , aber es kann übersprungen werden, wenn Sie wirklich unter Zeitdruck stehen, es sei denn, Sie haben die Repositorys oder PPAs seit dem letzten Mal geändert apt-get update
.
Es aktualisiert die Liste der verfügbaren Software auf Ihrem Computer.
Ihr Computer verfügt über eine Liste (wie ein Katalog), die die gesamte verfügbare Software enthält, die auf den Ubuntu-Servern verfügbar ist. Die verfügbare Software und Versionen können sich jedoch ändern, sodass ein "Update" auf dem Server ausgeführt wird und ermittelt, welche Software verfügbar ist, um die lokalen Listen (oder Kataloge) zu aktualisieren.
Beachten Sie, dass dies update
anders ist als upgrade
. Wie oben erwähnt, ruft Update die verfügbare Software ab und aktualisiert die Listen, während upgrade
neue Versionen der auf Ihrem Computer installierten Software installiert werden (aktuelle Software-Updates).
Um Ihre Software tatsächlich zu aktualisieren (nicht die Listen zu "aktualisieren"), führen Sie den Befehl aus
sudo apt-get upgrade
was normalerweise nach einem "update" ausgeführt wird.
sudo apt-get install
denn dann? Installieren bestimmter Pakete anstelle eines allgemeinen Upgrades?
Sie müssen apt-get update
vor der Installation neuer Pakete einmal ausgeführt werden, da hierdurch die lokalen Repository-Informationen aktualisiert werden. Wenn Sie mehrere Pakete kurz hintereinander installieren, müssen Sie nicht ausführen apt-get update
. Sie können bei der Eingabe auch mehrere Pakete gleichzeitig installieren
sudo apt-get install package1 package2...
Wenn Sie Pakete über die Befehlszeile mit sudo apt-get install ...
(oder sudo aptitude install ...
) installieren oder wenn Sie sie über die Befehlszeile (mit upgrade
oder dist-upgrade
anstelle von install
) aktualisieren , werden die folgenden Informationen aus der Konfiguration Ihres lokalen Systems und nicht aus dem Internet bezogen:
Welche Pakete sind verfügbar
Welche Versionen von ihnen sind verfügbar
wo die verfügbaren Pakete abgerufen werden sollen
Durch Ausführen von sudo apt-get update
(oder sudo aptitude update
) wird dies auf Ihrem lokalen System aktualisiert. In diesem Schritt werden Informationen darüber abgerufen, welche Pakete installiert werden können, einschließlich der Aktualisierungen der derzeit installierten Pakete , die aus Internetquellen verfügbar sind.
Wenn Sie Pakete mit einer GUI-Oberfläche installieren (Update Manager, Software Center oder Synaptic Package Manager), wird die Arbeit sudo apt-get update
automatisch erledigt. Wenn Sie Pakete über die Befehlszeile installieren, ist dies nicht der Fall, und Sie sollten dies immer selbst tun, es sei denn, Sie haben dies erst kürzlich getan .
Da Informationen darüber, welche aktualisierten Versionen von Paketen verfügbar sind, durch Ausführen von sudo apt-get update
(oder sudo aptitude update
) abgerufen werden , ist es ratsam, diese vor der Installation eines Pakets auszuführen und sie auszuführen, um die neuesten Updates zu installieren, selbst wenn Sie keine Software hinzugefügt oder entfernt haben Quellen (wie ein PPA) .
Beachten Sie, dass Sie nicht sudo apt-get update
vor jedem einzelnen Paket ausgeführt werden müssen, wenn Sie mehrere Paketverwaltungsvorgänge gleichzeitig ausführen möchten . Nur wenn die Informationen für eine Weile nicht aktualisiert wurden, sollten Sie sicherstellen, dass Sie sie ausführen.
Wie Eliah Kagan oben erwähnte, würden Sie erwarten, dass eine GUI-Anwendung apt-get update
vor apt-get install
/ ausgeführt wird apt-get upgrade
, aber ich habe gerade einen interessanten Fehler 404 auf einem relativ neuen Offensiv-Sicherheits-VM-Computer entdeckt, der mich für eine Minute zum Erliegen gebracht hat.
Von der Befehlszeile aus habe ich den Befehl apt-get update
System Tools / Software-Update erneut ausgeführt und diesmal ohne 404-Fehler.
Sie können also nicht immer davon ausgehen, dass apt-get update
das von GUI-Anwendungen ausgeführt wird ...
apt-get
als mit der automatischen Überprüfung durch Ausführen des Software Updaters / Update Managers? Verwenden Sie einen HTTP-Proxy? Und kannst du es schaffen, dass es wieder passiert, oder ist es nur einmal passiert? Wenn es sich um eine isolierte Anomalie handelt, frage ich mich, ob das Problem möglicherweise auf eine vorübergehende Fehlkonfiguration des Servers zurückzuführen ist. Welchen Spiegel benutzt du? Mit mehr Infos könnte ich vielleicht meine Antwort verbessern. (Übrigens, ist dies als separate Antwort gedacht oder sollte es in einen Kommentar umgewandelt werden?)
Wie von vielen Leuten vor mir gesagt, aktualisiert dies Ihr lokales Repository (Paketliste).
Bei der Installation können Probleme auftreten
apt-get install foobar
und foobar oder eine Abhängigkeit haben ihre neueste Version nicht im Repository. Dies kann besonders problematisch sein, wenn Sie eine .deb-Datei manuell oder ein ppa von einem Drittanbieter installieren.
Grundsätzlich wird sichergestellt, dass Ihre Liste mit der Master- Liste übereinstimmt .
Nehmen wir das Beispiel der Installation betrachten VLC Media Player auf Ubuntu:
sudo apt-get update
Die Repositorys werden auf verfügbare Updates überprüft.
Wohingegen
sudo apt-get install vlc vlc-plugin-pulse mozilla-plugin-vlc
installiert den VLC Media Player aus den von uns gesuchten Repositories.
Wenn Sie sich als Root-Benutzer (Administrator) angemeldet haben, müssen Sie dies nicht verwenden sudo
, da Sie bereits über die Superuser-Berechtigungen verfügen.
sudo apt-get update
Befehl ausführen, wenn wir Pakete installieren? Was ist der Nachteil, wenn wir das nicht tun?