Während APT Softwarepakete von der hinterlegten Paketquelle bezieht — in der Regel von einem Paketmirror — behält APT die Pakete im
Verzeichnis /var/cache/apt/archives/partial
. Ist der Download
abgeschlossen, werden diese in das Verzeichnis /var/cache/apt/archives
verschoben, anschließend ausgepackt und installiert.
Die bezogenen Pakete verbleiben im Cache. Werden die Pakete zu einem späteren Zeitpunkt nochmals benötigt und die Paketversion ist (noch) identisch, schaut APT zuerst im Paketcache nach und entnimmt diese von dort, bevor es die Pakete erneut von der Quelle bezieht. Das geht meist schneller, als diese erneut herunterzuladen.
Nachteil ist, dass diese Pakete Speicherplatz auf dem Datenträger ihres Debian-Systems belegen. Wird es damit knapp, raten wir Ihnen daher, diesen Speicherplatz regelmäßig aufzuräumen. Mittlerweile ist die Bezugszeit der Pakete über das Internet vielfach so gering, dass sich ein längerfristiges Vorhalten im Paketcache eigentlich erübrigt. Es ist in diesem Fall Abwägungssache und hängt davon ab, wie häufig Sie Pakete entfernen und später wieder einspielen.
Den Paketcache finden Sie im Verzeichnis /var
. Je nach Partitionierung
ihres Datenträgers ist der Bereich nicht separat und möglicherweise
Bestandteil der /
-Partition. Ist diese vollständig mit Daten gefüllt,
funktioniert vieles auf ihrem Linuxsystem nicht mehr.
Bei ausgefeilteren Installationen bestehen häufig separate Partitionen
für /var
oder /var/cache
. Läuft einer dieser Bereiche voll, können
im einfachsten Fall keine weiteren Pakete zwischengespeichert und auch
nicht temporär entpackt werden. Falls der Bereich /var
vollständig
belegt ist, können auch keine Logdateien mehr angelegt oder weitere
Informationen daran angehängt werden.
Einen Ausweg aus diesem Dilemma gelingt Ihnen mit dem Anlegen einer
separaten Partition für /var/cache/apt/archives
. Wie Sie diese
einrichten und mit welchen Vor- und Nachteilen dieser Schritt verbunden
ist, zeigen wir Ihnen unter „Cache-Verzeichnis auf separater
Partition“ in Kapitel 29, Cache-Verzeichnis auf separater Partition.
Die Programme dpkg
, apt-get
, aptitude
und Synaptic räumen den
Paketcache in der Standardeinstellung nicht eigenständig auf und
belassen die Pakete nach der Installation oder Aktualisierung im
Paketcache. Ob überhaupt, wann und insbesondere wie aufgeräumt wird,
entscheiden Sie als Systembetreuer selbst und müssen dazu das von ihnen
verwendete Werkzeug entsprechend konfigurieren.
Aus unserer Sicht sind die einzelnen Werkzeuge in Debian GNU/Linux wie folgt konfiguriert:
dpkg
.deb
-Datei im Verzeichnis, als
rührt auch den Paketcache nicht an.
apt-get
aptitude
Die Pakete verbleiben im Paketcache und werden nicht
daraus entfernt. Dieses Verhalten steuern Sie über den Eintrag
aptitude::AutoClean-After-Update
in der Konfigurationsdatei
~/.aptitude/config
. Der Default-Wert ist false
, d.h. das Paket
verbleibt im Paketcache. Mit der Angabe true
aktivieren Sie das
Aufräumen. Alternativ setzen Sie die Option über den Menüpunkt
„Einstellungen“ aus dem Menü „Optionen“ (siehe
Abbildung 7.2, „Alte Pakete aus dem Paketcache mittels Aptitude entfernen“):
apt
apt install
oder apt upgrade
herunter und installieren diese erfolgreich, entfernt
apt
diese Pakete danach aus dem Paketcache. Dieses Verhalten wird über
den Eintrag Clean-Installed
in apt.conf
gesteuert, der Default-Wert
dafür ist on
und steht für das Aufräumen.
Grundsätzlich gibt es mehrere, unterschiedlich radikale Ansätze zum
Aufräumen des Paketcaches. Die Variante eins umfasst das Löschen von
Paketen aus dem Cache, die in keinem der verwendeten APT-Repositories
mehr verfügbar sind. Die beiden Aufrufe apt-get autoclean
und
aptitude autoclean
implementieren diesen Ansatz. Bei Synaptic nutzen
Sie dazu den Menüpunkt → und selektieren
im Dialogfenster den Eintrag „Nur Pakete löschen, die nicht länger
verfügbar sind“ (siehe Abbildung 7.3, „Großreinemachen mit Hilfe von Synaptic“). In der
Standardeinstellung erleichtern diese Kommandos den Cache auch um
Pakete, die Sie in der vorliegenden Version nicht mehr vom Spiegelserver
beziehen können, die aber noch auf ihrem Linuxsystem installiert sind.
Um hingegen lediglich die Pakete aus dem Cache zu löschen, die auch
nicht, oder nicht mehr installiert sind, hilft Ihnen die
Konfigurationsoption APT::Clean-Installed=off
in der Konfiguration von
APT. Alternativ teilen Sie das apt-get
mit diesem Aufruf explizit mit:
Aufruf von apt-get
mit ausdrücklicher Konfiguration.
# apt-get -o APT::Clean-Installed=off autoclean ... #
Allerdings besteht keine Möglichkeit mehr, diese Pakete mittels APT zu
einem späteren Zeitpunkt wieder zu installieren, da sie ja in keiner
Paketliste mehr vorkommen. Benötigen Sie eines der Pakete später doch
wieder, hilft Ihnen nur der Rückgriff auf dpkg
in Kombination mit dem
dazugehörigen deb
-Paket weiter. Dazu benutzen Sie den Aufruf dpkg -i
Paketname
. Paketname
bezeichnet den Namen und Pfad der lokalen Datei
für das benötigte deb
-Paket (siehe Abschnitt 8.38, „Pakete installieren“).
Variante zwei umfasst das Löschen sämtlicher Pakete aus dem Paketcache — damit schaffen Sie radikal Platz. Die passenden Kommandos dazu lauten
apt-get clean
und aptitude clean
. Übrig bleiben danach nur die
beiden Verzeichniseinträge für die Sperrdatei lock
und das
Unterverzeichnis partial
, in dem die Fragmente für Pakete
landen, die nur teilweise bezogen wurden.
Aufräumen mittels apt-get clean
.
# apt-get clean # ls /var/cache/apt/archives/ lock partial #
Bei Synaptic bildet zunächst der Eintrag Abbildung 7.3, „Großreinemachen mit Hilfe von Synaptic“).
→ den Ausgangspunkt. Über den Knopf „Alle Paketdateien im Zwischenspeicher löschen“ lösen Sie die Aufräumaktion aus (sieheSelbstverständlich können Sie auch als Administrator agieren und dabei
gezielt nur ausgewählte oder auch alle vorliegenden deb
-Dateien
manuell aus dem Verzeichnis /var/cache/apt/archives/
mittels
rm Paketdatei
löschen. Gerade bei den Paketen, die Daten für Spiele
beinhalten — z.B. 0ad-data mit ca. 530 MB Paketdateigröße — , reicht
es oft aus, diese einzelnen Dateien aus dem Paketcache zu entfernen, um
dort wieder ausreichend Platz zu haben.
Alle derzeit von Debian unterstützten Versionen von APT klagen nicht,
wenn Sie das gesamte Verzeichnis /var/cache/apt/archives/partial/
klammheimlich hinter dem Rücken der beiden Programme einfach komplett
entsorgen. APT und aptitude
legen es bei einem späteren Bedarf einfach
von selbst wieder an. Anders sieht es hingegen bei älteren
Veröffentlichungen wie z.B. Debian 4.0 Etch oder Debian 5.0 Lenny,
Ubuntu 10.04 LTS Lucid Lynx sowie Debian-Derivaten aus der Zeit vor
Mitte 2010 aus. Beachten Sie bitte, dass APT vor Version 0.8 beim
Löschen eines der beiden Verzeichnisse
/var/cache/apt/archives/partial/
oder /var/lib/apt/lists/partial/
dann einfach den Dienst verweigert. Sie beheben das Problem flink, indem
Sie die genannten Verzeichnisse manuell wieder anlegen. Haben Sie
/var/cache/
als tmpfs
-Dateisystem eingehängt (siehe
Kapitel 29, Cache-Verzeichnis auf separater Partition), so können Sie mit dem
Aufruf mkdir -p /var/cache/apt/archives/partial
als Eintrag in der
Datei /etc/rc.local
dauerhaft Abhilfe schaffen.
Wann Sie am besten aufräumen, hängt etwas von der Nutzung und dem
verfügbaren Plattenplatz ab. In den meisten Fällen ist nach dem
Installieren und Aktualisieren der Pakete ein guter Zeitpunkt.
aptitude
bietet dies sogar über die Option
Aptitude::Autoclean-After-Update
an (siehe unten).
Ist jedoch der Plattenplatz recht knapp, so kann auch es auch helfen,
den Cache bereits vor dem Installieren und Aktualisieren aufzuräumen.
Das ist insbesondere dann sinnvoll, wenn Sie dies selbst nicht
regelmäßig machen und diese Aktion stattdessen per Cron-Job oder über
die Konfiguration der Paketverwaltung ausführen lassen. Es macht jedoch
keinen Sinn, wenn Sie beispielsweise gleichzeitig die APT-Option
APT::Periodic::Download-Upgradeable-Packages
eingeschaltet haben und
damit nachts automatisch alle aktualisierbaren Pakete herunterladen
lassen. Leeren Sie den Paketcache danach mit apt-get clean
komplett, hat
das zur Folge, dass die frisch bezogenen Pakete wieder gelöscht werden
und ein nachfolgendes apt-get upgrade
diese erneut herunterladen muss.
Das manuelle Aufrufen der o.g. Kommandos kostet Zeit. Daher bieten APT
und aptitude
unterschiedliche Möglichkeiten, um diese Vorgänge zu
automatisieren.
Das Paket apt bringt mit dem Skript /etc/cron.daily/apt
einen Cron-Job mit, der diverse Aufgaben einmal pro Tag ausführen kann.
Konfiguriert wird das Skript ebenfalls über die Datei
/etc/apt/apt.conf
. Den Paketcache betreffen die beiden
Einstellungen APT::Periodic::Download-Upgradeable-Packages
und
APT::Periodic::AutocleanInterval
.
APT::Periodic::Download-Upgradeable-Packages
1
, so füllt der Cron-Job den Paketcache einmal pro Tag,
falls Paketaktualisierungen verfügbar sind. Setzen Sie den Wert hingegen
auf 7
, so lädt er verfügbare Paketaktualisierungen nur einmal die
Woche herunter. Der Wert 0
(Null) ist die Standardeinstellung und
deaktiviert die Funktionalität vollständig.
APT::Periodic::AutocleanInterval
apt-get
autoclean
ausgeführt wird. Auch hier steht der Wert für den Abstand in
Tagen zwischen zwei Ausführungen. Der Wert 0
(Null) schaltet das
nächtliche Aufräumen ganz ab und ist auch die Standardvorgabe.
Die Dokumentation zu diesem Skript finden Sie in den Kommentarzeilen am
Anfang der Datei /etc/cron.daily/apt
. Dort finden sich noch
weitere und feinere Einstellmöglichkeiten zum automatischen Aufräumen
des Paketcaches, z.B. anhand des Alters der Pakete.
aptitude
dagegen bietet eine Zeitsteuerung über Schalter und Optionen
an. Damit erfolgt das Aufräumen via autoclean
oder clean
vor oder
nach der Installation von Paketen automatisch:
--clean-on-startup
aptitude clean
--autoclean-on-startup
aptitude autoclean
Ähnliches ermöglicht Ihnen aptitude
auch über die
Text-Modus-Bedienoberfläche. Setzen Sie in den Einstellungen unter
„Veraltete Paketdateien nach dem Laden von neuen Paketlisten löschen“
ein Häkchen, entspricht das der Konfigurationsoption
Aptitude::AutoClean-After-Update
. Damit löscht Aptitude nach jeder
Aktualisierung der Paketlisten (durch aptitude
) alle Paketdateien aus
dem Paketcache, die nicht mehr von einem in
/etc/apt/sources.list
aufgeführten Paketmirror heruntergeladen
werden können.