2012-10-09 73 views
14

我需要檢查已安裝的軟件包,如果未安裝,請安裝它們。對於RHEL,CentOS的,Fedora的檢查已安裝的軟件包,如果未找到安裝

例子:

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

我該怎麼做在BASH支票?

我會做類似的事嗎?

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

我需要爲其他發行版使用什麼? apt-get的?

+1

爲什麼不乾脆讓他們通過你的包必需的,並且包經理處理這一切? –

+0

這只是一個簡單的bash安裝腳本來自動化一些事情。 :) –

回答

35

嘗試以下代碼:

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

或更短:

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

對於Debian喜歡:

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

對於的archlinux:

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

-qw是什麼意思? – RafaSashi

+0

沉默+只有完整的單詞,不只是單詞的一部分 –

+0

好!謝謝stArdustͲ。很有用 – RafaSashi

0

基於@GillesQuenot和@Kidbulra答案,這裏是一個例子如何遍歷多個包,並安裝如果它丟失:

packageList="git gcc python-devel" 

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