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."