2012-10-09 11 views
14

Ich muss nach installierten Paketen suchen und wenn nicht installiert sie installieren.Nach installierten Paketen suchen und wenn nicht gefunden installieren

Beispiel für RHEL, CentOS, Fedora:

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

Wie mache ich einen Scheck in BASH?

Mache ich etwas wie?

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

Und was muss ich für andere Distributionen verwenden? apt-get?

+1

Warum sie nicht einfach durch Ihre Pakete und haben das Paket erforderlich machen Manager Deal mit all dem? –

+0

Es ist nur ein einfaches Bash-Installationsskript, um einige Dinge zu automatisieren. :) –

Antwort

35

Versuchen Sie, den folgenden Code:

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

oder kürzer:

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

Für debian mag:

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

Für archlinux:

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

was bedeutet -qw? – RafaSashi

+0

Silent + nur ganze Wörter, nicht nur ein Teil der Wörter –

+0

ok! Danke stArdustͲ. ziemlich nützlich – RafaSashi

0

Basierend auf @GillesQuenot und @Kidbulra Antworten, hier ist ein Beispiel, wie man Schleife über mehrere Pakete, und installieren, wenn sie fehlt:

packageList="git gcc python-devel" 

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