Cómo limpiar versiones Snap para liberar espacio en disco
Esta guía rápida con un script ayuda a limpiar versiones antiguas de Snap y liberar algo de espacio en disco en sus sistemas Ubuntu.
Me estaba quedando sin espacio en disco en mi sistema de prueba con Ubuntu.
Así que estaba investigando a través del Analizador de uso de disco de GNOME para descubrir qué paquete está consumiendo el valioso espacio SSD. Aparte del caché y el directorio de inicio habituales, para mi sorpresa, descubrí que Snap y Flatpak consumen una cantidad considerable de espacio de almacenamiento.
Tamaño de ajuste: antes de la limpieza
Aunque siempre mantengo una regla: no usar Snap o Flatpak a menos que sea necesario. Esto se debe principalmente al tamaño de su instalación y a otras cuestiones. Prefiero los paquetes vanilla deb y rpm. A lo largo de los años, instalé y eliminé una cierta cantidad de paquetes Snap en este sistema de prueba.
El problema surge después de la desinstalación; Snap mantiene algunos archivos residuales en el sistema, desconocidos para los usuarios generales.
Entonces abrí la carpeta Snap /var/lib/snapd/snaps
y descubrí que Snap realiza un seguimiento de las versiones anteriores de paquetes previamente instalados/desinstalados.
Por ejemplo, en la imagen de abajo, puede ver GNOME 3.28, 3.34 y Wine; todos ellos se eliminaron hace mucho tiempo. Pero todavía están ahí. Esto sucede debido al diseño de Snap, que conserva las versiones de los paquetes desinstalados después de una desinstalación adecuada.
Archivos en el directorio de instantáneas
Alternativamente, puedes obtener lo mismo en la terminal usando:
snap list --all
lista rápida todo
El valor predeterminado es 3 para varias revisiones para retención. Eso significa que Snap conserva tres versiones anteriores de cada paquete, incluida la versión activa. Esto está bien si no tiene limitaciones de espacio en disco.
Pero para los servidores y otros casos de uso, esto puede generar fácilmente problemas de costos y consumir espacio en disco.
Sin embargo, puede modificar fácilmente el recuento utilizando el siguiente comando. El valor puede estar entre 2 y 20.
sudo snap set system refresh.retain=2
Limpiar versiones instantáneas
En una publicación en SuperUser, Popey, ex gerente de ingeniería de Canonical, proporcionó un script simple que puede limpiar versiones antiguas de Snaps y conservar la última.
Aquí está el script que usaremos para limpiar Snap.
#!/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
Guarde el script anterior como .sh en un directorio (por ejemplo clean_snap.sh
), otorgue permiso ejecutable y ejecútelo.
chmod +x clean_snap.sh
Cuando ejecuté el script, redujo mucho espacio en disco. El script también mostraría el nombre del paquete que se está eliminando.
Ejecutando el script
Tamaño de los broches después de la limpieza.
Notas finales
Siempre hay debates sobre cuán eficiente es el diseño de Snap. Muchos dicen que está roto por diseño, inflado y pesado en los sistemas. Parte de ese argumento es cierto, no lo negaría. Todo el concepto de aplicaciones sandboxing es excelente si se implementa y mejora adecuadamente. Creo que Flatpak hace un mejor trabajo en comparación con Snap.
Dicho esto, espero que esto te ayude a limpiar algo de espacio en el disco. Aunque está probado en Ubuntu, debería funcionar en todas las distribuciones de Linux que admitan Snap.
Además, consulte nuestra guía sobre cómo limpiar Ubuntu con pasos adicionales.
Finalmente, si buscas limpiar aplicaciones Flatpak, consulta esta guía.