¿Qué significan las distintas banderas dpkg como ‘ii’ ‘rc’?

Con frecuencia necesito verificar qué paquetes están instalados, y uso el siguiente comando:

dpkg -l | grep foo

lo que da la siguiente salida

 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) ||/ Name Version Description ii foo   
  1. ¿Qué significa el ii ?
  2. ¿Qué otras banderas hay?
  3. ¿Cómo leer las banderas? (porque la explicación es bastante complicada, OMI)

Gracias.

Dónde encontrar esta información en el sistema.

Puede encontrar esta información en el encabezado de la salida de dpkg -l, ya que es solo una convención de formato:

 dpkg -l | head -3 

Copiado aquí para referencia:

 Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) 

Descripción de cada campo

Como se puede ver en las tres primeras líneas:

Primera letra -> estado del paquete deseado (“estado de selección”):

  • tu … desconocido
  • yo … instalo
  • r … eliminar / desinstalar
  • p … purgar (eliminar incluidos los archivos de configuración)
  • h … espera

Segunda letra -> estado actual del paquete:

  • n … no instalado
  • lo instalé
  • c … archivos de configuración (solo se instalan los archivos de configuración)
  • U … desempaquetado
  • F … medio configurado (la configuración falló por alguna razón)
  • h … medio instalado (la instalación falló por alguna razón)
  • W … desencadenadores esperados (el paquete está esperando un desencadenante de otro paquete)
  • t … triggers-pending (el paquete ha sido activado)

Tercera letra -> estado de error (normalmente no debería ver una tercera letra, sino un espacio):

  • R … se requiere reinstalar (paquete roto, reinstalación requerida)

La primera letra muestra cuál es el estado esperado del paquete.
La segunda letra muestra cuál es el estado actual del paquete.

Así por ejemplo:

ii significa ‘Se debe instalar y se instala’ mientras que
rc significa ‘Se eliminó / desinstaló pero los archivos de configuración aún están ahí’

Debido a que mi reputación es baja, no puedo comentar para responder las preguntas que tienen las personas sobre dónde obtener esta información. Después de revisar el código fuente de dpkg y el código main.c de los progtwigs relacionados, encontré lo que estaba buscando.

La información para leer el -l | – la salida de la lista está en

 man dpkg-query 

y no en

 man dpkg 

dpkg está actuando simplemente como el front-end en estos casos

  1. Significa que el paquete se desea instalar y que el paquete está instalado.

  2. Ver man dpkg-query

  3. Las letras mayúsculas que se muestran en las alternativas después del signo igual en las tres primeras líneas de la leyenda son las letras que se muestran como los tres primeros caracteres en el primer campo, respectivamente, pero no todas en el mismo caso, es decir, algunas de las letras se muestran en minúsculas. El tercer personaje es el espacio normalmente.