Checking for installed packages and if not found install

前端 未结 4 382
野趣味
野趣味 2021-02-01 20:01

I need to check for installed packages and if not installed install them.

Example for RHEL, CentOS, Fedora:

rpm -qa | grep glibc-static
glibc-static-2.1         


        
相关标签:
4条回答
  • 2021-02-01 20:29
    if [ $(yum list installed | cut -f1 -d" " | grep --extended '^full name of package being checked$' | wc -l) -eq 1 ]; then
      echo "installed";
    else
      echo "missing"
    fi
    

    I use this because it returns installed / missing without relying on an error state (which can cause problems in scripts taking a "no tolerance" approach to errors via

    set -o errexit
    

    for example)

    0 讨论(0)
  • 2021-02-01 20:38

    Try the following code :

    if ! rpm -qa | grep -qw glibc-static; then
        yum install glibc-static
    fi
    

    or shorter :

    rpm -qa | grep -qw glibc-static || yum install glibc-static
    

    For debian likes :

    dpkg -l | grep -qw package || apt-get install package
    

    For archlinux :

    pacman -Qq | grep -qw package || pacman -S package
    
    0 讨论(0)
  • 2021-02-01 20:43

    If you are doing this against downloaded RPMs. you can do it by.

    rpm -Uvh package-name-version-tag.rpm
    
    0 讨论(0)
  • 2021-02-01 20:48

    Based on @GillesQuenot and @Kidbulra answers, here's an example how to loop over multiple packages, and install if missing:

    packageList="git gcc python-devel"
    
    for packageName in $packageList; do
      rpm --quiet --query $packageName || sudo yum install -y $packageName
    done
    
    0 讨论(0)
提交回复
热议问题