Como posso verificar se um pacote está instalado (sem privilégios de superusuário)?

54

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?

    
por Peter Smit 23.08.2010 / 15:33

6 respostas

53
apt-cache policy <package name>
    
por Oli 23.08.2010 / 15:37
18

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.

    
por Rick 23.08.2010 / 15:49
7

Mais uma variante, usando o aptitude desta vez:

aptitude show <package>

A conclusão de tabulação também funciona aqui.

    
por Alexey Nedilko 24.08.2010 / 02:24
5

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
    
por Abhinav 23.08.2010 / 15:35
4

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.

    
por jarno 24.12.2013 / 18:16
0

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

    
por Lahmizzar 11.11.2015 / 00:08