Sigo recibiendo respuestas como:
yum list installed | grep bind
o
rpm -qa | grep bind
Pero eso no es exacto ya que obtengo una lista de algunos otros paquetes de enlace como estos:
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
Eso no es lo que quería. En cambio, me gustaría comprobar con precisión si se ha instalado el paquete Bind Core. P.ej.bind.x86_64 32:9.8.2-0.17.rc1.el6_4.6
Esperaba algo como:
yum check installed bind
Pero con suerte alguien podría arrojar la luz.
yum
rpm
package-management
suma de comprobación
fuente
fuente
Error: No matching Packages to list
y$?
devuelve 1, y cuando lo intentéyum list installed bind-libs
,$?
devuelve 0. Lo que debería ser correcto hasta ahora. ¿Puedo concluir con seguridad que su comando es determinar con precisión un paquete instalado? Lo descubrí hacerpm -q bind
un momento. ¿Es igual a su comando también?yum list installed bind*
yum -C list installed bind
evitar la red. Esto mantiene todos los complementos habilitados (en caso de que tenga algo exótico que afecte las búsquedas en yumdb) y también le informa el repositorio desde el que se instaló el paqueteHay una forma mucho más fácil de emitir esta consulta:
rpm -qa | grep bind
orpm -q bind
. Lo primero es mejor si no está completamente seguro del nombre del paquete.fuente
rpm -q $package
creo que esta es la solución más rápida, ya que hacer cualquier cosayum
podría forzar una actualización de caché (generalmente lenta).rpm
) debe ser la respuesta aceptada, ya que devuelve un estado de salida limpia y no requiere llamar a un grupo de URL remotas como loyum
hacen las soluciones.yum
yrpm
siguen el mismo comportamiento en todos los ejemplos que se me ocurren (0 = instalado, 1 = no instalado / error), por lo que sería útil saber si está viendo un código de salida diferente. Eche un vistazo a mi respuesta anterior sobre el uso de la memoria caché para evitar el acceso a la redyum -C
para evitar que yum pasara todo ese tiempo extra contactando a los hosts de la red. ¡Gracias, ahora veo cómo yum y rpm se pueden usar indistintamente aquí!Analizar los resultados de este comando es la respuesta más completa. Necesitará saber el nombre exacto del paquete.
fuente
bind
está disponible / paquete válido yum en lugar de decirme si está instalado?El mejor delineador que se me ocurrió para hacer esto (que es excelente para usar rápidamente en los scripts) es:
Por ejemplo: si actualmente tengo
git
instalado:Esto volverá
installed
Si actualmente no tengo
git
instalado, ese mismo comando anterior volverá:base/7/x86_64
cuál es la instalación disponible actual paragit
fuente
yum list installed
. Desde allí, puede usar elgrep
comando para obtener una respuesta más precisa de lo que está buscando. Además, si quieres para comprobar si hay un paquete específico se puede añadir que a su comando - Ex:php70w
.yum list installed php70w
enumeraría la información en el paquete instalado o regresaríaNo matching Packages to list
Use el código de Python para verificar si un paquete está instalado en python usando yum:
fuente
not in
?Si el resultado es 0 (cero), el paquete está instalado
fuente
rpm -q bind
solución que se muestra en la respuesta de John.yum -C ...
sería rápido.