Wenn ich den snap list --all
Befehl ausführe , werden alle installierten Versionen von Snap-Paketen angezeigt.
Name Version Rev Tracking Developer Notes
atom 1.26.1 150 stable snapcrafters classic
brave v0.22.669dev 23 stable brave -
core 16-2.32.6 4571 stable canonical core
core 16-2.32.5 4486 stable canonical core,disabled
firefox 59.0.2-1 71 stable mozilla disabled
firefox 60.0-2 85 stable mozilla -
gimp 2.10.0 38 stable snapcrafters disabled
gimp 2.10.0 39 stable snapcrafters -
gimp 2.8.22 30 stable snapcrafters disabled
gnome-3-26-1604 3.26.0 64 stable/… canonical -
gnome-3-26-1604 3.26.0 62 stable/… canonical disabled
gnome-characters 3.28.0 86 stable/… canonical -
gnome-characters 3.26.2 69 stable/… canonical disabled
gnome-logs 3.26.2 25 stable/… canonical disabled
gnome-logs 3.28.0 31 stable/… canonical -
gnome-system-monitor 3.26.0 36 stable/… canonical disabled
gnome-system-monitor 3.26.0 39 stable/… canonical -
libreoffice 6.0.3.2 59 stable canonical disabled
libreoffice 6.0.4.2 63 stable canonical -
Jetzt gibt es so viele deaktivierte Pakete, die nicht mehr verwendet werden. Also möchte ich diese Pakete entfernen. Hier ist der Befehl snap remove gnome-3-26-1604 --revision=62
. Jetzt muss ich es für alle Revisionen und für alle Pakete nacheinander tun. Gibt es einen Befehl, der die deaktivierten oder nicht verwendeten Snap-Pakete mit einer einzigen Befehlszeile entfernt?
Danke im Voraus...
package-management
snap
Ryko
quelle
quelle
Antworten:
Ich werde bald darüber nachdenken, dies hinzuzufügen (als 20% ige Sache). In der Zwischenzeit könnten Sie fallen
in ein Shell-Skript und führen Sie das aus.
quelle
snap remove
(wenn du es getan hastsnap login
)xargs
, um es zu einem Oneliner zu machen :)Ich fand diese Lösung eleganter und benutzerfreundlicher für einen Alias (mit einfachen Anführungszeichen) :
Ab Snap 2.34 können Sie die maximale Anzahl der vom System gespeicherten Snap-Revisionen festlegen, indem Sie eine
refresh.retain
Option ( Quelle ) festlegen .quelle
Die Möglichkeit, alte / deaktivierte Snaps zu löschen / entfernen, wurde bereits erörtert, aber noch nicht implementiert. In der Zwischenzeit ist es leider ein manueller Vorgang.
quelle
Aufbauend auf früheren Antworten sollten Sie wahrscheinlich Folgendes tun:
Dadurch wird vermieden, dass ein Fehler ausgegeben wird, wenn keine deaktivierte Snap-Revision vorhanden ist, und in der Spalte "Notizen" nach "deaktiviert" gesucht.
quelle
$6
eher als$5
. Dersnap list
Befehl benötigt wirklich eine--format
Option, damit die Ausgabe für die Skripterstellung konsistent ist.Aufbauend auf @Chipaca, @ Ctrl-C und @Pablo Lallonis Vorschlägen:
Dadurch wird in der Spalte "Notizen" nach "deaktiviert" gesucht
snap list --all
undsnap remove <snap> --revision <rev>
der entsprechende Fang ausgeführt.quelle
Nachdem ich die Notiz von Mike über diese Skripte gesehen hatte, die zwischen den Versionen unterbrochen wurden, weil sich die Anzahl der Ausgabespalten geändert hatte, ging ich auf die Suche nach maschinenlesbaren Bindungen für dieses Zeug.
Was ich gefunden habe, war die REST-API von snapd .
Das Äquivalent von
snap list --all
istEs wird JSON zurückgegeben. Um es nach inaktiven Paketen zu filtern und in eine Liste von
snap remove
Befehlen umzuwandeln, können Sie Folgendes verwendenjq
:Sie könnten technisch alles in einer einzigen Zeile ausführen (die von mir eingefügten Pausen dienen der Lesbarkeit), aber es ist eine ziemliche Handvoll, also habe ich es in ein Skript eingeschlossen: remove-disabled-snaps.sh
quelle