283 votes

Comment puis-je 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 voulez ou non plusieurs paquets supplémentaires, comme le serveur OpenSSH et l'hôte de la machine virtuelle. Voici ce que je regarde :

dialog offering packages

Maintenant, mon problème est que je ne me souviens pas si j'ai coché la case "hôte de la machine virtuelle". Comment puis-je vérifier si mon serveur possède les paquets correspondants ?

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

0voto

BenR Points 465

La commande (vérifiant que python3-pip est installé) :

dpkg --get-selections python3-pip

et la sortie (oui, est installé) :

python3-pip                                     install

et avec un paquet manquant :

dpkg --get-selections some-missing-package
dpkg: no packages found matching some-missing-package

-1voto

Manuel Jordan Points 612

Par exemple, si je sais ou je veux confirmer que mysql est installé, utilisez :

  • apt list --installed | grep mysql

le site --installed est obligatoire pour confirmer qu'il est installé

Sachant que je n'ai pas postgresql installé, donc :

  • apt list --installed | grep postgresql

renvoie vide/rien

Si j'exécute sans --installed

  • apt list | grep postgresql

il renvoie tout ce qui concerne les noms des paquets postgresql et les dépôts disponibles

Dans l'essai global apt list --installed gegen apt list le second est plus important que le premier en ce qui concerne les résultats renvoyés, la différence porte bien sûr sur ce qui est installé ou non, et sur ce qui est disponible.

-1voto

Hannibal Points 99

Dans mes scripts, j'utilise simplement l'option dpkg -s <pkgname> | grep installed puis je teste le code de sortie $? : si 0 signifie que le paquet est installé, sinon si 1 le paquet n'est pas installé.

Par exemple

> dpkg -s nano | grep installed
> echo $? # $? is 0, package "nano" is installed

> dpkg -s foobar | grep installed
> echo $? # $? is 1, package "foobar" is not installed

-1voto

Marinos An Points 105

mettre à jour :

Meilleur que l'analyse syntaxique dpkg est d'utiliser dpkg-query sortie. La commande ci-dessous imprime installed par lui-même si le paquet est installé :

dpkg-query --show --showformat='${db:Status-Status}\n' package-name

Encore une fois pour supprimer les erreurs :

dpkg-query --show --showformat='${db:Status-Status}\n' package-name 2>/dev/null

original :

Sur la base du retour d'information de josch pour qu'un paquet soit complètement installé, il doit apparaître avec une icône de type ii à côté d'elle. Donc une commande pour le découvrir serait :

# if it prints the package, it is installed
dpkg -l package-name | grep -E '^ii\s'

Maintenant, au cas où il n'est pas du tout installé, dpkg peut imprimer une erreur, au cas où il n'a jamais été installé dans le passé.

dpkg-query : aucun paquet trouvé correspondant

Nous pouvons filtrer de manière appropriée pour n'obtenir que les informations dont nous avons besoin.

Les impressions suivantes installed si le paquet est installé, rien sinon.

( ( dpkg -l package-name 2>&1 ) | grep -E '^ii' > /dev/null ) && echo installed

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X