Fryboyter

Cache von Pacman automatisch aufräumen

Der Paketmanager Pacman speichert die Pakete unter /var/cache/pacman/pkg. Um bei Problemen ein Downgrade machen zu können, werden dort automatisch keine Pakete entfernt.

Leert man das Verzeichnis nicht regelmäßig kann es sein, dass irgendwann die Festplatte voll ist und man sich wundert was nun schon wieder schief gegangen ist. Um dies zu vermeiden, kann man sich einen sogenannten Hook erstellen. Mit diesen lassen sich Aktionen bevor oder nachdem etwas mit Pacman gemacht wird ausführen.

Um bei dem Beispiel mit Cache zu bleiben, erstellen wir erst einmal das Verzeichnis /etc/pacman.d/hooks sofern es nicht schon vorhanden ist. In diesem erstellen wir dann eine Datei an deren Ende .hook stehen muss. Also beispielsweise pacman-cache-aufraeumen.hook. In diese kommt dann folgender Inhalt:

[Trigger]
Operation = Remove
Operation = Install
Operation = Upgrade
Type = Package
Target = *

[Action]
Description = Cache von Pacman aufräumen...
When = PostTransaction
Exec = /usr/bin/paccache -rqk2

Im Bereich Trigger wird definiert in welchem Fall das ganze ausgeführt werden soll und für was der Hook gültig ist. in diesem Fall wird also die Aktion beim Entfernen, Installieren und Aktualisieren aller Pakete ausgeführt.

Im Bereich Action wird angegeben, was ausgeführt wird und wann. In diesem Beispiel wird der Befehl /usr/bin/paccache -rqk2 nach dem Entfernen, Installieren oder Aktualisieren eines Pakets ausgeführt. Der Parameter -rqk2 bewirkt, dass alle Pakete im Cache bis auf die letzten zwei Versionen entfernt werden und dass dies ohne Rückmeldung geschieht.

Linux | OSBN

Pacman XferCommand

Ich setze unter pacman (Paketverwaltung von Arch Linux) seit einiger Zeit nicht den internen Downloadmechanismus sondern snarf ein. Das gibt bis zur Version 4.0.3 von pacman auch gut. Seit dem gab es diverse 404-Fehler beim Aktualisieren der Pakete. Snarf findet also irgendetwas nicht und bricht deshalb ab. Gerade habe ich in einem lichten Moment die Lösung gefunden. Mittels pacman -Syu –debug bin ich dem Problem auf die Spur gekommen. Snarf hat die Signatur-Dateien der Datenbanken (z. B. core.db.sig) nicht gefunden. Kein Wunder, bisher sind ja nur die Pakete an sich signiert und die Datenbanken kommen erst später an die Reihe. Um trotzdem eines der XferCommand-Einträge in der /etc/pacman.conf zu nutzen muss man in selbiger bei den eingetragenen Paketquellen bei beim SigLevel noch DatabaseNever hinzufügen, so dass es wie folgt aussieht.

[core]
SigLevel = PackageRequired DatabaseNever
Include = /etc/pacman.d/mirrorlist

Und schon funktionieren die XferCommand-Einträge wieder.

Linux | OSBN