scripts: install-deps.sh: Fix distribution detection

Relying on the installed package manager to detect the distribution
is not reliable since it's possible to install multiple package managers
at the same time. As such, lets simply use the information in the
os-release files.

Change-Id: I285c6cd94932f84bb9133b39d282c39d9a25b301
This commit is contained in:
Markos Chandras 2017-10-02 07:44:24 +01:00
parent 4e094b9a18
commit 69d6cbae25

View File

@ -19,9 +19,9 @@ CHECK_CMD_PKGS=(
wget
)
# Check zypper before apt-get in case zypper-aptitude
# is installed
if [ -x '/usr/bin/zypper' ]; then
source /etc/os-release || source /usr/lib/os-release
case ${ID,,} in
*suse)
OS_FAMILY="Suse"
INSTALLER_CMD="sudo -H -E zypper install -y --no-recommends"
CHECK_CMD="zypper search --match-exact --installed"
@ -43,7 +43,9 @@ if [ -x '/usr/bin/zypper' ]; then
if $(${CHECK_CMD} patterns-openSUSE-minimal_base-conflicts &> /dev/null); then
sudo -H zypper remove -y patterns-openSUSE-minimal_base-conflicts
fi
elif [ -x '/usr/bin/apt-get' ]; then
;;
ubuntu|debian)
OS_FAMILY="Debian"
INSTALLER_CMD="sudo -H -E apt-get -y install"
CHECK_CMD="dpkg -l"
@ -60,7 +62,9 @@ elif [ -x '/usr/bin/apt-get' ]; then
[wget]=wget
)
EXTRA_PKG_DEPS=()
elif [ -x '/usr/bin/dnf' ] || [ -x '/usr/bin/yum' ]; then
;;
rhel|fedora|centos)
OS_FAMILY="RedHat"
PKG_MANAGER=$(which dnf || which yum)
INSTALLER_CMD="sudo -H -E ${PKG_MANAGER} -y install"
@ -78,9 +82,10 @@ elif [ -x '/usr/bin/dnf' ] || [ -x '/usr/bin/yum' ]; then
[wget]=wget
)
EXTRA_PKG_DEPS=()
else
echo "ERROR: Supported package manager not found. Supported: apt, dnf, yum, zypper"
fi
;;
*) echo "ERROR: Supported package manager not found. Supported: apt, dnf, yum, zypper"; exit 1;;
esac
# if running in OpenStack CI, then make sure epel is enabled
# since it may already be present (but disabled) on the host