Desinstalación de paquetes en sistemas Debian

written by uve 29 August 2010

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é.