我有一个 shell 脚本,它检查是否有互联网连接(通过 ping google),然后调用
yum install packageA packageB --assumeyes
我如何确认软件包已安装(或已经安装)?我是否再次进行 yum 调用并解析输出(我认为如果系统使用另一种语言,这会变得非常复杂)?
我使用了以下方法,这可能不是万无一失的,但似乎有效:
假设变量PACKAGES
包含您要安装的软件包列表,然后:
- Run
yum -y install $PACKAGES
(我假设如果这是一个脚本,你真的想通过-y
以避免提示)。
- 检查其退出状态以检测some失效条件。
- Run
rpm --query --queryformat "" $PACKAGES
,对于每个成功安装的包不会输出任何内容,并且会输出package <name> is not installed
对于每一次失败。
- 检查其退出状态,这似乎是未成功安装的软件包数量,即成功时将像往常一样为 0。
这只有在以下情况下才有效PACKAGES
包含简单的包名称yum
预计会在存储库中找到,而不是如果它包含其他内容yum
接受 URL、文件名或Provides:
names.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)