2012-10-09 194 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 
相关问题