
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 -qa
mas 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 rpm
para consultar os pacotes, mas sem rodar a vm: Se você colocar issorpmdbdentro de outro sistema de arquivos falso.
Eu tentei isso, parece que rpm
busca 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 rpm
banco de dados de outra máquina e agora posso consultar seus pacotes.