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)?
Based on this random post, it looks like yum returns an error code to the shell. You can test this out by running a command and then immediately (as the next command) doing:
echo $?
That will print the previous command's return code. Success should be 0, failure of some kind nonzero. But that's just a guess since I don't have a box accessible to me at the moment. :)
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With