Ich bin ein Neuling mit Snap-Nutzung, ich habe einige Apps auf meinem System installiert, was ich bemerke, wenn df -h
ich den Befehl ausführe, bei dem ich festgestellt habe, dass verschiedene Versionen desselben Snaps gemountet sind
/dev/loop0 143M 143M 0 100% /var/lib/snapd/snap/gravit-designer/7
/dev/loop1 82M 82M 0 100% /var/lib/snapd/snap/core/4110
/dev/loop7 198M 198M 0 100% /var/lib/snapd/snap/polarr/3
/dev/loop2 82M 82M 0 100% /var/lib/snapd/snap/core/4206
/dev/loop3 143M 143M 0 100% /var/lib/snapd/snap/gravit-designer/6
/dev/loop10 137M 137M 0 100% /var/lib/snapd/snap/gravit-designer/5
Meine Frage ist, warum sie dort bleiben. Der einzige Weg, den ich gefunden habe, um die alten zu entfernen, ist das Entfernen und erneute Installieren des Snaps. Gibt es so etwas wie prune
eine Wartung meines Systems?
Antworten:
Hier ist ein kurzes Skript, das alle alten Versionen von Snaps entfernt. Dadurch wird nur die aktuell aktive Version beibehalten, wodurch Sie Speicherplatz wiederherstellen sollten:
quelle
/var/lib/snapd/snaps/
vor und nach dem Ausführen dieses Skripts. Sollte etwas Platz frei haben - wenn wirklich einige Druckknöpfe entfernt werden. Es sollte Nachrichten wiesnap-name removed
zB anzeigengtk-common-themes removed
./var/lib/snapd/cache
daher müssen Sie diese ebenfalls löschen, um Speicherplatz freizugeben. Sie können den Cache mitsudo rm /var/lib/snapd/cache/*
Ab Snap 2.34 können Sie die maximale Anzahl der vom System gespeicherten Snap-Revisionen festlegen, indem Sie die Option refresh.retain aktivieren .
Der refresh.retain- Wert kann nur eine Zahl zwischen 2 und 20 sein und hat den Standardwert 3.
quelle
refresh.retain=3
ist gut für 4 GB RAM oder brauchen Sie mehr?Eine Version des Skripts aus einer anderen Antwort als Einzeiler ohne die
awk
Abhängigkeit:Dies erfordert wahrscheinlich
bash
eine kompatible Shell mit dem[[
Konstrukt.quelle
sudo -i
möglicherweise eine Sitzung erforderlich odersnap remove
muss mit ausgeführt werdensudo
.export LC_ALL=en_US.UTF-8
Ausführung sollte dies sicherstellen. (Es kann auch vor dem Fangbefehl gesetzt werden, aber ich bin nicht sicher, ob die Entfernungen später möglicherweise auch übersetzt werden müssen)LANG=c
bevor die gesamte Zeile auf deutschen KonsolenLANG=C
(oderLC_ALL=C
) für das Standardgebietsschema sein. Kleinbuchstabenc
funktionieren möglicherweise aufgrundC
der Standardeinstellung für ein ungültiges Gebietsschema. (LC_MESSAGES
ist wahrscheinlich die minimale Einstellung) (Ich möchte den Beitrag nicht für eine Einstellung bearbeiten, die viele Benutzer jedoch nicht benötigen ...) (Sie vergleichen die FehlerLANG=c locale
mitLANG=C locale
)In den snapd-Dokumenten zu Versionen wird angegeben, dass die veralteten Revisionen automatisch entfernt werden sollen, damit nicht mehr als die letzten beiden Revisionen installiert werden. Allerdings habe ich auch mehr als zwei Versionen meiner Snaps installiert.
Sie können alle Revisionen mit auflisten
snap list --all
, um Folgendes zu sehen:Sie können einzelne Revisionen mit entfernen
snap remove spotify --revision=5
.Dies ist sicher auch für Behinderte Revisionen
core
und andere Abhängigkeiten, undsnap remove
mit einem expliziten--revision=...
auch verhindert , dass Sie nicht zu entfernendisabled
schnappt.quelle