Allgemeine Frage:
Könnten einige erklären, was der Befehl apt-get update
bedeutet tut und wann sollte ich es wirklich verwenden?
Bemerkungen
Bitte geben Sie eine detaillierte Antwort . Nicht nur eine Kopie der Manpage, es sei denn, Ihre Version ist wirklich detailliert (ich habe eine Definition aus der Manpage unten eingefügt).
apt-get update :Wird verwendet, um die Paketindexdateien aus ihren Quellen neu zu synchronisieren. 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.
Teilfragen:
- Wo wird der Paketindex gespeichert? Auf einer Datenbank? Auf einer Datei?
- Was passiert, wenn ich
apt-get install
mache ohne den Cache zu aktualisieren? Besteht die Möglichkeit, dass das Remote-Paket nicht mehr existiert und der Link unterbrochen wird? - Gibt es eine vereinbarte Politik bezüglich Deb-Repositories? Soll ein Repository beispielsweise nur die letzte Version eines Pakets enthalten oder sollte es im Gegenteil alle Versionen enthalten, die für eine bestimmte Distributionsversion verfügbar sind?
Kontext
Ich stelle meine Frage, weil ich das Docker-Framework studiere. Eines seiner Features ist das Dockerfile , mit dem Sie eine Art OS-Image erstellen können, indem Sie einige Anweisungen aus dieser Datei ausführen.
Eine Eigenschaft dieses Images ist, dass es immer gleich sein sollte, unabhängig vom Kontext (Zeitpunkt des Erstellens usw.).
Ich fürchte, wenn ich apt-get update
starte Befehl zu einer anderen Zeit, das Ergebnis wäre anders und meine Bilder wären anders.
Akzeptierte Antwort:
apt-get update
lädt die Liste der verfügbaren Pakete herunter.
Die Liste der Pakete kann sich im Laufe der Zeit ändern. Neue Pakete werden hinzugefügt und alte Pakete werden entfernt. Wenn Sie also einen wirklich alten Cache haben und versuchen, eine apt-get install
durchzuführen , es könnte versuchen, ein Paket herunterzuladen, das nicht mehr existiert.
Wie lange ein altes Paket in einem Repository aufbewahrt wird, hängt vom Repo-Betreuer (Ihrer Distribution) ab. Wenn Sie also etwas wie Docker verwenden, wo der Cache sehr veraltet sein könnte, sollten Sie immer apt-get update
ausführen bevor Sie Pakete installieren.
Der Grund für das Entfernen und Hinzufügen von Paketen sind hauptsächlich Fehlerbehebungen und Sicherheitsupdates. Wenn Sie jedoch Repos von Drittanbietern wie PPA verwenden, ist alles möglich.
Verwandte:Wann bekommt man die Fehlermeldung „jobs :not found“?Wenn Sie so etwas wie Docker für die Containerisierung in einer Unternehmensumgebung verwenden, sollten Sie den Container einmal erstellen und diesen Container dann durch Ihre verschiedenen Release-Umgebungen (Entwicklung, Staging, Produktion) verschieben und den Container nicht jedes Mal neu erstellen. Dadurch wird sichergestellt, dass Sie keinen anderen Container erhalten, der nicht getestet wurde.
Um Ihre Frage zu beantworten, wo sich die Cache-Dateien befinden, /var/lib/apt/lists
.