Cuando ejecuto el snap list --all
comando, muestra todas las versiones instaladas de paquetes 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 -
Ahora hay tantos paquetes deshabilitados que ya no se usan. Entonces quiero eliminar esos paquetes. Aquí está el comando snap remove gnome-3-26-1604 --revision=62
. Ahora tengo que hacerlo para todas las revisiones y para todos los paquetes uno por uno. ¿Hay algún comando que elimine los paquetes snap deshabilitados o no utilizados con una sola línea de comando?
Gracias por adelantado...
package-management
snap
Ryko
fuente
fuente
Respuestas:
Buscaré agregar esto pronto (como una cosa del 20%). Mientras tanto, podrías caer
en un script de shell y ejecutar eso.
fuente
snap remove
(si hiciste unsnap login
)xargs
para convertirlo en línea :)Encontré más elegante y fácil de usar en un alias (usando comillas simples) esta solución :
A partir del complemento 2.34 y posterior, puede establecer el número máximo de revisiones de un complemento almacenadas por el sistema configurando una
refresh.retain
opción ( fuente ).fuente
La capacidad de purgar / eliminar instantáneas antiguas / deshabilitadas se ha discutido anteriormente, pero aún no se ha implementado. Mientras tanto, desafortunadamente es un proceso manual.
fuente
Basándose en las respuestas anteriores, probablemente debería estar haciendo algo como:
Lo que evita emitir un error cuando no hay una revisión instantánea deshabilitada y busca "deshabilitado" específicamente en la columna de notas.
fuente
$6
más que$5
. Elsnap list
comando realmente necesita una--format
opción para que la salida pueda ser coherente para las secuencias de comandos.Sobre la base de las sugerencias de @Chipaca, @ Ctrl-C y @Pablo Lalloni:
Esto busca "deshabilitado" en la columna "Notas"
snap list --all
y ejecutasnap remove <snap> --revision <rev>
el complemento correspondiente.fuente
Después de ver la nota de Mike sobre estas secuencias de comandos que se rompen entre las versiones porque el número de columnas de salida cambió, busqué para ver si hay enlaces legibles por máquina para estas cosas.
Lo que encontré fue la API REST de snapd .
El equivalente de
snap list --all
esDevuelve JSON. Para filtrarlo a paquetes no activos y convertirlo en una lista de
snap remove
comandos, puede usarjq
:Técnicamente, podría ejecutar todo eso en una sola línea (los saltos que inserté son para facilitar la lectura), pero es bastante difícil, así que lo envolví en un script: remove-disabled-snaps.sh
fuente