On 11/8/2018 11:52 AM, Pierre Malard wrote:
As write in subject, I’m a newbie about CentOS an all RedHat declines. I wrote a Shell script for ours Debians (all sort of Debian like) which verify which packets are present before running. I thought I had found an equivalent with « yum list installed | grep <packet> » command but I have sometime alerts about a lock because an other instance of « yum » is running.
Yum is a layer on top of the RPM package database. Yum manages dependencies and figures out which additional packages to install (or remove) when you want to install a new package. Yum regularly runs a cron job to check for updates to existing packages and that cron job locks the yum database. That's probably why your interactive job complains that it can't lock the database.
To just query what's installed, you can use the lower-level RPM commands. They don't require a lock on the yum database. The RPM database is only locked when you actually install or remove a package.
I use this to see if a package is installed:
rpm -qa | grep -i package-name
I use the same command when I can't remember the exact name and capitalization of a package. That's why I include the -i in the grep command.