Onde o “dpkg -l” * “” reúne suas informações?

4

Pelo que entendi, dpkg -l "*" sob o Debian lista todos os pacotes disponíveis, independentemente de seu estado. De onde vem esta informação? Eu entendo que /var/lib/dpkg/available lista todos os pacotes instalados (estado ii ), mas onde o dpkg obtém informações sobre todos os outros pacotes?

    
por Martin 03.05.2015 / 23:51

1 resposta

4

A maneira como eu verifico essas coisas é executando o utilitário sob o controle de strace , por exemplo:

$ strace -o /tmp/dpkg-strace.out dpkg -l '*'

strace rastreia todo o uso de chamadas do sistema, por isso é fácil ver quais arquivos são acessados. grep o arquivo de saída para open system calls e, com alguma experiência, você pode ver rapidamente que, neste caso, a linha de strace relevante é:

open("/var/lib/dpkg/status", O_RDONLY)  = 3

Por isso, /var/lib/dpkg/status é o arquivo dpkg obtém suas informações. É basicamente um arquivo de texto simples (formatado de alguma forma de acordo com a RFC2822), então você pode olhar para ele com less ou similar.

    
por 04.05.2015 / 09:36

Tags