bash - 如何确保 yum install 在 shell 脚本中成功?

标签 bash shell yum

我有一个 shell 脚本,它检查是否有互联网连接(通过 ping 谷歌),然后调用

yum install packageA packageB --assumeyes

我如何确认软件包已安装(或已经安装)?我是否再次调用 yum 并解析输出(我认为如果系统使用另一种语言,这会变得非常复杂)?

最佳答案

我用过下面的方法,可能不是万无一失,但似乎有效:

假设变量PACKAGES包含您要安装的软件包列表,然后:

  1. 运行 yum -y install $PACKAGES (我假设如果这是一个脚本,你真的想传递 -y 以避免提示)。
  2. 检查其退出状态以检测一些故障情况。
  3. 运行 rpm --query --queryformat "" $PACKAGES , 对于每个安装成功的包,它将不输出任何内容,并将输出 package <name> is not installed对于每一次失败。
  4. 检查它的退出状态,这似乎是未成功安装的软件包数量,即像往常一样成功时将为 0。

只有在 PACKAGES 时才有效包含 yum 的普通包名称预计会在存储库中找到,如果它包含其他内容则不会 yum接受 URL、文件名或 Provides:名字。

关于bash - 如何确保 yum install 在 shell 脚本中成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8447011/

相关文章:

centos - Centos 版本会发生什么

linux - 减少文本文件第四列中的小数

linux - 如何让 watch 命令解释 vt100 序列?

linux - 在同一个 shell (bash) 中运行脚本

linux - 如何编写Play Framework service shell让它在启动时开始运行

linux - 如何在 RHEL 上安装 "perf"工具的手册页?

bash - 用于使用 bash 读取两个文件的嵌套循环

bash - grep 查找单词,如果匹配则获取括号之间的内容

linux - shell 和 makefile 之间的公共(public) "include"文件

GCC 向后兼容性