我有一个 shell 脚本,它检查是否有互联网连接(通过 ping 谷歌),然后调用
yum install packageA packageB --assumeyes
我如何确认软件包已安装(或已经安装)?我是否再次调用 yum 并解析输出(我认为如果系统使用另一种语言,这会变得非常复杂)?
最佳答案
我用过下面的方法,可能不是万无一失,但似乎有效:
假设变量PACKAGES
包含您要安装的软件包列表,然后:
- 运行
yum -y install $PACKAGES
(我假设如果这是一个脚本,你真的想传递-y
以避免提示)。 - 检查其退出状态以检测一些故障情况。
- 运行
rpm --query --queryformat "" $PACKAGES
, 对于每个安装成功的包,它将不输出任何内容,并将输出package <name> is not installed
对于每一次失败。 - 检查它的退出状态,这似乎是未成功安装的软件包数量,即像往常一样成功时将为 0。
只有在 PACKAGES
时才有效包含 yum
的普通包名称预计会在存储库中找到,如果它包含其他内容则不会 yum
接受 URL、文件名或 Provides:
名字。
关于bash - 如何确保 yum install 在 shell 脚本中成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8447011/