apt-cache policy <package name>
Em nossa universidade, podemos obter praticamente qualquer pacote do Ubuntu que desejamos, mas não somos superusuários (precisamos solicitar pacotes sendo instalados).
Com algumas bibliotecas, nem sempre é fácil saber se o pacote já está instalado ou não. Existe uma maneira simples / comando para verificar isso?
apt-cache policy <package name>
Eu sempre uso isso apenas na linha de comando:
dpkg -l | grep mysql
então o acima pergunta ao dpkg para listar todos os pacotes instalados e depois eu grep apenas para aqueles que possuem o mysql no nome.
Mais uma variante, usando o aptitude desta vez:
aptitude show <package>
A conclusão de tabulação também funciona aqui.
Você pode usar o dselect. Ele fornece acesso não somente leitura.
Além disso, o dpkg -s fornece muitos detalhes relacionados a um pacote. Por exemplo "
userme:~$ dpkg-query -s sl
Package: sl
Status: unknown ok not-installed
Priority: optional
Section: games
Você pode usar dpkg-query -s <package> 2>/dev/null | grep -q ^"Status: install ok installed"$
em scripts, pois ele retorna o código de saída 1, se o <package>
não estiver instalado e 0 se o <package>
estiver instalado.
Exemplo para usar um valor específico como var em scripts de shell (por exemplo, test.sh
)
#!/bin/sh
PACKAGETOLOOKFOR=""
INSTALLED=$(dpkg -l | grep ${PACKAGETOLOOKFOR} >/dev/null && echo "yes" || echo "no")
echo " is installed ... ${INSTALLED}"
Torne-o executável e comece com:
test.sh openssh-server
Ou faça o que quiser em seus scripts
Tags package-management