web-dev-qa-db-fra.com

Comment vérifier si un paquet est installé sur mon serveur?

J'ai récemment installé Ubuntu Server edition 13.10 (Saucy Salamander). Mais j'ai rencontré un petit problème.

À la fin de l'installation, il vous demande si vous le souhaitez ou non plusieurs packages supplémentaires, tels que le serveur OpenSSH et l'hôte de la machine virtuelle. Voici ce que je regarde:

Enter image description here

Maintenant, mon problème est que je ne me souviens pas si j'ai coché la case "Hôte de la machine virtuelle". Comment vérifier si mon serveur dispose des packages correspondants?

Quels packages sont fournis avec l'hôte de la machine virtuelle?

159
D.Zou

Souhaitez-vous connaître toutes les commandes dpkg avec options? Ayez une lecture du lien ci-dessous.

15 commandes dpkg pour gérer les serveurs Linux basés sur Debian

Pour lister tous les packages installés

Ici "less" est un simple lecteur de texte utilisé pour faire défiler la liste des paquets dans un nouveau tampon qui s'ouvre dans la fenêtre de terminal existante. La liste ne sera pas mélangée avec d'autres commandes et sorties du terminal. Appuyez sur 'q' pour revenir à l'invite du terminal. Voir "homme moins" pour plus d'informations.

dpkg -l | less

Pour vérifier si un paquet est installé ou non:

dpkg -l {package_name}
dpkg -l vlc

Pour vérifier si le package est installé ou non (par exemple, vlc). Si installé, lancez le package:

dpkg -l | grep vlc

Affiche l'emplacement où le paquet est installé. Le "-S" (S majuscule) signifie "recherche"

Sudo dpkg -S {package_name}
Sudo dpkg -S skype

Pour utiliser Grep pour rechercher:

dpkg -l | grep {keywords}
dpkg -l | grep pdf
219
Babin Lonston

Utilisez dpkg

Cette commande est le gestionnaire de paquets Debian.

Vous pouvez lister tous les paquets installés avec

dpkg -l

Vous pouvez voir les détails d'un paquet spécifique avec

dpkg -p packagename

Et pour savoir s’il est installé, utilisez

dpkg -s packagename | grep Status

Vous pouvez apprendre quel paquet contient le logiciel que vous voulez avec

apt-cache search name*  

Dans votre cas, vous devriez utiliser cette commande pour rechercher le nom du paquet que vous voulez

apt-cache search virtual machine Host 
31
onurbekiroglu

apt -qq list PACKAGE peut également être utilisé pour vérifier si le PACKAGE est installé.

S'il est installé, il affichera quelque chose comme (avec [installed] en fin de ligne):

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

Si non installé, le résultat sera:

$ apt -qq list awscli
awscli/stable 1.4.2-1 all
27
Viktor Benei

J'ai trouvé un moyen de vérifier l'installation du paquet avec juste la commande dpkg-query et pas de pipe.

J'ai cherché une telle solution en écrivant une tâche pour un livre de jeu.

Donc, vous pouvez faire quelque chose comme ça:

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

Ceci est juste une autre façon de faire la chose.

14
DenKoren

J'écris une nouvelle réponse sous la forme Tasksel Les "noms de tâches" NE SONT PAS affichés dans les requêtes dpkg ou apt. Cela signifie que les autres réponses sont incomplètes (ou erronées).

"Je ne me souviens pas si j'ai coché la case" Hôte de la machine virtuelle ".."

Vérifiez s'il existe un astérisque portant le nom après avoir réexécuté Sudo tasksel.
(ou un ' i ' si vous exécutez tasksel --list-tasks).

Si vous ne le voyez pas, alors vous probablement n'avez pas installé le 'tasksel méta-paquet '.


".. Comment puis-je vérifier si mon serveur dispose des packages correspondants?"

Si vous voulez savoir ce qui est installé dans le méta-package tâche de l'hôte de machine virtuelle:

tasksel --list-tasks

(dans votre cas, tasksel --list-tasks | grep virt est suffisant)

Cela donne la tâche appropriée nom et une indication de son installation.

Dans votre cas, ce nom de tâches est virt-Host.


"Quels packages sont fournis avec l'hôte de machine virtuelle?"

Dans la dernière commande, recherchez le nom de la tâche tasksel.
Ceci est nécessaire pour la commande suivante:

tasksel --task-packages virt-Host

Ceci répertorie les méta-packages Tasksel individuels (indiqués par le caractère '^' ajouté) qui constituent le nom.
Dans votre cas, il s'agit de virt-Host^.

Une fois que vous avez trouvé le bon méta-nom, vous pouvez utiliser apt:

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

(ou apt-cache show... si apt show ne fonctionne pas.)

Cela montrera tous les paquets composant le méta paquet donné.

Ensuite:

 dpkg -l {each individual pkg name listed above}

Cela vous dira si le paquet individuel est installé/désinstallé (noté par la deuxième lettre: le statut "i" signifie installé). Faites cela pour tous les paquets listés sous le paquet tâche/méta.

Ceci devrait répondre aux questions initiales.

Note latérale: /usr/share/tasksel/descs/ubuntu-tasks.desc contient également des descriptions des méta-packages de Tasksel. Si vous: grep "virt" /usr/share/tasksel/descs/ubuntu-tasks.desc, il affichera le nom de méta-package APT correct. (Dans votre cas, il s'agit de ubuntu-virt-server). Vous pouvez également utiliser les commandes apt avec ce méta-nom.

Si vous souhaitez supprimer des paquets tasksel, cela se mêle un peu aux mauvaises herbes. Veuillez consulter https://askubuntu.com/a/88897/169878 ou un nombre quelconque d'autres réponses.

Veuillez noter que les paquets "meta" apt ne correspondent pas aux noms de paquet Tasksel. Veuillez consulter page de la communauté Tasksel pour plus d'informations.

4
bshea

Utilisez tasksel (Sudo apt-get install tasksel si vous ne l'avez pas déjà) et exécutez tasksel --list-tasks.

tasksel imprimera une liste des tâches, et il y aura un i à côté de chaque tâche installée et un u à côté de chaque tâche qui n'est pas installée.

Si vous souhaitez installer la tâche, utilisez tasksel install <task>. Le nom de la tâche que vous recherchez est virt-Host.

Les éléments de sélection de logiciels sont appelés "tâches".

3
Blake R

Solution plus simple:

Il existe maintenant une commande apt list qui répertorie les packages installés. Vous pouvez également rechercher un package spécifique avec

apt list <package>

Voir man apt pour plus d'informations. Si vous ne connaissez pas le nom exact du package, vous pouvez utiliser apt search suivi d'une partie de celui-ci pour afficher la liste des packages associés.

2
sk8forether

Si quelqu'un est intéressé, j'ai créé un petit script avec lequel vous pouvez installer automatiquement à partir d'une liste de paquetages ou d'applications ou simplement vérifier s'ils sont déjà installés:

#!/bin/bash
apt -qq list YOUR_LIST_GOES_HERE | grep -v "installed" | awk -F/ '{print $1}' > /root/list.txt
packages=$(cat /root/list.txt)
grep -q '[^[:space:]]' < /root/list.txt
CHECK_LIST=$?
if [[ $CHECK_LIST -eq 1 ]]; then
echo "Your packages are already installed"
else
echo "Installing packages"
apt-get  install -y $packages
fi

J'espère que ça aide quelqu'un.

1
Claudio Taccogna