Lorsque j'exécute la commande snap list --all
, elle affiche toutes les versions installées des packages d'accrochage.
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 paquets désactivés qui ne sont plus utilisés. Je veux donc supprimer ces paquets. Ici, la commande est snap remove gnome-3-26-1604 --revision=62
. Maintenant, je dois le faire pour toutes les révisions et pour tous les paquets, un par un. Existe-t-il une commande permettant de supprimer les packages d'instantané désactivés ou inutilisés avec une seule ligne de commande?
Merci d'avance...
Je regarderai dans l'ajout prochainement ceci (comme une chose de 20%). Pendant ce temps, vous pouvez laisser tomber
#!/bin/sh
set -eu
snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
snap remove "$snapname" --revision="$revision"
done
dans un script shell et exécutez-le.
La possibilité de purger/supprimer les anciennes/désactivées snaps a été discuté précédemment, mais pas encore implémenté. En attendant, malheureusement, c'est un processus manuel.
En vous basant sur les réponses précédentes, vous devriez probablement faire quelque chose comme:
snap list --all | awk '$5~"disabled"{print $1" --revision "$3}' | xargs -rn3 snap remove
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.
J'ai trouvé plus élégant et facile à utiliser sur un alias (en utilisant des guillemets simples) cette solution :
snap list --all | while read snapname ver rev trk pub notes; do if [[ $notes = *disabled* ]]; then Sudo snap remove "$snapname" --revision="$rev"; fi; done
À partir de la version 2.34 et ultérieure, vous pouvez définir le nombre maximal de révisions de capture enregistrées par le système en définissant une option refresh.retain
( source ).
Sudo snap set system refresh.retain=2
En s'appuyant sur les suggestions de @Chipaca, @ Ctrl-C et @Pablo Lalloni:
snap list --all | awk '$5~"disabled"{print $1" --revision "$3}' | xargs -rn3 snap remove
Ceci recherche "désactivé" dans la colonne "Notes" de snap list --all
et exécute snap remove <snap> --revision <rev>
de la capture correspondante.