使用一个 yum 命令安装多个软件包,如果其中任何一个不可用,就会失败

使用一个 yum 命令安装多个软件包,如果其中任何一个不可用,就会失败

我想用一个yum命令安装多个包,如果其中任何一个不可用,就会失败。但是,虽然yum install -y foobar由于没有foobar软件包而会失败,但yum install -y mysql foobar会安装mysql并默默地忽略丢失的foobar软件包。

有没有一种好方法来检查所有请求的软件包是否已安装?我最好的想法是No package .* available在输出中查找字符串,所以基本上:

yum install -y mysql foobar | grep 'No package .* available'; [ ! $? = 0 ]

问题是,这取决于 打印的错误消息yum,该消息可能会随着时间的推移而改变。grep还会吞掉 的输出yum,这可能会使将来除了不可用的包之外的调试问题变得复杂。

答案1

如果缺少任何包,使用该--setopt=skip_missing_names_on_install=False参数会导致失败:yum

yum install -y --setopt=skip_missing_names_on_install=False mysql foobar

相关内容