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
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
.
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.