Como posso verificar se um pacote está instalado no meu servidor?

115

Eu instalei recentemente o Ubuntu Server edition 13.10 (Saucy Salamander). Mas eu me deparei com um pouco de problema.

No final da instalação, ele solicita vários pacotes extras, quer você queira ou não, como o servidor OpenSSH e o host da máquina virtual. Veja o que estou vendo:

Agora, meu problema é que não consigo lembrar se marquei a caixa de seleção "host da máquina virtual". Como faço para verificar se meu servidor tem os pacotes correspondentes?

Quais pacotes vêm com o host da máquina virtual?

    
por D.Zou 19.02.2014 / 22:12

6 respostas

158

Para listar todos os pacotes instalados

Aqui, "less" é um leitor de texto simples usado para percorrer a lista de pacotes em um novo buffer que é aberto na janela do terminal existente. A lista não será misturada com outros comandos de terminal e saída. Pressione 'q' para retornar ao prompt do terminal. Veja "man less" para mais informações.

dpkg -l | less

Para verificar se um pacote está instalado ou não:

dpkg -l {package_name}
dpkg -l vlc

Para verificar se o pacote está instalado ou não (por exemplo, vlc ). Se instalado, inicie o pacote:

dpkg -l | grep vlc

Mostre o local onde o pacote está instalado. O "-S" (capital S) significa "pesquisa"

sudo dpkg -S {package_name}
sudo dpkg -S skype

Para usar o Grep para pesquisar:

dpkg -l | grep {keywords}
dpkg -l | grep pdf
    
por Lonston 20.02.2014 / 10:12
22

Use dpkg

Este comando é o gerenciador de pacotes do Debian.

Você pode listar todos os pacotes instalados com

dpkg -l

Você pode ver detalhes de um pacote específico com

dpkg -p packagename

E para saber se está instalado, use

dpkg -s packagename | grep Status

Você pode saber qual pacote contém o software desejado com

apt-cache search name*  

No seu caso, você deve usar este comando para pesquisar o nome do pacote que deseja

apt-cache search virtual machine host 
    
por onurbekiroglu 20.02.2014 / 10:10
16

apt -qq list PACKAGE também pode ser usado para verificar se o PACOTE está instalado.

Se instalado, imprimirá algo como (com [installed] no final da linha):

$ apt -qq list awscli
awscli/stable,now 1.4.2-1 all [installed]

Se não instalado, a saída será:

$ apt -qq list awscli
awscli/stable 1.4.2-1 all
    
por Viktor Benei 11.09.2016 / 15:54
11

Eu encontrei uma maneira de verificar a instalação do pacote com apenas o comando dpkg-query e sem pipes.

Eu procurei por essa solução enquanto escrevia uma tarefa para um ansioso manual de jogo.

Então, você pode fazer algo assim:

/usr/bin/dpkg-query --show --showformat='${db:Status-Status}\n' '<your package name>'

Esta é apenas uma outra maneira de fazer a coisa.

    
por DenKoren 01.09.2015 / 21:47
2

Use tasksel ( sudo apt-get install tasksel se você ainda não tiver) e execute tasksel --list-tasks .

tasksel imprimirá uma lista das tarefas, e haverá um i ao lado de cada tarefa instalada e um u ao lado de cada tarefa que não estiver instalada.

Se você deseja instalar a tarefa, use tasksel install <task> . O nome da tarefa que você está procurando é virt-host .

Os itens de seleção de software são chamados de "tarefas".

    
por Blake R 19.02.2014 / 22:31
1

Estou escrevendo uma nova resposta, pois os 'Nomes das tarefas' do Tasksel NÃO aparecem em dpkg ou apt consultas. Significando que as outras respostas estão incompletas (ou erradas).

"Não me lembro Se marquei a caixa de seleção 'host da máquina virtual'. Como posso verificar se o meu servidor tem os pacotes correspondentes?"

Primeiro, verifique se há um asterisco com o nome depois de executar novamente sudo tasksel (ou um ' i ' se estiver executando tasksel --list-tasks ). Se você não vir isto, então provavelmente você não terá o meta-pacote tasksel instalado em primeiro lugar.

Com isso dito, se você ainda quiser descobrir o que está instalado no meta-pacote tasksel do Host de Máquina Virtual:

tasksel --list-tasks

(no seu caso tasksel --list-tasks | grep virt é suficiente)

Isto dá a tarefa apropriada nome e uma indicação se está instalado. No seu caso, esse nome de tarefa é 'virt-host'.

"Quais pacotes vêm com o host da máquina virtual?"

A partir do último comando, encontre o nome da tarefa tasksel. Isso é necessário para o próximo comando.
No seu caso:

tasksel --task-packages virt-host

Isso listará os pacotes individuais que compõem o pacote de tarefas tasksel determinado. Isso deve listar um meta-pacote (denotado por '^' no final do nome). Depois de encontrar o nome de meta adequado, você pode usar o apt:

 apt show virt-host^ | grep "Package:"

(ou apt-cache show ... if apt show não funciona.)

(Mostra todos os pacotes que compõem o meta pacote).

Então:

 dpkg -l {each individual pkg name listed above}

Isso lhe dirá se o pacote individual está instalado / desinstalado (anotado pela segunda letra: 'i' significa que o status está instalado). Faça isso para todos os pacotes listados no pacote task / meta.

Isso deve responder às perguntas originais.

Nota: o /usr/share/tasksel/descs/ubuntu-tasks.desc também contém descrições dos meta-pacotes do Tasksel. Se você: grep "virt" /usr/share/tasksel/descs/ubuntu-tasks.desc mostrará o nome correto do meta-pacote do APT. (No seu caso, isso é ubuntu-virt-server ). Você também pode usar os comandos apt com este meta-nome.

Se você está querendo remover pacotes tasksel, isso entra um pouco nas ervas daninhas. Por favor, consulte link ou qualquer número de outras respostas por aí.

A página da Comunidade Tasksel também pode ser útil. Por favor, note que os pacotes meta apt não correspondem aos nomes dos pacotes de tarefas.

    
por bshea 19.10.2016 / 17:17