¿Qué significan las diversas banderas dpkg como 'ii' 'rc'?


92

Frecuentemente necesito verificar qué paquetes están instalados y utilizo el siguiente comando:

dpkg -l | grep foo

que da el siguiente resultado

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                       <version>         <description>
  1. ¿Qué significa iieso?
  2. ¿Qué otras banderas hay?
  3. ¿Cómo leer las banderas? (porque la explicación es bastante complicada, OMI)

Gracias.

Respuestas:


127

Dónde encontrar esta información en el sistema

Puede encontrar esta información en el encabezado de salida 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 puede ver en las primeras tres líneas:

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

  • tu ... desconocido
  • yo ... instalo
  • r ... eliminar / desinstalar
  • p ... purga (eliminar incluyendo 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 ... activadores esperados (el paquete está esperando un activador de otro paquete)
  • t ... triggers-pendiente (el paquete se ha activado)

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

  • R ... reinst-required (paquete roto, se requiere reinstalación)

2
(Las barras y barras verticales en la segunda, tercera y cuarta línea del encabezado son "flechas" que apuntan a la primera, segunda y tercera columna, para ayudarlo a descifrar lo que htorque ha explicado en mayor profundidad).
Ubuntourist

1
¿Dónde puedo leer esta lista? Intenté man dpkg pero no estaba allí.
Fabrizio Regini

1
@FabrizioRegini Inténtalo de nuevo, está justo en la parte superior de la página de manual de dpkg (sección "INFORMACIÓN SOBRE LOS PAQUETES"). :)
htorque

¿En qué parte de la página de manual de dpkg muestra el significado de 'ii', 'if', etc.?
pmatulis

2
@FabrizioRegini Run man dpkg-query.
jarno

27

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:

iisignifica 'Debería estar instalado y está instalado' mientras que
rcsignifica 'Se ha eliminado / desinstalado pero sus archivos de configuración todavía están allí'


1
Entonces, ¿es seguro eliminar los archivos de configuración del núcleo con la etiqueta rc?
Mars Lee

10

Debido a que mi reputación es baja, no puedo comentar para responder las preguntas que las personas tienen 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 programas relacionados, encontré lo que estaba buscando.

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

man dpkg-query

y no en

man dpkg

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


1
  1. Significa que se desea instalar el paquete y que 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 posiblemente se muestran como los primeros tres caracteres en el primer campo, respectivamente, pero no todos en el mismo caso, es decir, algunas de las letras se muestran en minúsculas. El tercer personaje es el espacio normalmente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.