Quando executo o snap list --all
comando, ele mostra todas as versões instaladas dos pacotes de 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 -
Agora existem tantos pacotes desativados que não são mais usados. Então, eu quero remover esses pacotes. Aqui está o comando snap remove gnome-3-26-1604 --revision=62
. Agora eu tenho que fazer isso por todas as revisões e por todos os pacotes, um por um. Existe algum comando que removerá os pacotes de snap desativados ou não utilizados com uma única linha de comando?
Desde já, obrigado...
package-management
snap
Ryko
fonte
fonte
Respostas:
Vou tentar adicionar isso em breve (como uma coisa de 20%). Enquanto isso, você pode largar
em um script de shell e execute isso.
fonte
snap remove
(se você fez umasnap login
)xargs
para torná-lo um oneliner :)Eu achei mais elegante e fácil de usar em um alias (usando aspas simples) esta solução :
A partir do snap 2.34 e posterior, você pode definir o número máximo de revisões de um snap armazenadas pelo sistema, configurando uma
refresh.retain
opção ( origem ).fonte
A capacidade de limpar / remover snaps antigos / desativados foi discutida anteriormente, mas ainda não foi implementada. Enquanto isso, infelizmente, é um processo manual.
fonte
Com base nas respostas anteriores, você provavelmente deveria estar fazendo algo como:
O que evita emitir um erro quando não há uma revisão de snap desativada e procura por "desativado" especificamente na coluna de notas.
fonte
$6
melhor que$5
. Osnap list
comando realmente precisa de uma--format
opção para que a saída possa ser consistente para scripts.Com base nas sugestões de @Chipaca, @ Ctrl-C e @Pablo Lalloni:
Ele procura por "desativado" na coluna "Anotações"
snap list --all
e é executadosnap remove <snap> --revision <rev>
no snap correspondente.fonte
Depois de ver a nota de Mike sobre esses scripts quebrando entre as versões porque o número de colunas de saída mudou, fui ver se há alguma ligação legível por máquina para essas coisas.
O que eu encontrei foi a API REST do snapd .
O equivalente de
snap list --all
éRetorna JSON. Para filtrá-lo para pacotes não ativos e transformá-lo em uma lista de
snap remove
comandos, você pode usarjq
:Tecnicamente, você pode executar tudo isso em uma única linha (as quebras que inseri são para facilitar a leitura), mas é um punhado, então envolvi-o em um script: remove-disabled-snaps.sh
fonte