Files
PKGRepoSetup/Setup-Repo.sh

189 lines
8.8 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}" == *"centos"* ]] && [[ "${dist_ver}" == *"8"* ]]; then osrel=cent8;
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" ]; then
apt install -y --no-install-recommends gnupg2 apt-transport-https lsb-release ca-certificates curl
elif [ "$osrel" = "cent8" ]; 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 | apt-key add -
echo "deb http://mirror.nxdi.nl/apt/mysql/"$dist"/ "$dist_name" mysql-8.0" >/etc/apt/sources.list.d/mysql.list
elif [ "$osrel" = "cent8" ]; 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" = "cent8" ] ; then
rpm --import http://mirror.inode.at/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=http://mirror.inode.at/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=http://mirror.inode.at/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" ]; then
curl --retry 7 --retry-delay 5 -s https://packages.sury.org/apache2/apt.gpg -o /etc/apt/trusted.gpg.d/apache2.gpg
echo "deb 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" ] ; then
echo "deb [arch=amd64] http://nginx.org/packages/"$dist" "$dist_name" nginx" > /etc/apt/sources.list.d/nginx.list
curl -fsSL https://nginx.org/keys/nginx_signing.key | apt-key add -
elif [ "$osrel" = "cent8" ]; 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" ]; then
curl --retry 7 --retry-delay 5 -s https://packages.sury.org/php/apt.gpg -o /etc/apt/trusted.gpg.d/php.gpg
echo "deb https://packages.sury.org/php/ "$dist_name" main" > /etc/apt/sources.list.d/php.list
elif [ "$osrel" = "cent8" ]; 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] http://mirror.nxdi.nl/apt/jitsi/ 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."