Por que 'dpkg -S / var / lib / dpkg' mostra “base-files, dpkg”?

2

Estou curioso para saber qual pacote fornece o diretório /var/lib/dpkg , então eu executo este comando

$ dpkg -S /var/lib/dpkg
base-files, dpkg: /var/lib/dpkg

A saída resultante exibe o pacote que fornece /var/lib/dpkg juntamente com base-files , como acima.

$ dpkg -S /var/lib/aptitude
aptitude: /var/lib/aptitude
$ dpkg -S /var/lib/apt
apt: /var/lib/apt

Mas não vi nenhuma string base-files na saída acima. É claro que os arquivos dentro do diretório /var/lib/apt também são essenciais para que um sistema Ubuntu seja executado.

Então porque o comando dpkg -S /var/lib/dpkg mostra "base-files," string? Por que não é exibido nos outros?

    
por Avinash Raj 16.04.2014 / 05:08

1 resposta

2

Você está procurando um diretório, não um arquivo / binário específico, portanto qualquer pacote pode instalar arquivos dentro de um diretório:

➜  ~  dpkg -L dpkg | grep '/var/lib/dpkg'
/var/lib/dpkg
/var/lib/dpkg/info
/var/lib/dpkg/updates
/var/lib/dpkg/parts
/var/lib/dpkg/alternatives
➜  ~  dpkg -L base-files | grep '/var/lib/dpkg'
/var/lib/dpkg
➜  ~  

Como você pode ver, base-files também cria o diretório /var/lib/dpkg (razão pela qual, eu o ignoro, talvez alguns arquivos tenham sido excluídos, mas o changelog não dá nenhuma dica óbvia) e o pacote dpkg que além de ser o dono do diretório /var/lib/dpkg , instalou arquivos dentro dele.

    
por Braiam 16.04.2014 / 06:01