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:
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?
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
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
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
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.
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.
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".
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.
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.