【发布时间】:2016-10-19 19:31:36
【问题描述】:
我正在尝试改进构建脚本(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
我该怎么做?
【问题讨论】:
-
yum 可以得到一个包列表——你有没有直接尝试不循环?
-
如果你给它提供了多个包名作为参数,如果指定的包之一丢失,它不会返回错误代码。例如,如果 a 已安装而 b 未安装,“a b”将返回成功 (0),使其无用。