Wie lösche ich alte, von Pacman installierte Pakete in Arch Linux?

Wie lösche ich alte, von Pacman installierte Pakete in Arch Linux?

Ich habe vor Kurzem Arch Linux installiert und festgestellt, dass ich relativ schnell viel Speicherplatz verbrauche. Aus irgendeinem Grund habe ich in nur etwa 2 Wochen bereits 17 GB verbraucht. Ich habe nicht viel Software installiert, daher gehe ich davon aus, dass alle alten Pakete irgendwo verwaltet werden.

Um dies zu unterstützen, habe ich festgestellt, dass, wenn ich ein Paket installiert, dieses Paket entferne und dann erneut installiere, Pacman die Software lediglich entpackt und neu installiert, ohne dass sie erneut heruntergeladen werden muss.

Nachdem ich mein Basissystem installiert hatte, ohne zusätzliche Software, habe ich vielleicht 2 GB oder so verbraucht. Seitdem habe ich nur Matlab, Skype, Wine und ein paar andere kleine Programme installiert. Natürlich habe ich auch fehlende Bibliotheken und dergleichen installiert, aber nicht annähernd 15 GB.

Liege ich hier völlig falsch oder löscht Arch beim Herunterladen/Aktualisieren auf neue Versionen nie alte Pakete?

Wenn ja, wie lösche ich diese nicht verwendeten Pakete?

Wenn ich installierte Pakete entferne, verwende ich außerdempacman -R ...

Antwort1

Nein, Pacman entfernt keine alten Pakete aus Ihrem Cache ( /var/cache/pacman/pkg), daher kann dieser mit der Zeit voll werden.

Zum Leeren des Caches stehen Ihnen zwei Methoden zur Verfügung: die rohe Gewaltanwendung mit pacman -Sc:

-c, --clean
Entfernt Pakete, die nicht mehr installiert sind, sowie derzeit nicht verwendete Synchronisierungsdatenbanken aus dem Cache, um Speicherplatz freizugeben. Wenn Pacman Pakete herunterlädt, speichert es diese in einem Cache-Verzeichnis. Darüber hinaus werden Datenbanken für jede Synchronisierungsdatenbank gespeichert, aus der Sie herunterladen, und werden nicht gelöscht, selbst wenn sie aus der Konfigurationsdatei pacman.conf(5) entfernt werden. Verwenden Sie einen --clean-Schalter, um nur Pakete zu entfernen, die nicht mehr installiert sind; verwenden Sie zwei, um alle Dateien aus dem Cache zu entfernen. In beiden Fällen haben Sie die Option „Ja“ oder „Nein“, um Pakete und/oder nicht verwendete heruntergeladene Datenbanken zu entfernen.

Oder Sie können für einen differenzierteren Ansatz eines der Dienstprogramme verwenden, die mit pacman-contrib geliefert werden paccache:

paccache ist ein flexibles Dienstprogramm zum Bereinigen des Pacman-Cache, das über zahlreiche Optionen verfügt, mit denen Sie steuern können, wie viel und was aus einem Verzeichnis mit Pacman-Paket-Tarballs gelöscht wird.

Standardmäßig paccache -rwerden alle bis auf die letzten drei Versionen eines installierten Pakets entfernt, aber Sie können diese Zahl mit dem -k, --keepSchalter ändern. Es gibt auch einen -d, --dryrunSchalter, um Ihre Änderungen in der Vorschau anzuzeigen. Sie können die -m, --move <dir>Option auch verwenden, um die Pakete in ein separates Verzeichnis Ihrer Wahl zu verschieben. Alle Schalter finden Sie unter paccache -hoder .paccache --help

Das pacman-contrib-Paket enthält eine Reihe von Dienstprogrammen, die bei der Paketverwaltung helfen. Es lohnt sich, sie alle durchzusehen und sich ein Bild davon zu machen, wie sie funktionieren und wie sie die Ausführung von Arch erheblich erleichtern können. Sie können die vollständige Liste hier einsehen:

pacman -Ql pacman-contrib | awk -F"[/ ]" '/\/usr\/bin/ {print $NF}'

Antwort2

Ihr Paketcache befindet sich in /var/cache/pacman/pkg/.

NOTIZ: pacmanPakete wurden 2018 aktualisiert und müssen zusätzlich installiert werden, pacman-contribum Skripte/Tools wie paccacheunten beschrieben zu verwenden.

Tun:

paccache -d

So führen Sie einen aus -dryrunund sehen, was beim nächsten Ausführen dieses Dienstprogramms möglicherweise entfernt wird:

paccache -r

So entfernen Sie zwischengespeicherte Pakete. 17 GB klingen wirklich happig. Stellen Sie sicher, dass Sie keine außer Kontrolle geratenen Protokolle haben. Gehen Sie folgendermaßen vor:

du -h /var/log

Oder auch einfach:

du -h /var

Für eine allgemeinere Vorstellung davon, was los ist.

Antwort3

Ich empfehle dringend die Verwendung vonpaccacheanstelle von pacman -Sc. Es gibt sogar ein sehr effektives Flag, um die Versionen von deinstallierten Paketen selektiv zu entfernen -u. Die Flags, die paccacheich empfehle, sind (als Teil von paccache v5.0.2):

  • -d, --dryrun: Führen Sie einen Probelauf durch und suchen Sie nur nach Kandidatenpaketen
  • -r, --remove: Kandidatenpakete entfernen
  • -u, --uninstalled: nur auf deinstallierte Pakete abzielen
  • -k, --keep <num>: „Anzahl“ aller Pakete im Cache behalten (Standard: 3)

Beispiel: Überprüfen Sie, ob noch Cache-Versionen von deinstallierten Paketen vorhanden sind.

paccache -dvuk0

Antwort4

pacman -Scctut, was Sie verlangen, aber es wird nicht empfohlen. Von derWiki

Es ist auch möglich, den Cache-Ordner vollständig zu leeren mitPacman -Scc, aber dies gilt als schlechte Praxis, da es zusätzlich zu den oben genannten Punkten auch verhindert, dass ein Paket im Bedarfsfall direkt aus dem Cache-Ordner neu installiert werden kann, und somit einen erneuten Download erzwingt. Sie sollten es niemals verwenden, es sei denn, Sie benötigen dringend mehr Speicherplatz.

Nebenbei bemerkt, wenn ich Pakete deinstalliere, verwende ich lieber pacman -Rnsc, da es auch Paketabhängigkeiten sowie Pakete entfernt, die von diesem abhängen. Lesen Sie wie immer sorgfältig durch, welche Pakete entfernt werden, da Sie unser System sehr leicht in einen unbrauchbaren Zustand versetzen könnten.

verwandte Informationen