====== Paccache ====== paccache aus dem Paket [[https://www.archlinux.org/packages/community/x86_64/pacman-contrib/|pacman-contrib]] ist ein Programm um den [[:arch:paketverwaltung: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 [Optionen] [Ziele…] ==== verfügbare Operationen ==== In folgender Tabelle stehen die verfügbaren Operationen. Für weitere Optionen siehe die manpages [[https://jlk.fjfi.cvut.cz/arch/manpages/man/community/man-pages-de/paccache.8.de|paccache(8)]] ^Kurzform^Langform^Beschreibung| |-d|–dryrun |Führt einen »Trockenlauf« aus, wobei nur nach potenziell zu entfernenden Paketen gesucht wird.| |-m|–move |Verschiebt potenziell zu entfernende Pakete in das angegebene Verzeichnis.| |-r|–remove|Entfernt 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 [[:arch:init:systemd#drop-in_files|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 ===== [[https://jlk.fjfi.cvut.cz/arch/manpages/man/community/man-pages-de/paccache.8.de|paccache(8)]] paccache Handbuch \\ [[https://wiki.archlinux.org/index.php/Pacman#Cleaning_the_package_cache|archlinux.org Wiki]] \\ [[https://wiki.archlinux.de/title/Pacman#Paccache|archlinux.de Wiki]] \\