Files
PKGRepoSetup/Setup-Repo.sh
Bram Prieshof 9ddea0cc0d Added compatibility for debian 11
Replaced apt-key add since it is deprected and will be removed later
new methode will download key directly

From the relevant repo's mysql is not yet updated

Script was tested on all suported platforms
2021-08-18 13:48:53 +02:00

190 lines
9.4 KiB
Bash

dist_ver=$(grep --color=never -Po "^VERSION_ID=\K.*" "/etc/os-release")
dist=$(grep --color=never -Po "^ID=\K.*" "/etc/os-release")
dist_name=$(grep -oP '(?<=^VERSION_CODENAME=).+' /etc/os-release | tr -d '"')
if [ -z "$osrel" ] ; then
if [[ "${dist}" == *"ubuntu"* ]] && [[ "${dist_ver}" == *"18.04"* ]]; then osrel=ubu1804;
elif [[ "${dist}" == *"ubuntu"* ]] && [[ "${dist_ver}" == *"20.04"* ]]; then osrel=ubu2004;
elif [[ "${dist}" == *"debian"* ]] && [[ "${dist_ver}" == *"10"* ]]; then osrel=deb10;
elif [[ "${dist}" == *"debian"* ]] && [[ "${dist_ver}" == *"11"* ]]; then osrel=deb11;
elif [ "$(grep -oP '(?<=^PLATFORM_ID=).+' /etc/os-release | tr -d '"')" = "platform:el8" ]; then osrel=el8;
else echo "This distro is not (yet) supported" && exit;
fi
fi
init () {
if [ "$osrel" = "ubu1804" ] || [ "$osrel" = "ubu2004" ] ; then
apt install -y --no-install-recommends software-properties-common gnupg
elif [ "$osrel" = "deb10" ] || [ "$osrel" = "deb11" ]; then
apt install -y --no-install-recommends gnupg2 apt-transport-https lsb-release ca-certificates curl
elif [ "$osrel" = "el8" ]; then
dnf install --setopt=install_weak_deps=False --best gnupg
else
echo "$repo repository not available for this Distro"
fi
}
mysql () {
if [ "$osrel" = "ubu1804" ] || [ "$osrel" = "ubu2004" ] || [ "$osrel" = "deb10" ]; then
curl --retry 7 --retry-delay 5 -s http://mirror.nxdi.nl/resources/mysql/RPM-GPG-KEY-mysql | gpg --dearmor > /usr/share/keyrings/mysql-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/mysql-archive-keyring.gpg arch=amd64] http://mirror.nxdi.nl/apt/mysql/"$dist"/ "$dist_name" mysql-8.0" >/etc/apt/sources.list.d/mysql.list
elif [ "$osrel" = "el8" ]; then
rpm --import http://mirror.nxdi.nl/resources/mysql/RPM-GPG-KEY-mysql
echo "[mysql80-community]" > /etc/yum.repos.d/mysql.repo
echo "name=MySQL 8.0 Community Server" >> /etc/yum.repos.d/mysql.repo
echo 'baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/8/$basearch/' >> /etc/yum.repos.d/mysql.repo
echo "enabled=1" >> /etc/yum.repos.d/mysql.repo
echo "gpgcheck=1" >> /etc/yum.repos.d/mysql.repo
echo "gpgkey=http://mirror.nxdi.nl/resources/mysql/RPM-GPG-KEY-mysql" >> /etc/yum.repos.d/mysql.repo
dnf -y module disable mysql
else
echo "$repo repository not available for this Distro"
fi
}
universe () {
if [ "$osrel" = "ubu1804" ] || [ "$osrel" = "ubu2004" ] ; then
add-apt-repository --no-update universe -y -n
else
echo "$repo repository not available for this Distro"
fi
}
epel () {
if [ "$osrel" = "el8" ] ; then
rpm --import https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-8
echo '[epel]' >> /etc/yum.repos.d/epel.repo
echo 'name=Extra Packages for Enterprise Linux $releasever - $basearch' >> /etc/yum.repos.d/epel.repo
echo 'metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir' >> /etc/yum.repos.d/epel.repo
echo 'enabled=1' >> /etc/yum.repos.d/epel.repo
echo 'gpgcheck=1' >> /etc/yum.repos.d/epel.repo
echo 'countme=1' >> /etc/yum.repos.d/epel.repo
echo 'gpgkey=https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-8' >> /etc/yum.repos.d/epel.repo
echo '[epel-modular]' >> /etc/yum.repos.d/epel-modular.repo
echo 'name=Extra Packages for Enterprise Linux Modular $releasever - $basearch' >> /etc/yum.repos.d/epel-modular.repo
echo 'metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-modular-$releasever&arch=$basearch&infra=$infra&content=$contentdir' >> /etc/yum.repos.d/epel-modular.repo
echo 'enabled=1' >> /etc/yum.repos.d/epel-modular.repo
echo 'gpgcheck=1' >> /etc/yum.repos.d/epel-modular.repo
echo 'countme=1' >> /etc/yum.repos.d/epel-modular.repo
echo 'gpgkey=https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-8' >> /etc/yum.repos.d/epel-modular.repo
else
echo "$repo repository not available for this Distro"
fi
}
apache () {
if [ "$osrel" = "ubu1804" ] || [ "$osrel" = "ubu2004" ] ; then
add-apt-repository --no-update ppa:ondrej/apache2 -y -n
elif [ "$osrel" = "deb10" ] || [ "$osrel" = "deb11" ]; then
curl curl --retry 7 --retry-delay 5 https://packages.sury.org/apache2/apt.gpg -o /usr/share/keyrings/apache2-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/apache2-archive-keyring.gpg] https://packages.sury.org/apache2/ "$dist_name" main" > /etc/apt/sources.list.d/apache2.list
else
echo "$repo repository not available for this Distro"
fi
}
nginx () {
if [ "$osrel" = "ubu1804" ] || [ "$osrel" = "ubu2004" ] || [ "$osrel" = "deb10" ] || [ "$osrel" = "deb11" ] ; then
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] http://nginx.org/packages/"$dist" "$dist_name" nginx" > /etc/apt/sources.list.d/nginx.list
curl --retry 7 --retry-delay 5 -s https://nginx.org/keys/nginx_signing.key | gpg --dearmor > /usr/share/keyrings/nginx-archive-keyring.gpg
elif [ "$osrel" = "el8" ]; then
rpm --import https://nginx.org/keys/nginx_signing.key
echo '[nginx-stable]' >> /etc/yum.repos.d/nginx.repo
echo 'name=nginx stable repo' >> /etc/yum.repos.d/nginx.repo
echo 'baseurl=http://nginx.org/packages/centos/$releasever/$basearch/' >> /etc/yum.repos.d/nginx.repo
echo 'gpgcheck=1' >> /etc/yum.repos.d/nginx.repo
echo 'enabled=1' >> /etc/yum.repos.d/nginx.repo
echo 'gpgkey=https://nginx.org/keys/nginx_signing.key' >> /etc/yum.repos.d/nginx.repo
echo 'module_hotfixes=true' >> /etc/yum.repos.d/nginx.repo
else
echo "$repo repository not available for this Distro"
fi
}
php () {
if [ "$osrel" = "ubu1804" ] || [ "$osrel" = "ubu2004" ] ; then
add-apt-repository --no-update ppa:ondrej/php -y -n
elif [ "$osrel" = "deb10" ] || [ "$osrel" = "deb11" ]; then
curl --retry 7 --retry-delay 5 https://packages.sury.org/php/apt.gpg -o /usr/share/keyrings/php-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/php-archive-keyring.gpg] https://packages.sury.org/php/ "$dist_name" main" > /etc/apt/sources.list.d/php.list
elif [ "$osrel" = "el8" ]; then
rpm --import https://rpms.remirepo.net/RPM-GPG-KEY-remi2018
echo '[remi-safe]' >> /etc/yum.repos.d/remi-safe.repo
echo 'name=Safe Remi RPM repository for Enterprise Linux 8 - $basearch' >> /etc/yum.repos.d/remi-safe.repo
echo 'mirrorlist=http://cdn.remirepo.net/enterprise/8/safe/$basearch/mirror' >> /etc/yum.repos.d/remi-safe.repo
echo 'enabled=1' >> /etc/yum.repos.d/remi-safe.repo
echo 'gpgcheck=1' >> /etc/yum.repos.d/remi-safe.repo
echo 'gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el8' >> /etc/yum.repos.d/remi-safe.repo
echo '[remi-modular]' >> /etc/yum.repos.d/remi-modular.repo
echo 'name=Remi Modular repository for Enterprise Linux 8 - $basearch' >> /etc/yum.repos.d/remi-modular.repo
echo 'mirrorlist=http://cdn.remirepo.net/enterprise/8/modular/$basearch/mirror' >> /etc/yum.repos.d/remi-modular.repo
echo 'enabled=1' >> /etc/yum.repos.d/remi-modular.repo
echo 'gpgcheck=1' >> /etc/yum.repos.d/remi-modular.repo
echo 'gpgkey=https://rpms.remirepo.net/RPM-GPG-KEY-remi2018' >> /etc/yum.repos.d/remi-modular.repo
else
echo "$repo repository not available for this Distro"
fi
}
certbot () {
if [ "$osrel" = "ubu1804" ] ; then
add-apt-repository --no-update ppa:certbot/certbot -y -n
else
echo "$repo repository not available for this Distro"
fi
}
redis () {
if [ "$osrel" = "ubu1804" ] || [ "$osrel" = "ubu2004" ] ; then
add-apt-repository --no-update ppa:chris-lea/redis-server -y -n
else
echo "$repo repository not available for this Distro"
fi
}
jitsi () {
if [ "$osrel" = "deb10" ] || [ "$osrel" = "ubu1804" ]; then
curl --retry 7 --retry-delay 5 -s https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -
echo 'deb [trusted=yes] https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list
else
echo "$repo repository not available for this Distro"
fi
}
prosody () {
if [ "$osrel" = "deb10" ] || [ "$osrel" = "ubu1804" ]; then
curl --retry 7 --retry-delay 5 -s https://prosody.im/files/prosody-debian-packages.key | apt-key add -
echo "deb http://packages.prosody.im/debian "$dist_name" main" >> /etc/apt/sources.list.d/prosody.list
else
echo "$repo repository not available for this Distro"
fi
}
GoogleChrome () {
if [ "$osrel" = "ubu1804" ] || [ "$osrel" = "ubu2004" ] || [ "$osrel" = "deb10" ]; then
curl -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add
echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' > /etc/apt/sources.list.d/google-chrome.list
else
echo "$repo repository not available for this Distro"
fi
}
adoptopenjdk () {
if [ "$osrel" = "deb10" ] ; then
curl --retry 7 --retry-delay 5 -s https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add -
echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main' >> /etc/apt/sources.list.d/jforg-openjdk.list
else
echo "$repo repository not available for this Distro"
fi
}
type $repo &>/dev/null && $repo || echo "Repository $repo not found."