O que significam os vários sinalizadores do dpkg como 'ii' 'rc'?

92

Frequentemente, preciso verificar quais pacotes estão instalados e usar o seguinte comando:

dpkg -l | grep foo

que fornece a seguinte saída

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. O que iisignifica isso?
  2. Que outras bandeiras existem?
  3. Como ler as bandeiras? (porque a explicação é bastante complicada, IMO)

Obrigado.

theTuxRacer
fonte

Respostas:

127

Onde encontrar essas informações no sistema

Você pode encontrar essas informações no cabeçalho do dpkg -l output, pois é apenas uma convenção de formatação:

dpkg -l | head -3

Copiado aqui para referência:

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)                    

Descrição de cada campo

Como você pode ver nas três primeiras linhas:

Primeira letra -> estado do pacote desejado ("estado de seleção"):

  • vc ... desconhecido
  • eu ... instalo
  • r ... remover / desinstalar
  • p ... limpar (remover incluindo arquivos de configuração)
  • h ... espera

Segunda letra -> estado atual do pacote:

  • n ... não instalado
  • Eu instalei
  • c ... arquivos de configuração (apenas os arquivos de configuração estão instalados)
  • U ... desembalado
  • F ... semi-configurado (configuração falhou por algum motivo)
  • h ... semi-instalado (a instalação falhou por algum motivo)
  • W ... gatilhos aguardados (o pacote está aguardando um gatilho de outro pacote)
  • t ... gatilhos pendentes (o pacote foi disparado)

Terceira letra -> estado do erro (normalmente você não deve ver uma terceira letra, mas um espaço):

  • R ... reinst-required (pacote quebrado, reinstalação necessária)
htorque
fonte
2
(As barras verticais e as barras na segunda, terceira e quarta linhas do cabeçalho são "setas" apontando para a primeira, segunda e terceira colunas, para ajudá-lo a decifrar o que o htorque explicou em maior profundidade.)
Ubuntourist
1
onde posso ler esta lista? Eu tentei man dpkg, mas não estava lá.
Fabrizio Regini
1
@FabrizioRegini Tente novamente, está no topo da página do manual do dpkg (seção "INFORMAÇÕES SOBRE PACOTES"). :)
htorque
Onde na página do manual do dpkg mostra o significado de 'ii', 'if' e assim por diante?
Pmatulis
1
@FabrizioRegini Run man dpkg-query.
Jarno
27

A primeira letra exibe qual é o status esperado do pacote.
A segunda letra exibe qual é o status atual do pacote.

Então, por exemplo:

iisignifica 'Ele deve ser instalado e está instalado', enquanto
rcsignifica 'Ele foi removido / desinstalado, mas seus arquivos de configuração ainda estão lá'

Pavlos G.
fonte
1
Portanto, é seguro excluir os arquivos de configuração do kernel com a tag rc?
Mars Lee
10

Como meu representante é baixo, não posso comentar para responder às perguntas que as pessoas têm sobre onde obter essas informações. Depois de revisar o código fonte do dpkg e do código main.c dos programas relacionados, encontrei o que estava procurando.

As informações para a leitura de -l | - a saída da lista está em

man dpkg-query

e não em

man dpkg

O dpkg está apenas atuando como front-end nesses casos

Curtis M
fonte
1
  1. Isso significa que o pacote deve ser instalado e que o pacote está instalado.

  2. Vejo man dpkg-query

  3. Letras maiúsculas mostradas nas alternativas após sinal de igual nas três primeiras linhas da legenda são as letras possivelmente mostradas como os três primeiros caracteres no primeiro campo, respectivamente, mas não todas no mesmo caso, ou seja, algumas das letras são mostrados em minúsculas. O terceiro caractere é o espaço normalmente.

jarno
fonte