2012-10-09 57 views
14

Necesito comprobar si hay paquetes instalados y si no está instalado, instalarlos.Comprobación de paquetes instalados y si no se encuentra instalación

Ejemplo para RHEL, CentOS, Fedora:

rpm -qa | grep glibc-static 
glibc-static-2.12-1.80.el6_3.5.i686 

¿Cómo hacer una verificación en BASH?

¿Hago algo como?

if [ "$(rpm -qa | grep glibc-static)" != "" ] ; then 

¿Y qué necesito usar para otras distribuciones? apt-get?

+1

¿Por qué no hacer que se requieren por sus paquetes y tener el paquete gerente lidiar con todo eso? –

+0

Es solo un simple script de instalación de bash para automatizar algunas cosas. :) –

Respuesta

35

Prueba el siguiente código:

if ! rpm -qa | grep -qw glibc-static; then 
    yum install glibc-static 
fi 

o más corto:

rpm -qa | grep -qw glibc-static || yum install glibc-static 

para Debian le gusta:

dpkg -l | grep -qw package || apt-get install package 

Por archlinux:

pacman -Qq | grep -qw package || pasman -S package 
+0

¿Qué significa -qw? – RafaSashi

+0

Silencio + solo palabras completas, no solo parte de las palabras –

+0

¡ok! gracias stArdustͲ. bastante útil – RafaSashi

0

Basado en @GillesQuenot y @Kidbulra respuestas, he aquí un ejemplo de cómo bucle sobre varios paquetes, e instalar si falta:

packageList="git gcc python-devel" 

for packageName in $packageList; do 
    rpm --quiet --query $packageName || sudo yum install -y $packageName 
done 
Cuestiones relacionadas