Como posso obter uma lista de pacotes centos instalados lendo apenas o sistema de arquivos?

Como posso obter uma lista de pacotes centos instalados lendo apenas o sistema de arquivos?

Estou escrevendo uma ferramenta para analisar imagens e ter acesso total ao sistema de arquivos de uma imagem.

Quero produzir uma lista de todos os pacotes instalados com informações de nome e versão. No entanto, não quero realmente executar a VM porque não confio nela.

Estou ciente de comandos como, rpm -qamas não tenho certeza de nenhuma maneira de obter os dados apenas lendo arquivos (que deve ser o que o comando rpm está fazendo).

Qualquer ajuda é muito bem vinda!

Responder1

você pode extrair o rpmdb do seu sistema de arquivos: todos os arquivos em /var/lib/rpm/.

Então você ainda poderia usar rpmpara consultar os pacotes, mas sem rodar a vm: Se você colocar issorpmdbdentro de outro sistema de arquivos falso.

Eu tentei isso, parece que rpmbusca por padrão seu banco de dados em /usr/lib/sysimage/rpm, então fiz o seguinte:

mkdir -p /tmp/fakeroot/usr/lib/sysimage/rpm/
scp other-machine:/var/lib/rpm/* /tmp/fakeroot/usr/lib/sysimage/rpm/
rpm --root /tmp/fakeroot -qa

como você pode ver, copiei o rpmbanco de dados de outra máquina e agora posso consultar seus pacotes.

informação relacionada