Was macht "sudo apt-get update"?

513

Ich frage mich, was sudo apt-get updatemacht das?

Was wird aktualisiert?

Elysium
quelle

Antworten:

551

Kurz gesagt, apt-get updateinstalliert 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 updateLä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 upgraderuft 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-upgradeerledigt 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.listDatei (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 sudobeide Male, aber da sudoSie nicht innerhalb von 5 Minuten nach dem letzten sudoVorgang zur Eingabe aufgefordert werden, werden Sie nur einmal (oder gar nicht) zur Eingabe Ihres Passworts aufgefordert.

ζ--
quelle
11
Müssen wir immer einen sudo apt-get updateBefehl ausführen, wenn wir Pakete installieren? Was ist der Nachteil, wenn wir das nicht tun?
JohnnyQ
14
@JohnnyQ Wenn Sie diesen Befehl nicht ausführen, wird möglicherweise ein veraltetes Paket installiert.
ζ--
ah klingt wie es dann nur eine Konventionssache ist. Daher gehe ich davon aus, dass dies nicht unbedingt erforderlich ist, insbesondere wenn Sie nur Basispakete mit Basisbefehlen verwenden, die normalerweise nicht aktualisiert werden. Das Problem in meiner Situation ist, dass es apt-get updateeine Weile dauert, das Internet ist hier immer noch primitiv.
JohnnyQ
2
@JohnnyQ, wenn Ihr apt-get-Update langsam ist, dann ist auch Ihr apt-get dist-Upgrade langsam. Das ist also kein Argument, das apt-get-Update nicht zuerst durchzuführen. Übrigens können Sie Ihre Aktualisierung von apt-get beschleunigen, indem Sie im Ordner /etc/apt/sources.d/ nachsehen, ob benutzerdefinierte Repositorys hinzugefügt wurden und eines davon möglicherweise nicht reagiert, was den gesamten Aktualisierungsprozess verlangsamt.
Mladen B.
1
"Apt" steht übrigens für Advanced Packaging Tool ( wiki.debian.org/Apt "What is APT?"). Etwas, was ich neulich gelernt habe, dachte ich würde teilen. ("apt" erscheint oft in man apt-get, man apt, aber ich hatte noch nie gesehen, dass das Akronym erweitert wurde).
Jgreve
47

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.comWebsite. Wenn Sie beispielsweise diese Site nach durchsuchen, apt-getfinden Sie AptGet / Howto als eines der Ergebnisse.

Alex
quelle
Alex, kann ich den Befehl grundsätzlich so verwenden, wie Sie ihn ausgedrückt haben: "apt-get update apt-get install <Paket>" Grundsätzlich können zwei Dinge ausgeführt werden, indem Sie die beiden Befehle wie folgt zusammen tippen?
Elysium
1
@Elysium Ja, wenn Sie &&zwischen ihnen alssudo apt-get update&&sudo apt-get install foo bar baz
ζ--
7
Verwenden &&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.
Flimm
4
Eine Google-Suche führte mich zu dieser Frage / Antwort. Nur zu
Ihrer Information
19

Beim Ausführen wird sudo apt-get updatelediglich 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 updatevor 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.

ζ--
quelle
13

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 updateanders ist als upgrade. Wie oben erwähnt, ruft Update die verfügbare Software ab und aktualisiert die Listen, während upgradeneue 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.

Sam
quelle
Was ist sudo apt-get installdenn dann? Installieren bestimmter Pakete anstelle eines allgemeinen Upgrades?
Peter Mortensen
12

Sie müssen apt-get updatevor 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...

Jason Petrilla
quelle
Netter Trick dafür!
Emerson Hsieh
6

Wenn Sie Pakete über die Befehlszeile mit sudo apt-get install ...(oder sudo aptitude install ...) installieren oder wenn Sie sie über die Befehlszeile (mit upgradeoder dist-upgradeanstelle von install) aktualisieren , werden die folgenden Informationen aus der Konfiguration Ihres lokalen Systems und nicht aus dem Internet bezogen:

  1. Welche Pakete sind verfügbar

  2. Welche Versionen von ihnen sind verfügbar

  3. 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 updateautomatisch 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 updatevor 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.

Eliah Kagan
quelle
4

Wie Eliah Kagan oben erwähnte, würden Sie erwarten, dass eine GUI-Anwendung apt-get updatevor 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 updateSystem Tools / Software-Update erneut ausgeführt und diesmal ohne 404-Fehler.

Sie können also nicht immer davon ausgehen, dass apt-get updatedas von GUI-Anwendungen ausgeführt wird ...

mikepratt
quelle
Interessant ... Gibt es möglicherweise eine ungewöhnliche Netzwerksituation zwischen Ihnen und dem Server, mit der Sie besser umgehen können apt-getals 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?)
Eliah Kagan
3

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 .

N8tron
quelle
2

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.

Praveen Vinny
quelle