web-dev-qa-db-fra.com

Comment vérifier avec précision si le package est installé dans yum?

Je reçois toujours 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 package principal de liaison 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 pourrait faire la lumière.

62
checksum

Avez-vous essayé cela?

$ yum list installed bind
71
plasmid87

Il existe un moyen beaucoup plus simple d'émettre cette requête: rpm -qa | grep bind ou rpm -q bind. Le premier est préférable si vous n'êtes pas complètement sûr du nom du package.

16
John

L'analyse des résultats de cette commande est la réponse la plus complète. Vous devrez connaître le nom exact du package.

yum info bind

Loaded plugins: refresh-packagekit, rhnplugin
This system is receiving updates from RHN Classic or RHN Satellite.
Installed Packages
Name        : bind
Arch        : x86_64
Epoch       : 32
Version     : 9.8.2
Release     : 0.17.rc1.el6_4.6
Size        : 7.3 M
Repo        : installed
From repo   : rhel-x86_64-workstation-6
Summary     : The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server
URL         : http://www.isc.org/products/BIND/
License     : ISC
Description : BIND (Berkeley Internet Name Domain) is an implementation of the DNS
        : (Domain Name System) protocols. BIND includes a DNS server (named),
        : which resolves Host names to IP addresses; a resolver library
        : (routines for applications to use when interfacing with DNS); and
        : tools for verifying that the DNS server is operating properly.

Le meilleur liner que j'ai trouvé pour faire cela (ce qui est idéal pour une utilisation rapide dans les scripts) est:

yum info <package_name> | grep Repo | awk '{ print $3 }'

Par exemple: si j'ai actuellement git installé:

yum info git | grep Repo | awk '{ print $3 }'

Cela renverra installed

Si j'ai actuellement ne pas ai git installé cette même commande précédente retournera: base/7/x86_64 qui est l'installation actuellement disponible pour git

1
domdambrogia