I have a shell script which checks if there is an internet connection (by pinging google), and then calls
yum install packageA packageB --assumeyes
How would I confirm that the packages were installed (or were already installed)? Do I make another yum call and parse the output (I presume this gets very complicated if the system is in another language)?
I've used the following method, which might not be foolproof, but seems to work:
Assuming the variable PACKAGES
contains the list of packages you want to install, then:
yum -y install $PACKAGES
(I assume if this is a script, you really want to pass -y
to avoid prompting).rpm --query --queryformat "" $PACKAGES
, which will output nothing for each package that was installed successfully, and will output package <name> is not installed
for each failure.This will only work if PACKAGES
contains plain package names that yum
is expected to find in a repository, not if it contains other things that yum
accepts like URLs, file names or Provides:
names.