Lorsque j'exécute la snap list --all
commande, elle affiche toutes les versions installées des packages d'instantanés.
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 -
Maintenant, il y a tellement de packages désactivés qui ne sont plus utilisés. Je souhaite donc supprimer ces packages. Voici la commande snap remove gnome-3-26-1604 --revision=62
. Maintenant, je dois le faire pour toutes les révisions et pour tous les packages un par un. Existe-t-il une commande qui supprimera les packages d'instantanés désactivés ou inutilisés avec une seule ligne de commande?
Merci d'avance...
Réponses:
Je vais envisager d'ajouter cela très bientôt (comme une chose de 20%). Pendant ce temps, vous pourriez laisser tomber
dans un script shell et l'exécuter.
la source
snap remove
(si vous en avez fait unsnap login
)xargs
pour en faire un oneliner :)J'ai trouvé plus élégante et facile à utiliser sur un alias (en utilisant des guillemets simples) cette solution :
À partir de snap 2.34 et versions ultérieures, vous pouvez définir le nombre maximal de révisions d'un snap stockées par le système en définissant une
refresh.retain
option ( source ).la source
La possibilité de purger / supprimer les snaps anciens / désactivés a été discutée précédemment mais pas encore implémentée. En attendant, malheureusement, c'est un processus manuel.
la source
Sur la base des réponses précédentes, vous devriez probablement faire quelque chose comme:
Ce qui évite d'émettre une erreur lorsqu'il n'y a pas de révision d'accrochage désactivée et recherche «désactivé» spécifiquement dans la colonne des notes.
la source
$6
plutôt que$5
. Lasnap list
commande a vraiment besoin d'une--format
option pour que la sortie puisse être cohérente pour les scripts.S'appuyant sur les suggestions de @Chipaca, @ Ctrl-C et @Pablo Lalloni:
Cela recherche "désactivé" dans la colonne "Notes"
snap list --all
et exécutesnap remove <snap> --revision <rev>
le snap correspondant.la source
Après avoir vu la note de Mike à propos de la rupture de ces scripts entre les versions car le nombre de colonnes de sortie a changé, je suis allé voir s'il y avait des liaisons lisibles par machine à ce genre de choses.
Ce que j'ai trouvé était l'API REST de snapd .
L'équivalent de
snap list --all
estIl renvoie JSON. Pour le filtrer vers les packages non actifs et le transformer en une liste de
snap remove
commandes, vous pouvez utiliserjq
:Techniquement, vous pourriez exécuter tout cela sur une seule ligne (les sauts que j'ai insérés sont pour la lisibilité), mais c'est une poignée, alors je l'ai enveloppé dans un script: remove-disabled-snaps.sh
la source