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


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

À la fin de l'installation, il vous demande plusieurs paquets supplémentaires, que vous le souhaitiez ou non, comme 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 plus si j'ai coché la case "hôte de machine virtuelle". Comment vérifier si mon serveur dispose des packages correspondants?

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


126
2018-02-19 21:12


origine




Réponses:


Pour répertorier 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 de terminal. Appuyez sur "q" pour revenir à l'invite du terminal. Voir "man less" pour plus d'informations.

dpkg -l | less

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

dpkg -l {package_name}
dpkg -l vlc

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

dpkg -l | grep vlc

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

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

Utiliser Grep pour rechercher:

dpkg -l | grep {keywords}
dpkg -l | grep pdf

176
2018-02-20 09:12



Quelle est la différence entre ceci et dpkg-query -l "packagename" - heypaleblue
Ne dépend pas du code de sortie de dpkg -l packagename, car il pourrait retourner avec un code de sortie 0 même si le paquet n'est pas complètement installé - voir: github.com/bitrise-io/bitrise/issues/433 - Viktor Benei
dpkg -l | cut -d " " -f 3 | grep "^vlc" pour afficher tous les noms de paquets commençant par vlc - anatoly techtonik
FYI, cela ne fonctionne pas pour les méta-paquets car ils ne sont pas directement corrélés à un dpkg. Votre réponse répond à la question comme demandé. - mtalexan


Utilisation 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 

24
2018-02-20 09:10





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

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

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

S'il n'est pas installé, le résultat sera:

$ apt -qq list awscli
awscli/stable 1.4.2-1 all

20
2017-09-11 13:54



Vous pouvez mettre une étoile à la fin du nom du package pour un caractère générique. - Brannon
Vous pouvez également utiliser l'option --installed pour que cette commande se limite aux correspondances réellement installées. - mtalexan
Quelle est la -qq pour? Il semble fonctionner de manière identique sans cette option, et cette option ne figure pas dans le manuel. man apt - Gabriel Staples
@GabrielStaples On dirait le apt list la commande n'est pas encore complètement documentée. Des tests rapides sur 16.04 semblent indiquer que -q est un synonyme de --quiet option. La première -q empêche l'impression du mot "Terminé". Le second empêche également "Listing ..." d'être imprimé. - Anthony Geoghegan


J'ai trouvé un moyen de vérifier l'installation des paquets avec juste la commande dpkg-query et aucun tuyau.

J'ai cherché une telle solution tout en écrivant une tâche pour playbook Ansible.

Donc, vous pouvez faire quelque chose comme ça:

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

C'est juste une autre façon de faire les choses.


12
2017-09-01 19:47



des pipes en ansible peuvent être utilisées avec le shell module. - sjas


J'écris une nouvelle réponse comme Tasksel «Noms des tâches» NE s'affiche PAS dans dpkg ou apt requêtes. Ce qui signifie que les autres réponses sont incomplètes (ou erronées).

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

Vérifiez s'il y a un astérisque par le nom après la relance sudo tasksel.
(ou un ' je 'si en cours d'exécution tasksel --list-tasks).

Si vous ne voyez pas cela, alors vous Probablement n'a pas le 'tasksel meta-package' installée.


"..Comment vérifier si mon serveur a les paquets correspondants?"

Si vous voulez savoir ce qui est installé sous le méta-package tasksel Host Virtual Machine:

tasksel --list-tasks

(dans ton cas tasksel --list-tasks | grep virt est assez)

Cela donne la bonne tâche prénom et une indication quant à savoir s'il est installé.

Dans votre cas, ce nom de taskel est virt-host.


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

À partir de 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

Cela répertorie le méta-package Tasksel individuel (désigné par '^' ajouté) qui constitue le nom.
Dans votre cas c'est virt-host^.

Une fois que vous avez trouvé le méta-nom approprié, 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 constituant le méta-paquet donné.

Alors:

 dpkg -l {each individual pkg name listed above}

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

Cela devrait répondre aux questions originales.

Note complémentaire: /usr/share/tasksel/descs/ubuntu-tasks.desc contient également des descriptions des méta-packages Tasksel. Si vous: grep "virt" /usr/share/tasksel/descs/ubuntu-tasks.desc il affichera le nom correct du méta-package APT. (Dans votre cas c'est ubuntu-virt-server). Vous pouvez aussi utiliser apt commandes avec ce méta-nom.

Si vous souhaitez supprimer des packages tasksel, cela pénètre un peu dans les mauvaises herbes. Veuillez consulter https://askubuntu.com/a/88897/169878 ou n'importe quel nombre d'autres réponses là-bas.

Veuillez noter que les packages "meta" apt ne correspondent pas aux noms des packages Tasksel. Veuillez consulter Page communautaire Tasksel pour plus d'informations.


4
2017-10-19 15:17



Les deux questions reçoivent une réponse correcte. Si vous prenez des notes, donnez une raison ou dites-moi pourquoi elles ne le sont pas. - bshea


Utilisez tasksel (sudo apt-get install tasksel si vous ne l'avez pas déjà) et courir 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 une u à côté de chaque tâche non 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".


2
2018-02-19 21:31



Merci de m'avoir dit que le nom de la tâche, qui était l'un de mes problèmes, n'était pas sûr du paquetage à rechercher. - D.Zou