Seamos honestos: apt autoremove deja rastro. Te enseño a instalar deborphan en Ubuntu, usar purge vs remove apt y liberar inodos linux. ¡Limpia tu PC ya!

Seamos honestos: por muy robusto que sea el sistema de gestión de paquetes de Debian o Ubuntu, con el tiempo el sistema operativo acumula "polvo digital". Esta obsesión por la eficiencia y el rendimiento no es nueva para mí; comenzó mucho antes de mi carrera profesional, cuando pasaba horas experimentando con kernels de tiempo real intentando extraer unos MHz extra a mi CPU sin hacer overclocking—una anécdota técnica que, curiosamente, fue clave para conseguir mi puesto desarrollando la distribución Canaima GNU/Linux. Esa misma mentalidad de optimización es la que hace que me moleste ver cómo el espacio en disco se consume por librerías olvidadas tras una actualización o archivos de configuración de programas que borré hace meses. Si eres de los que piensa que apt autoremove es suficiente, te tengo noticias: estás dejando basura atrás.

Hoy quiero compartir contigo una técnica un poco más agresiva —pero controlada— para realizar una limpieza profunda de tu sistema. No se trata solo de liberar unos cuantos megabytes, se trata de mantener la higiene y estabilidad de tu entorno de trabajo. Vamos a ver cómo usar deborphan y aptitude para dejar tu sistema como recién instalado.

1. ¿Por qué apt autoremove no es suficiente?

Es vital que entiendas esto antes de ejecutar cualquier comando. Muchos desarrolladores confían ciegamente en apt autoremove. El problema es que esta herramienta se basa en el historial de instalación. Elimina paquetes que se instalaron automáticamente como dependencia de otro y que ya no se necesitan. Pero, ¿qué pasa si el sistema de paquetes perdió el rastro o si una librería quedó "colgando" tras una compilación manual?

Aquí es donde entra deborphan. A diferencia de apt, deborphan no mira el pasado; analiza el presente. Escanea tus librerías instaladas (libs y oldlibs) y verifica si algún paquete en tu sistema depende de ellas ahora mismo. Si la respuesta es no, es un paquete huérfano.

Para entender a fondo la teoría detrás de la gestión de paquetes, siempre recomiendo tener a mano el Manual de Referencia de Debian, es la biblia para evitar errores conceptuales.

2. Instalación y uso básico de deborphan

Primero, necesitas la herramienta. No viene instalada por defecto en muchas distribuciones minimalistas, así que instálala:

sudo apt update && sudo apt install deborphan

Antes de empezar a borrar cosas a lo loco, ejecuta el comando sin argumentos. Esto te mostrará una lista de lo que él considera "borrable".

Correcto: Verificar antes de actuar.

deborphan
# Salida: libbiblioteca-vieja-v1

Incorrecto: Asumir que todo lo que lista es basura. Si tienes software compilado manualmente (fuera de apt, por ejemplo en /usr/local/bin), deborphan no sabrá que ese binario necesita esa librería. Si la borras, tu software compilado dejará de funcionar. Revisa la lista con cuidado. Puedes consultar la página de manual de deborphan para ver todas las opciones de filtrado.

3. El "One-Liner" definitivo de limpieza

Aquí es donde integramos la potencia de aptitude con la detección de deborphan. El comando que te voy a mostrar es una bomba de limpieza. Úsalo con responsabilidad.

Este comando combina la purga de paquetes huérfanos con la limpieza de configuraciones residuales. Analicémoslo por partes:

aptitude purge $(deborphan --all-packages --force-hold --nice-mode --find-config --libdevel --guess-all --no-show-section) $(aptitude search ~c ~g -F %p)

Desglosando la magia:

  • aptitude purge: Usamos purge y no remove porque queremos borrar también los archivos de configuración.
  • --guess-all: Le dice a deborphan que intente adivinar dependencias más allá de las librerías comunes. Ojo: Esto es agresivo.
  • --find-config: Busca paquetes que ya fueron eliminados pero dejaron configuraciones.
  • aptitude search ~c ~g: Busca paquetes en estado "config-files" (residuales) para añadirlos a la lista de purga.

Si te interesa profundizar en cómo inspeccionar qué archivos pertenecen a qué paquete antes de borrarlos, te sugiero leer mi artículo sobre cómo buscar archivos en la base de datos de paquetes con apt-file. Es muy útil para auditorías.

4. Limpieza recursiva: El ciclo while

A veces, al borrar una librería huérfana "A", la librería "B" (que dependía solo de "A") se convierte en huérfana también. Una sola pasada no siempre limpia todo el árbol de dependencias inútiles.

Para los fanáticos de la automatización y el DevOps, este script es oro puro. Ejecuta la limpieza en bucle hasta que no quede nada:

# Limpieza recursiva hasta que deborphan no devuelva nada
while [ -n "$(deborphan)" ]; do
    sudo apt-get purge -y $(deborphan)
done

Este enfoque de reducir el sistema a lo esencial es muy similar a la mentalidad que aplicamos al optimizar Dockerfiles con multi-stage builds: elimina todo lo que no sea estrictamente necesario para la ejecución.

5. Eliminando configuraciones residuales (Estado RC)

Finalmente, hablemos de esos molestos paquetes en estado rc (Removed, Config-files). Son los fantasmas de programas pasados. Si no tienes deborphan a mano o prefieres usar herramientas estándar, puedes usar este truco con dpkg y awk:

Correcto: Filtrar y purgar en una línea.

dpkg -l | grep "^rc" | awk '{print $2}' | sudo xargs apt-get -y purge

¿Qué pasa si borras algo por error? No entres en pánico. Linux no tiene "Papelera de Reciclaje" para paquetes, pero tiene logs. Revisa /var/log/apt/history.log, encuentra qué se borró y reinstálalo con apt install.

Mantener el sistema limpio no es solo "orden", es reducir la superficie de ataque y facilitar las actualizaciones futuras. ¡Haz la prueba y dime cuánto espacio recuperaste!


Otros proyectos en mi perfil de GitHub.