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
190 lines
9.4 KiB
Bash
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."
|