Como faço para verificar se tenho exatamente o mesmo deb como instalado em um sistema

3

Ao criar pacotes para projetos internos da empresa, às vezes perdemos o controle da origem do pacote e só temos o .deb binário. Pior ainda, o construtor de pacotes pode instalá-lo em um sistema de produção, mas esquecer de descartá-lo no yum e depois sair da empresa. Algum ponto no futuro, precisamos construir um novo servidor e queremos garantir que o .deb que encontramos no diretório pessoal do engenheiro corresponda exatamente ao existente nos servidores existentes. Existe uma maneira de descobrir se o .deb é exatamente o mesmo?

Em sistemas baseados em rpm eu faria o seguinte

old-server$ rpm -qi foo

new-server$ rpm -qi -p foo-1.2.3.rpm

e compare o tamanho, a data de criação, o host de criação e, se eles corresponderem, sei que tenho a rpm exata de que preciso.

Existe uma maneira equivalente de fazer isso em sistemas baseados no dpkg?

Eu vejo que o dpkg-query pode retornar um MD5 de alguns dados, mas a página de manual diz que ele está relacionado ao dselect e não consigo obter nenhum dado dele.

    
por Blair Zajac 01.11.2011 / 19:00

2 respostas

2

Você pode fazer um dpkg -l <packagename> e ver se o pacote está instalado e qual versão é. Isso pode não funcionar se você não tiver algum tipo de guia para números de versão e tal (por exemplo, ao fazer alterações no código e liberar / instalar, você deve aumentar o número da versão)

    
por tgm4883 01.11.2011 / 19:23
2

Eu acho que comparar os arquivos instalados no sistema com os arquivos dentro do pacote deve lhe dar uma boa idéia? Você pode extrair arquivos de um * .deb com dpkg -x <deb-filename> <directory-to-extract-in> e você pode listar todos os arquivos instalados por um pacote instalado com dpkg -L <package-name> .

Quando você tem esta informação, você deve ser capaz de comparar nomes de arquivos, datas de arquivos, checksums, ou o que você quiser ...

    
por JanC 01.11.2011 / 19:49

Tags