2012-10-09 6 views
14

Devo controllare i pacchetti installati e se non installati installarli.Controllo dei pacchetti installati e se non trovato installazione

Esempio per RHEL, CentOS, Fedora:

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

Come faccio a fare un check-in BASH?

Devo fare qualcosa di simile?

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

E cosa devo usare per altre distribuzioni? apt-get?

+1

Perché non farli richiesta dal vostro pacchetti e avere il pacchetto manager si occupano di tutto ciò? –

+0

È solo un semplice script di installazione di bash per automatizzare alcune cose. :) –

risposta

35

provare il seguente codice:

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

o più corto:

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

per Debian piace:

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

Per Archlinux:

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

cosa significa -qw? – RafaSashi

+0

Silenzioso + solo parole intere, non solo parte delle parole –

+0

ok! grazie stArdustͲ. piuttosto utile – RafaSashi

0

Sulla base delle risposte @GillesQuenot e @Kidbulra, ecco un esempio di come ciclo su più pacchetti, e installare se mancante:

packageList="git gcc python-devel" 

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