J'utilisais récemment l'analyseur d'utilisation du disque pour voir si je pouvais libérer de l'espace sur mon bureau Ubuntu 18.10 lorsque j'ai remarqué le /var/lib/snapd/snaps/
Le dossier était assez volumineux.
Pendant que je cherchais comment libérer de l'espace / vider le cache des snaps /var/lib/snapd/snaps/
Dossier sans supprimer les packages snap que j'ai installés, j'ai découvert qu'après les mises à jour des packages snap, 3 versions snap sont enregistrées par défaut par le système. Cela signifie que pour chaque package Snap que j'ai installé avec au moins 2 mises à jour, j'avais 3 révisions enregistrées sur mon système qui occupaient un peu d'espace disque.
Il existe une option Snap (à partir de la version 2.34 de Snapd), appelé refresh.retain
, pour définir le nombre maximum de révisions instantanées enregistrées par le système après la prochaine mise à jour, qui sont définies sur un nombre compris entre 2 et 20. peut être ajusté . Vous pouvez changer cela de la valeur par défaut 3 à 2 en utilisant :
sudo snap set system refresh.retain=2
Connexe, mais pour les packages Flatpak :comment supprimer les runtimes Flatpak inutilisés pour libérer de l'espace
Mais que se passe-t-il si vous souhaitez supprimer toutes les versions de tous les packages snap avec des mises à jour sur le système ? Il s'agit d'un script créé par Popey, Community Manager chez Ubuntu Engineering chez Canonical pour supprimer TOUTES les anciennes versions de Snaps et ne conserver que la version active actuelle (mise à jour avec LANG=en_US.UTF-8
donc ça marche avec les locales non anglaises, merci à William dans les commentaires) :
#!/bin/bash
# Removes old revisions of snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu
LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
snap remove "$snapname" --revision="$revision"
done
L'utilisation de ce script devrait libérer un espace disque important (selon le nombre de packages Snap installés sur votre système et si des mises à jour ont été disponibles pour eux depuis leur installation). Dans mon cas, le script est de la taille du /var/lib/snapd/snaps/
Dossier de plus de 50 %.
Mise à jour :il semble que ce script ne fonctionne qu'avec l'anglais. Pour les autres langues, vous devez remplacer /disabled/
aux commandes avec sa traduction dans votre langue.
Pour utiliser ce script, créez un fichier appelé remove-old-snaps
, collez le contenu du bloc de code ci-dessus, enregistrez le fichier dans votre répertoire personnel et rendez-le exécutable avec :
chmod +x remove-old-snaps
Exécuter le script avec sudo
pour supprimer les anciennes révisions de snap (assurez-vous de fermer tous les snaps en cours d'exécution avant d'exécuter le script) :
sudo ./remove-old-snaps
Voici le script qui s'exécute sur mon système et supprime les anciennes révisions du package Snap :
$ sudo ./remove-old-snaps
atom (revision 223) removed
atom (revision 222) removed
bitwarden (revision 15) removed
bitwarden (revision 16) removed
canonical-livepatch (revision 50) removed
canonical-livepatch (revision 54) removed
chromium (revision 607) removed
chromium (revision 660) removed
core (revision 6531) removed
core (revision 6405) removed
core18 (revision 719) removed
core18 (revision 731) removed
gallery-dl (revision 36) removed
gallery-dl (revision 167) removed
gimp (revision 110) removed
gimp (revision 113) removed