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.