Como verificar se o aptitude fez alguma coisa?

1

Eu tenho um processo de criação de CI durante o qual eu instalo um pacote debian do meu reprepro local.

Eu tenho um Makefile que chama o aptitude para instalar o pacote de seu próprio repositório como este

sudo aptitude -y install foobar >> aptitude.log 2>&1

Agora pode acontecer que o aptitude tenha conflitos, que não podem ser resolvidos ou o repositório não ofereça uma nova versão para o pacote "foobar". Em ambos os casos, o aptitude não instalaria nada. Mas

echo $?

após a chamada do aptitude no Makefile sempre retorna 0 . Que maneira você propõe para verificar se o aptitude realmente instalou alguma coisa? Grepping para a última linha da saída do aptitude é a única coisa em que consigo pensar se os códigos de saída são sempre 0 .

    
por Preexo 01.11.2013 / 18:18

2 respostas

3

Tente com dpkg-query , que imprime informações sobre o pacote instalado

Exemplo:

dpkg-query -W -f='${Status} ${Version}\n' foobar

resultará

No packages found matching foobar.

Execute dpkg-query --help para mais informações

    
por 01.11.2013 / 19:55
0

Como você deseja verificar se uma instalação (e não uma atualização) foi satisfatória, é possível contar o número de arquivos em /var/lib/dpkg/info antes e depois da execução de aptitude . Isso não é particularmente robusto, no entanto.

    
por 01.11.2013 / 18:50