yum should error when a package is not available
Solution 1:
Per Bug 1274211, this has been fixed in yum-3.4.3-133.el7. However, you need to enable the strict mode.
The easiest way to do this for scripting purposes is via command-line switch:
yum -y --setopt=skip_missing_names_on_install=False install another_package.x86_64 some_package.x86_64 && run_my_script
However, you can also set it as a configuration option in your yum.conf
:
[main]
skip_missing_names_on_install=0
Solution 2:
As you've found, this behaviour changed between RHEL 5 and 6 (see https://bugzilla.redhat.com/show_bug.cgi?id=736694 for some discussion). From that link, checking the return code of yum info <pkg>
should allow you to abort your script as required. Something like:
# 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