148 lines
6.2 KiB
Bash
148 lines
6.2 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
|
|
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
|
|
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
|
|
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 | sudo 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
|
|
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" ] ; 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
|
|
}
|
|
|
|
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."
|