Benutzer-Werkzeuge

Webseiten-Werkzeuge


arch:paketverwaltung:paccache

Paccache

paccache aus dem Paket pacman-contrib ist ein Programm um den pacman Cache zu bereinigen.

Im Gegensatz zu pacman's eingebauter Reinigungs-Methode (den kompletten Cache zu löschen). Geht paccache intelligenter vor, so das eine bestimmte Anzahl an Paket Versionen zurückgehalten werden, um ein Downgrade eines Programms zu ermöglichen.

Installation

paccache befindet sich mit ein paar anderen Tools in dem Paket pacman-contrib:

# pacman -S pacman-contrib

Benutzung

Um die Syntax und alle verfügbaren Parameter zu sehen, führt man folgenden Befehl aus:

$ paccache --help

Der Aufruf des Programms ist nach folgendem Schema aufgebaut:

paccache <Operation> [Optionen] [Ziele…]

verfügbare Operationen

In folgender Tabelle stehen die verfügbaren Operationen. Für weitere Optionen siehe die manpages paccache(8)

KurzformLangformBeschreibung
-d–dryrun Führt einen »Trockenlauf« aus, wobei nur nach potenziell zu entfernenden Paketen gesucht wird.
-m–move <Verzeichnis>Verschiebt potenziell zu entfernende Pakete in das angegebene Verzeichnis.
-r–removeEntfernt die Pakete aus dem Zwischenspeicher, die als potenziell zu entfernen identifiziert wurden.

Beispiele

Folgender Aufruf bereinigt den pacman Cache und behält die letzten 3 Paket Versionen im Cache (Standard Wert)

# paccache -r

Folgender Aufruf verschiebt alle Pakete aus dem Cache, die nicht mehr installiert sind, in das Verzeichnis $HOME/paccache

# paccache -m "$HOME/paccache" -uk0

Automatisierung

Mittels systemd

paccache bringt einen paccache.timer für systemd mit. Dieser führt einmal wöchentlich paccache aus, um alle Paket Versionen bis auf die letzten 3 zu entfernen.

Dieser wird mit folgendem Befehl aktiviert:

# systemctl enable paccache.timer

paccache.service Optimierungen

Der paccache.service entfernt in seiner Standardkonfiguration alle Pakete bis auf die letzten 3 Versionen. Da dieses Verhalten aber nicht optimal ist, z. B. wenn die Pakete von nicht mehr installierten Programme komplett gelöscht werden sollen, kann man an dem paccache.service folgende Optimierungen vornehmen:

Um dabei den Originalen Zustand von ppaccache.service nicht zu verändern arbeitet man am besten mit einem Drop-in File dies hat den Vorteil, falls paccache.service aktualisiert wird pacman keine .pacnew Datei anlegen muss. Da dir original Datei unverändert bleibt.

systemctl edit paccache.service

In dem sich öffnenden Editor werden folgende Zeilen eingefügt und gespeichert:

[Service]
Type=oneshot
ExecStart=
ExecStart=/usr/bin/paccache --remove --uninstalled --keep 0
ExecStart=/usr/bin/paccache --remove
  • Die erste ExecStart= Zeile muss leer bleiben um die Variable vom echten paccache.service zu leeren. Überschreiben funktioniert nicht, weil diese Variable mehrfach verwendet werden kann.
  • Die zweite ExecStart= Zeile löscht alle Pakete von nicht mehr installierten Programmen aus dem Cache
  • Die dritte ExecStart= Zeile löscht dann alle übrig gebliebenen Pakete bis auf die letzten 3 Versionen von jedem Paket.

Falls die Veränderungen wieder rückgängig gemacht werden sollen. Wird folgender Befehl verwendet:

systemctl revert paccache.service

Siehe auch

arch/paketverwaltung/paccache.txt · Zuletzt geändert: 2020/01/14 18:49 von gahsul