Desinstalación de paquetes en sistemas Debian
En sistemas Debian y basados (Ubuntu en mi caso) podemos consultar el estado de los paquetes con el comando dpkg:
# dpkg -l bash*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Nombre Versión Descripción
+++-=================================-=================================-==================================================================================
ii bash 4.1-2ubuntu3 The GNU Bourne Again SHell
un bash-completion <ninguna> (no hay ninguna descripción disponible)
un bash-doc <ninguna> (no hay ninguna descripción disponible)
Podemos ver que al lado de los nombres de los paquetes aparecen un par de letras: "ii" (para paquetes instalados) y "un" (para paquetes desinstalados). Al menos eso era lo que yo creía, pero hoy me he encontrado un paquete con "rc" :S
Pueden aparecer tres letras:
- Primera letra: estado del paquete
- Segunda letra: estado de los ficheros de configuración del paquete
- Tercera letra: errores relativos al paquete
El estado "rc" nos indica que el paquete está eliminado, pero no se han eliminado los ficheros de configuración. Mi sopresa es que con apt-get purge no elimina los ficheros de configuración, ¿por qué? Porque el paquete está desinstalado.
En mi caso ha sido el paquete x11-common.
# dpkg -l x11*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Nombre Versión Descripción
+++-=================================-=================================-==================================================================================
rc x11-common 1:7.5+5ubuntu1 X Window System (X.Org) infrastructure
Lo primero fue tratar de eliminarlo:
# apt-get purge x11-common
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
El paquete x11-common no esta instalado, no se eliminará
0 actualizados, 0 se instalarán, 0 para eliminar y 1 no actualizados.
Tras buscar por ahí, descubrí que hay que hacerlo a través de dpkg:
# dpkg -P x11-common
(Leyendo la base de datos ... 00%
27965 ficheros y directorios instalados actualmente.)
Desinstalando x11-common ...
Purgando ficheros de configuración de x11-common ...
Procesando disparadores para ureadahead ...
Y aquí dejo un pequeño comando para eliminar todos los archivos de configuración de aquellos paquetes desinstalados:
dpkg --purge $(dpkg --list | grep ^rc | awk '{ print $2; }')
Tags
La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.
