Indice de la serie
Introducción
En está segunda parte de lo que ya se está convirtiendo en una seríe de posts, se discutirán algunas estrategias avanzadas para recuperar espacio en disco.
Mi profesión es de programación, asi que muchas de las estrategias borran o reducen el uso de herramientas especificas. Para ver algunas cosas mas utiles tal vez te venga mejor mirar antes el post anterior.
Danger
Los comandos utilizados en este post son destructivos y en muchos casos no se pueden deshacer. Se aconseja leer con cuidado, no copiar y pegar, y aprender sobre cada comando comentado antes de ejecutarlo.
Controlar el espacio en disco disponible
Siempre es bueno arrancar sabiendo cuanto espacio en disco tenemos para saber cuanto liberamos con los diferentes comandos:
df -h
Darle bola principalmente a la partición /
y en caso de aparecer, a /var
y /usr
.
Paquetes o programas de gran tamaño en APT
A veces perdemos la referencia de programas instalados pero que no estamos usando.
Con el gestor de paquetes APT manejando dependecias, podemos tener mucho software que no recordamos instalar o directamente nunca instalamos explicitamente. Si queremos hacer un listado de los paquetes por tamaño que ocupan, podemos ejecutar:
dpkg-query --show --showformat='${Package;-50}\t${Installed-Size}\n' | sort -k 2 -n | grep -v deinstall | awk '{printf "%.3f MB \t %s\n", $2/(1024), $1}' | less
Obtendremos una salida como la siguiente
286,543 MB libcusparse-dev-12-3 329,808 MB typora 336,514 MB linux-modules-extra-5.15.0-116-generic 336,517 MB linux-modules-extra-5.15.0-117-generic 336,524 MB linux-modules-extra-5.15.0-118-generic 336,524 MB linux-modules-extra-5.15.0-119-generic 336,592 MB linux-modules-extra-5.15.0-121-generic 336,593 MB linux-modules-extra-5.15.0-122-generic 336,594 MB linux-modules-extra-5.15.0-124-generic 336,652 MB linux-modules-extra-5.15.0-125-generic 354,313 MB google-chrome-stable 380,522 MB libcufft-dev-12-3 429,920 MB linux-modules-extra-6.5.0-44-generic 433,652 MB linux-modules-extra-6.5.0-41-generic 449,160 MB linux-modules-extra-6.8.0-40-generic 449,413 MB linux-modules-extra-6.8.0-47-generic 449,449 MB linux-modules-extra-6.8.0-45-generic 485,409 MB linux-firmware 584,258 MB rstudio 596,854 MB libcublas-12-3 705,180 MB zoom 907,500 MB libcublas-dev-12-3 1497,791 MB nsight-compute-2023.3.1
Aquí solo resta decidir que paquetes no deseo tener y quiero desinstalar.
Danger
Nunca elimines un paquete que comience con linux-
sin saber lo que estas haciendo.
Se recomienda hacer el siguiente paso con aplicativos de uso comun o hayas instalado
vos mismo.
Un ejemplo basado en la linea de arriba puede ser el siguiente
sudo apt purge typora zoom rstudio
Luego de cada borrado, puede ser util ejecutar
sudo apt autoremove
Este último comando libera dependencias huerfanas del paso anterior.
Docker
Docker es una gran herramienta, tanto para deploy profesional como para tener software corriendo en nuestro equipo con poca configuración. Sin embargo, el costo de ejecutarlo sigue siendo alto.
Existen 4 elementos de Docker con los que podemos toparnos que consumen mucho espacio en disco:
- Contenedores
- Imagenes
- Volumenes locales
- Cache de construcción
Por suerte tenemos un comando que nos deja ver como estamos en este asunto
docker system df
La salida del comando en cuestión es similar a la siguiente
TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 0 0 0B 0B Containers 0 0 0B 0B Local Volumes 0 0 0B 0B Build Cache 91 0 2.361GB 2.361GB
Obviamente las columnas SIZE
y RECLAIMABLE
son las relevantes. La última es
el espacio en disco que es posible conseguir sin destruir nada que estemos utilizando.
En el caso de la columna SIZE
hay que tener mas cuidado, ya que puede haber cosas
en uso cuyo espacio ocupado sean necesarias para que funcione.
El comando que hace la magia es system prune
docker system prune
Dicho comando solo eliminará componentes que de algúna forma segura se determinen que ya no se utilizan. Como siempre, cuidado de no eliminar nada importante.
Es importante notar que prune es una acción en muchos de los subcomandos de docker,
ademas de contar con rm
. En dichos casos, siempre es aconsejable primero estudiar
que tenemos disponible:
docker container ls -a docker volume ls
En todo caso borrar individualmente cosas que sepamos que no se están utilizando
via docker <subcomadno> rm <HASH_DEL_COMPONENTE>
.
Caché de Snap
Snap nunca nos dejará en paz. Si en el primer post habiamos visto que los instaladores iban dejando replicas viejas instaladas y desactivadas, vaya a saber uno para que, investigando un poco mas podemos encontrar que cada app tiene su caché, que muy lindo y util, pero si estamos desesperados por espacio, puede venir bien reclamarlo y que las apps lo vayan consumiendo lentamente.
Danger
Como ya se dijo, cuidado. En este caso, borrar el contenido de este directorio
no puede ocasionar ningun daño, pero si se copia mal la ruta, el principio del
comando es rm -rf
que puede ser muy destructivo. No copiar y pegar, POR FAVOR.
sudo sh -c 'rm -rf /var/lib/snapd/cache/*'
En un sistema instalado nuevo no tiene demasiado sentido, pero si la instalación tiene varios años, capaz les sirve.
Como la vez anterior, espero que algo de esto les sirva.