191 lines
9.7 KiB
Bash
191 lines
9.7 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 [[ "${dist}" == *"debian"* ]] && [[ "${dist_ver}" == *"12"* ]]; then osrel=deb12;
|
|
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" ] || [ "$osrel" = "deb12" ]; 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" ] || [ "$osrel" = "deb11" ]; then
|
|
curl --retry 7 --retry-delay 5 -s https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 | gpg --dearmor > /usr/share/keyrings/mysql-archive-keyring.gpg
|
|
echo "deb [signed-by=/usr/share/keyrings/mysql-archive-keyring.gpg arch=amd64] http://repo.mysql.com/apt/"$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" ] || [ "$osrel" = "deb12" ]; then
|
|
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" ] || [ "$osrel" = "deb12" ] ; 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" ] || [ "$osrel" = "deb12" ]; 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" ] || [ "$osrel" = "deb11" ] || [ "$osrel" = "deb12" ]; 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."
|