Eu quero um método de script de shell para testar / relatar se um pacote está instalado. Não preciso de detalhes, apenas retorno booleano para definir o fluxo lógico. Eu olhei para Localizar se um pacote está instalado , mas dpkg
retorna uma saída complexa e seu formato muda dependendo se o pacote está no repositório Debian ou em um PPA do Ubuntu.
Descobri que apt-cache
faz um bom trabalho e criei este método:
is_installed=0
test_installed=( `apt-cache policy package-name | grep "Installed:" ` )
[ ! "${test_installed[1]}" == "(none)" ] && is_installed=1
Alguém conhece uma maneira mais simples ou direta?
dpkg-query -l "$package" | grep -q ^.i
geralmente é suficiente (e mais fácil de lembrar).