如果没有安装,如何sudo yum安装包列表?

时间:2016-10-19 19:31:36

标签: bash yum

我正在尝试改进构建脚本(bash或Makefile)以在必要时安装一些先决条件。

我有很长的软件包列表(10-15),我确实只想在没有安装它们的情况下安装它们。

由于构建脚本可能由非root运行,我只想运行sudo yum install一次,并且只在需要时运行(至少没有安装一个软件包)。

我目前的实施显然不是最佳的:

for PACKAGE in a b c ... ; do 
    yum list installed $PACKAGE >/dev/null 2>&1 || sudo yum install -q -y $PACKAGE ;
done 

我该怎么做?

1 个答案:

答案 0 :(得分:0)

当然,您可以将已安装的软件包列表放入文件中并在循环中运行grep,但如果您希望避免创建任何文件,则运行rpm应该可以正常工作:

for p in a b c ... ; do 
  rpm -q > /dev/null 2>&1 $PACKAGE || sudo yum install -q -y $p
done 

查询包信息时,rpm在找到包时返回零,否则返回非零。