Je continue à recevoir des réponses comme:
yum list installed | grep bind
ou
rpm -qa | grep bind
Mais ce n’est pas exact, car je reçois une liste de quelques autres packages de liaison comme ceux-ci:
bind-utils-9.8.2-0.17.rc1.el6_4.5.x86_64
rpcbind-0.2.0-11.el6.x86_64
bind-libs-9.8.2-0.17.rc1.el6_4.5.x86_64
samba-winbind-3.6.9-151.el6.x86_64
samba-winbind-clients-3.6.9-151.el6.x86_64
ypbind-1.20.4-30.el6.x86_64
Ce n'est pas ce que je voulais. Au lieu de cela, je voudrais vérifier avec précision si le paquet bind core a été installé. Par exemple.bind.x86_64 32:9.8.2-0.17.rc1.el6_4.6
J'espérais quelque chose comme:
yum check installed bind
Mais j'espère que quelqu'un pourra nous éclairer.
yum
rpm
package-management
somme de contrôle
la source
la source
Error: No matching Packages to list
et$?
retourne 1, et quand j'ai essayéyum list installed bind-libs
,$?
renvoie 0. Ce qui devrait être correct jusqu'à présent. Puis-je en toute sécurité conclure que votre commande détermine avec précision qu'un paquet est installé? Je l'ai découvertrpm -q bind
tout à l'heure. Est-il équivalent à votre commande également?yum list installed bind*
yum -C list installed bind
d'éviter le réseau. Ceci garde tous les plugins activés (juste au cas où vous auriez quelque chose d'exotique qui affecte les recherches dans yumdb) et vous indique également le repo où le paquet a été installéIl existe un moyen beaucoup plus simple d’émettre cette requête:
rpm -qa | grep bind
ourpm -q bind
. Le premier est le meilleur si vous n'êtes pas complètement sûr du nom du paquet.la source
rpm -q $package
j’estime que c’est la solution la plus rapide et la plus rapide, car tout ce quiyum
pourrait entraîner une mise à jour forcée du cache (généralement lente).rpm
) doit être la réponse acceptée, car elle renvoie un statut de sortie vierge et ne nécessite pas d'appeler une multitude d'URL distantes, contrairement auxyum
solutions.yum
etrpm
suivent le même comportement dans tous les exemples auxquels je peux penser (0 = installé, 1 = pas installé / erreur), il serait donc utile de savoir si vous voyez un code de sortie différent. Veuillez consulter ma réponse ci-dessus concernant l'utilisation du cache pour éviter l'accès réseauyum -C
pour empêcher yum de passer tout ce temps supplémentaire à contacter des hôtes du réseau. Merci, je vois maintenant comment miam et rpm peuvent être utilisés indifféremment ici !!L'analyse des résultats de cette commande est la réponse la plus complète. Vous aurez besoin de connaître le nom exact du paquet.
la source
bind
paquet yum est disponible / valide au lieu de me dire s'il est installé?Le meilleur support que j'ai créé pour ce faire (ce qui est excellent pour une utilisation rapide dans les scripts) est:
Par exemple: si j'ai déjà
git
installé:Cela va retourner
installed
Si je n'ai pas encore
git
installé cette même commande précédente retournera:base/7/x86_64
qui est l'installation disponible actuelle pourgit
la source
yum list installed
. À partir de là, vous pouvez utiliser lagrep
commande pour obtenir une réponse plus précise à ce que vous recherchez. Aussi , si vous voulez vérifier un package spécifique , vous pouvez ajouter à votre commande - Ex:php70w
.yum list installed php70w
serait soit lister les informations sur le paquet installé ou retournerNo matching Packages to list
Utilisez le code Python pour vérifier si un paquet est installé en python en utilisant yum:
la source
not in
?Si le résultat est 0 (zéro), le package est installé.
la source
rpm -q bind
solution montrée dans la réponse de John.yum -C ...
serait rapide.