#!/bin/bash if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then set -x fi set -eu set -o pipefail if [[ (${DISTRO_NAME} =~ "centos" || ${DISTRO_NAME} =~ "rocky") ]]; then # Centos has "epel-release" in extras, which is default enabled. ${YUM} install -y epel-release else # For RHEL, we have to scrape the download page to find the latest # release and install that [ -n "$ARCH" ] if [ 'amd64' = "$ARCH" ] ; then ARCH="x86_64" fi BASE_URL=${DIB_EPEL_MIRROR:-https://dl.fedoraproject.org/pub/epel} case "$DISTRO_NAME" in rhel7) RELEASE=7 URL=$BASE_URL/$RELEASE/x86_64/Packages/e/ ;; *) echo "$DISTRO_NAME is not supported" # Not really a failure; we just don't do anything exit 0 ;; esac PKG_NAME=$(wget -q $URL -O - |grep -oE "(href=\"epel-release-$RELEASE-[0-9,.].*)" | cut -d'"' -f2) rpm -q epel-release || yum install -y $URL/$PKG_NAME fi if [ ${DIB_EPEL_DISABLED:-0} -ne 0 ]; then if [[ ${YUM} =~ "dnf" ]]; then rpm -q dnf-plugins-core || dnf install -y dnf-plugins-core ${YUM} config-manager --set-disabled "epel*" else # Cannot rely on package-installs, it is executed later rpm -q yum-utils || yum install -y yum-utils yum-config-manager --disable "epel*" fi fi DIB_EPEL_MIRROR=${DIB_EPEL_MIRROR:-} [ -n "$DIB_EPEL_MIRROR" ] || exit 0 # Set the EPEL mirror to use sed -e "s|^#baseurl=http[s]*://.*/pub/epel|baseurl=$DIB_EPEL_MIRROR|;/^mirrorlist=/d;/^metalink=/d" -i /etc/yum.repos.d/epel.repo