Po uruchomieniu snap list --all
polecenia pokazuje wszystkie zainstalowane wersje pakietów Snap.
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 -
Teraz jest tak wiele wyłączonych pakietów, które nie są już używane. Więc chcę usunąć te pakiety. Oto polecenie snap remove gnome-3-26-1604 --revision=62
. Teraz muszę to zrobić dla wszystkich wersji i dla wszystkich pakietów jeden po drugim. Czy istnieje polecenie, które usunie wyłączone lub nieużywane pakiety przystawek za pomocą pojedynczego wiersza polecenia?
Z góry dziękuję...
package-management
snap
Ryko
źródło
źródło
Odpowiedzi:
Niedługo zajmę się dodaniem tego (jako 20%). W międzyczasie możesz upaść
do skryptu powłoki i uruchom go.
źródło
snap remove
(jeśli to zrobiłeśsnap login
)xargs
go, aby był oneliner :)Znalazłem bardziej elegancki i łatwy w użyciu alias (używając pojedynczych cudzysłowów) to rozwiązanie :
Począwszy od snapu 2.34 i późniejszych, możesz ustawić maksymalną liczbę rewizji snapów przechowywanych przez system, ustawiając
refresh.retain
opcję ( źródło ).źródło
Możliwość usuwania / usuwania starych / wyłączonych snapów była wcześniej omawiana, ale jeszcze nie zaimplementowana. W międzyczasie jest to niestety proces ręczny.
źródło
Opierając się na poprzednich odpowiedziach, powinieneś prawdopodobnie robić coś takiego:
Co pozwala uniknąć błędu, gdy nie ma wyłączonej wersji przyciągania i szuka słowa „wyłączone”, szczególnie w kolumnie notatek.
źródło
$6
raczej niż$5
.snap list
Komenda naprawdę potrzebuje--format
opcję tak, że produkcja może być spójne dla skryptów.Opierając się na sugestiach @Chipaca, @ Ctrl-C i @Pablo Lalloni:
Wyszukuje „wyłączone” w kolumnie „Notatki”
snap list --all
i uruchamiasnap remove <snap> --revision <rev>
odpowiednią przystawkę.źródło
Po tym, jak zobaczyłem informację od Mike'a o tym, że skrypty łamią się między wersjami, ponieważ zmieniła się liczba kolumn wyjściowych, zacząłem szukać, czy istnieją jakieś odczytywalne maszynowo powiązania z tymi rzeczami.
Znalazłem API REST snapd .
Odpowiednikiem
snap list --all
jestZwraca JSON. Aby przefiltrować go do nieaktywnych pakietów i zamienić na listę
snap remove
poleceń, możesz użyćjq
:Technicznie można uruchomić to wszystko w jednym wierszu (przerwy, które wstawiłem, są czytelne), ale jest to dość garść, więc zawarłem to w skrypcie: remove-disabled-snaps.sh
źródło