Purgando todos los ficheros de configuración "huérfanos" de nuestro sistema con un solo comando
A menos que pongamos algo de cuidado, en todo sistema Debian GNU/Linux se van acumulando restos de paquetes eliminados. Esto se debe a que cuando "desinstalamos" un paquete (con aptitude remove o apt-get remove por ejemplo) no se borran ni sus archivos de configuración ni sus datos asociados, ni tampoco los de los paquetes que dependen de él y se eliminan automáticamente al mismo tiempo. A la larga es inevitable tener desperdigados por el sistema archivos que probablemente no volveremos a utilizar (restos de antiguos escritorios, librerías o la configuración de programas que sólo probamos un día o hemos sustituido por otros y ya no usamos).
Para eliminar tanto un paquete como sus archivos de configuracion hay que "purgarlo", un proceso sencillo, pero que puede convertirse en un trabajo tedioso y repetitivo si ha pasado algún tiempo desde que instalamos el sistema base ya que hay que hacerlo paquete a paquete. Además hay que asegurarse de no tocar la configuración de los paquetes instalados.
Podemos simplificar notablemente la tarea usando redirección y algo de maña. El siguiente comando localiza por nosotros y elimina en un sólo paso todos estos restos ahorrándonos un tiempo considerable. También creará un archivo de texto llamado paquetes_purgados que nos indica qué se ha limpiado y podemos borrar sin problemas cuando queramos. Si no encuentra ningún paquete apto se escribirá un mensaje de error.
- Notas:
- Atención, este comando BORRA inmediatamente y sin preguntar los ficheros de configuración de TODOS los paquetes que hayan sido desinstalados previamente. Si no se desea ésto, puede separarse en dos pasos cortando el comando a la altura de && y editando el archivo paquetes_purgados antes de lanzar lo que queda a la derecha de &&
- Uso con Bases de datos. Al limpiar un paquete como mysql tenemos que tener en cuenta que podemos querer conservar las bases de datos creadas con dicho paquete aunque se trate de una versión antigua que ya no utilicemos. En mysql al menos nos aparecerá un cuadro de diálogo donde podemos elegir entre conservar esas bases de datos (por defecto) o borrarlas, pero por precaución hay que hacer copias actualizadas de cualquier base de datos que tengamos y moverlas a un lugar seguro antes de usar el comando.
# dpkg-query -W -f='${Package} ${Status}\n'|gawk -v ORS=' ' 'BEGIN {print "dpkg --purge"} /deinstal/ {print $1}' > paquetes_purgados && $0 < paquetes_purgados || echo 'No queda nada por limpiar'
Lo he ejecutado por partes , el fichero paquetes_purgados me lo crea perfectamente , pero la segunda parte me da error
bash command not foundEdito: Es necesario ser root y para ello es necesario escribir bien la contraseña, la habia escrito mal y pensaba que era root y no lo era. Funciona bien, el error es con un usuario normal y debido a que escribi mal.
Más fácil todavía:
Instalamos deborphan
#aptitude install deborphanY ahora utilizamos dpkg, deborphan y el poder del lenguaje de bash para en una sencilla línea purgar todos los paquetes huérfanos de nuestra instalación
#dpkg --purge $(deborphan)Et voilá!
No hacen lo mismo, tu comando elimina más cosas, pero desde luego es otra manera de enfocarlo. Para que fueran iguales tendría que escribirse como:
dpkg --purge $(deborphan --find-config)
Ok, pensaba que tu propuesta también borraba los paquetes "huérfanos", no solamente las configuraciones.
Gracias por la puntualización.
Gracias pvaldes
Aplicar este comando me ha alivianado demasiado mi máquina que ya empezaba a arrastrar un poquito ahora es supersónica
saludos
Gracias pvaldes
Aplicar este comando me ha alivianado demasiado mi máquina que ya empezaba a arrastrar un poquito ahora es supersónica
saludos
Con tu permiso lo copio y me lo guardo
pvaldes, gracias, me quitó 1 mega de basura :)