当软件包不可用时,yum 应该会出错

当软件包不可用时,yum 应该会出错

我最近在尝试执行以下操作时遇到了脚本中的错误:

yum -y install another_package.x86_64 some_package.x86_64 && run_my_script

该脚本在较新的 CentOS 上运行良好,但当我尝试在 Cent OS 5 上执行它时,却some_package.x86_64无法使用。但是它并没有报错并停止,yum只是打印了以下消息:

No package some_package.x86_64 available.

yum在这种情况下(在我看来这应该是默认情况)我怎样才能强制出错以使我的脚本更加健壮?

答案1

正如您所发现的,这种行为在 RHEL 5 和 6 之间发生了变化(请参阅https://bugzilla.redhat.com/show_bug.cgi?id=736694进行一些讨论)。从该链接,检查的返回代码yum info <pkg>应该允许您根据需要中止脚本。类似的东西:

# Set a variable containing the packages to install:
pkgs_to_install='another_package.x86_64 some_package.x86_64'

# Loop over the packages in the list:
for pkg in ${pkgs_to_install}; do
  # Stop executing if at least one package isn't available:
  yum info ${pkg} >> /dev/null 2>&1 || exit
done

# Continue running your original script:
yum -y install ${pkgs_to_install} && run_my_script

答案2

错误 1274211,这个问题在 yum-3.4.3-133.el7 中已经修复。不过,你需要启用严格模式。

对于脚本来说,执行此操作的最简单方法是通过命令行开关:

yum -y --setopt=skip_missing_names_on_install=False install another_package.x86_64 some_package.x86_64 && run_my_script

但是,您也可以将其设置为配置选项yum.conf

[main]
skip_missing_names_on_install=0

相关内容