Unifi install source script
#!/bin/bash
# UniFi Controller 5.11.48 auto installation script.
# OS | List of supported Distributions/OS
#
# | Ubuntu Precise Pangolin ( 12.04 )
# | Ubuntu Trusty Tahr ( 14.04 )
# | Ubuntu Xenial Xerus ( 16.04 )
# | Ubuntu Bionic Beaver ( 18.04 )
# | Ubuntu Cosmic Cuttlefish ( 18.10 )
# | Ubuntu Disco Dingo ( 19.04 )
# | Ubuntu Eoan Ermine ( 19.10 )
# | Debian Jessie ( 8 )
# | Debian Stretch ( 9 )
# | Debian Buster ( 10 )
# | Debian Bullseye ( 11 )
# | Linux Mint 13 ( Maya )
# | Linux Mint 17 ( Qiana | Rebecca | Rafaela | Rosa )
# | Linux Mint 18 ( Sarah | Serena | Sonya | Sylvia )
# | Linux Mint 19 ( Tara | Tessa | Tina )
# | MX Linux 18 ( Continuum )
#
# Version | 4.0.9
# Author | Glenn Rietveld
# Email | [email protected]
# Website | https://GlennR.nl
###################################################################################################################################################################################################
# #
# Color Codes #
# #
###################################################################################################################################################################################################
RESET='\033[0m'
GRAY='\033[0;37m'
WHITE='\033[1;37m'
GRAY_R='\033[39m'
WHITE_R='\033[39m'
RED='\033[1;31m' # Light Red.
GREEN='\033[1;32m' # Light Green.
BOLD='\e[1m'
###################################################################################################################################################################################################
# #
# Start Checks #
# #
###################################################################################################################################################################################################
# Check for root (SUDO).
if [[ "$EUID" -ne 0 ]]; then
clear
clear
echo -e "${RED}#########################################################################${RESET}"
echo ""
echo -e "${WHITE_R}#${RESET} The script need to be run as root..."
echo ""
echo ""
echo -e "${WHITE_R}#${RESET} For Ubuntu based systems run the command below to login as root"
echo -e "${GREEN}#${RESET} sudo -i"
echo ""
echo -e "${WHITE_R}#${RESET} For Debian based systems run the command below to login as root"
echo -e "${GREEN}#${RESET} su"
echo ""
echo ""
exit 1
fi
while [ -n "$1" ]; do
case "$1" in
-skip) script_option_skip=true;; # Skip script removal and repository question
esac
shift
done
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "downloads-distro.mongodb.org") -gt 0 ]]; then
get_repo_lists=`grep -riIl "downloads-distro.mongodb.org" /etc/apt/ >> /tmp/glennr_dead_repo`
repo_lists=$(tr '\r\n' ' ' < /tmp/glennr_dead_repo)
for glennr_mongo_repo in ${repo_lists[@]}; do
sed -i '/downloads-distro.mongodb.org/d' ${glennr_mongo_repo} 2> /dev/null
if ! [[ -s ${glennr_mongo_repo} ]]; then
rm -rf ${glennr_mongo_repo} 2> /dev/null
fi
done;
fi
abort() {
echo ""
echo ""
echo -e "${RED}#########################################################################${RESET}"
echo ""
echo -e "${WHITE_R}#${RESET} An error occurred. Aborting script..."
echo -e "${WHITE_R}#${RESET} Please contact Glenn R. (AmazedMender16) on the Community Forums!"
echo ""
echo ""
exit 1
}
header() {
clear
echo -e "${GREEN}#########################################################################${RESET}"
echo ""
}
header_red() {
clear
echo -e "${RED}#########################################################################${RESET}"
echo ""
}
cancel_script() {
clear
header
echo -e "${WHITE_R}#${RESET} Cancelling the script!"
echo ""
echo ""
exit 0
}
http_proxy_found() {
clear
header
echo -e "${GREEN}#${RESET} HTTP Proxy found. | ${WHITE_R}${http_proxy}${RESET}"
echo ""
echo ""
}
remove_yourself() {
if [[ $delete_script == 'true' || $script_option_skip == 'true' ]]; then
if [[ -e $0 ]]; then
rm -rf $0 2> /dev/null
fi
fi
}
author() {
echo -e "${WHITE_R}#${RESET} ${GRAY_R}Author | ${WHITE_R}Glenn R.${RESET}"
echo -e "${WHITE_R}#${RESET} ${GRAY_R}Email | ${WHITE_R}[email protected]${RESET}"
echo -e "${WHITE_R}#${RESET} ${GRAY_R}Website | ${WHITE_R}https://GlennR.nl${RESET}"
echo ""
echo ""
echo ""
}
# Get distro.
if [[ -z "$(command -v lsb_release)" ]]; then
if [[ -f "/etc/os-release" ]]; then
if [[ -n "$(grep VERSION_CODENAME /etc/os-release)" ]]; then
os_codename=$(grep VERSION_CODENAME /etc/os-release | sed 's/VERSION_CODENAME//g' | tr -d '="')
elif [[ -z "$(grep VERSION_CODENAME /etc/os-release)" ]]; then
os_codename=$(grep PRETTY_NAME /etc/os-release | sed 's/PRETTY_NAME=//g' | tr -d '="' | awk '{print $4}' | sed 's/\((\|)\)//g' | sed 's/\/sid//g')
if [[ -z ${os_codename} ]]; then
os_codename=$(grep PRETTY_NAME /etc/os-release | sed 's/PRETTY_NAME=//g' | tr -d '="' | awk '{print $3}' | sed 's/\((\|)\)//g' | sed 's/\/sid//g')
fi
fi
fi
else
os_codename=$(lsb_release -cs)
fi
if ! [[ $os_codename =~ (precise|maya|trusty|qiana|rebecca|rafaela|rosa|xenial|sarah|serena|sonya|sylvia|bionic|tara|tessa|tina|cosmic|disco|eoan|jessie|stretch|Continuum|continuum|buster|bullseye) ]]; then
clear
header_red
echo -e "${WHITE_R}#${RESET} This script is not made for your OS.."
echo -e "${WHITE_R}#${RESET} Feel free to contact Glenn R. (AmazedMender16) on the Community Forums if you need help with installing your UniFi Network Controller."
echo -e ""
echo -e "OS_CODENAME = ${os_codename}"
echo -e ""
echo -e ""
exit 1
fi
if [ $(echo $PATH | grep -c "/sbin") -eq 0 ]; then
PATH=/sbin:/bin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/bin
fi
if [ ! -d /etc/apt/sources.list.d ]; then
mkdir -p /etc/apt/sources.list.d
fi
# Check if UniFi is already installed.
if [ $(dpkg-query -W -f='${Status}' unifi 2>/dev/null | grep -c "ok installed") -eq 1 ]; then
clear
header
echo ""
echo -e "${WHITE_R}#${RESET} UniFi is already installed on your system!${RESET}"
echo -e "${WHITE_R}#${RESET} You can use my Easy Update Script to update your controller.${RESET}"
echo ""
echo ""
read -p $'\033[39m#\033[0m Would you like to download and run my Easy Update Script? (Y/n) ' yes_no
case "$yes_no" in
[Yy]*|"")
rm -rf $0 2> /dev/null
wget https://get.glennr.nl/unifi/update/unifi-update.sh; chmod +x unifi-update.sh; ./unifi-update.sh; exit 0;;
[Nn]*) exit 0;;
esac
fi
dpkg_locked_message() {
clear
header_red
echo -e "${WHITE_R}#${RESET} dpkg is locked.. Waiting for other software managers to finish!"
echo -e "${WHITE_R}#${RESET} If this is everlasting please contact Glenn R. (AmazedMender16) on the Community Forums!"
echo ""
echo ""
sleep 5
if [[ -z "$dpkg_wait" ]]; then
echo "glennr_lock_active" >> /tmp/glennr_lock
fi
}
dpkg_locked_60_message() {
clear
header
echo -e "${WHITE_R}#${RESET} dpkg is already locked for 60 seconds..."
echo -e "${WHITE_R}#${RESET} Would you like to force remove the lock?"
echo ""
echo ""
echo ""
}
# Check if dpkg is locked
if [ $(dpkg-query -W -f='${Status}' psmisc 2>/dev/null | grep -c "ok installed") -eq 1 ]; then
while fuser /var/{lib/{dpkg,apt/lists},cache/apt/archives}/lock >/dev/null 2>&1; do
dpkg_locked_message
if [ $(grep glennr_lock_active /tmp/glennr_lock | wc -l) -ge 12 ]; then
rm -rf /tmp/glennr_lock 2> /dev/null
dpkg_locked_60_message
read -p $'\033[39m#\033[0m Do you want to proceed with removing the lock? (Y/n) ' yes_no
case "$yes_no" in
[Yy]*|"")
killall apt apt-get 2> /dev/null
rm -rf /var/lib/apt/lists/lock 2> /dev/null
rm -rf /var/cache/apt/archives/lock 2> /dev/null
rm -rf /var/lib/dpkg/lock* 2> /dev/null
dpkg --configure -a 2> /dev/null
apt-get check >/dev/null 2>&1
if [ "$?" -ne 0 ]; then
apt-get install --fix-broken -y 2> /dev/null
fi
clear
clear;;
[Nn]*) dpkg_wait=true;;
esac
fi
done;
else
dpkg -i /dev/null 2> /tmp/glennr_dpkg_lock; if grep -q "locked.* another" /tmp/glennr_dpkg_lock; then dpkg_locked=true; rm -rf /tmp/glennr_dpkg_lock 2> /dev/null; fi
while [[ $dpkg_locked == 'true' ]]; do
unset dpkg_locked
dpkg_locked_message
if [ $(grep glennr_lock_active /tmp/glennr_lock | wc -l) -ge 12 ]; then
rm -rf /tmp/glennr_lock 2> /dev/null
dpkg_locked_60_message
read -p $'\033[39m#\033[0m Do you want to proceed with force removing the lock? (Y/n) ' yes_no
case "$yes_no" in
[Yy]*|"")
ps aux | grep -i apt | awk '{print $2}' >> /tmp/glennr_apt
glennr_apt_pid_list=$(tr '\r\n' ' ' < /tmp/glennr_apt)
for glennr_apt in ${glennr_apt_pid_list[@]}; do
kill -9 $glennr_apt 2> /dev/null
done;
rm -rf /tmp/glennr_apt 2> /dev/null
rm -rf /var/lib/apt/lists/lock 2> /dev/null
rm -rf /var/cache/apt/archives/lock 2> /dev/null
rm -rf /var/lib/dpkg/lock* 2> /dev/null
dpkg --configure -a 2> /dev/null
apt-get check >/dev/null 2>&1
if [ "$?" -ne 0 ]; then
apt-get install --fix-broken -y 2> /dev/null
fi
clear
clear;;
[Nn]*) dpkg_wait=true;;
esac
fi
dpkg -i /dev/null 2> /tmp/glennr_dpkg_lock; if grep -q "locked.* another" /tmp/glennr_dpkg_lock; then dpkg_locked=true; rm -rf /tmp/glennr_dpkg_lock 2> /dev/null; fi
done;
rm -rf /tmp/glennr_dpkg_lock 2> /dev/null
fi
SCRIPT_VERSION_ONLINE=$(curl https://get.glennr.nl/unifi/install/unifi-5.11.48.sh -s | grep "# Version" | head -n 1 | awk '{print $4}' | sed 's/\.//g')
SCRIPT_VERSION=$(grep "# Version" $0 | head -n 1 | awk '{print $4}' | sed 's/\.//g')
# Script version check.
if [ ${SCRIPT_VERSION_ONLINE::3} -gt ${SCRIPT_VERSION::3} ]; then
clear
header_red
echo -e "${WHITE_R}#${RESET} You're not using the latest version of the Installation Script!"
echo -e "${WHITE_R}#${RESET} Downloading and executing the latest script version.."
echo ""
echo ""
sleep 3
rm -rf $0 2> /dev/null
rm -rf unifi-5.11.48.sh 2> /dev/null
wget https://get.glennr.nl/unifi/install/unifi-5.11.48.sh; chmod +x unifi-5.11.48.sh; ./unifi-5.11.48.sh; exit 0
fi
armhf_recommendation() {
print_architecture=$(dpkg --print-architecture)
check_cloudkey=$(uname -a | awk '{print $2}')
if [[ $print_architecture == 'armhf' && $check_cloudkey != "UniFi-CloudKey" ]]; then
clear
header_red
echo -e "${WHITE_R}#${RESET} Your installation might fail, please consider getting a Cloud Key Gen2 or go with a VPS at OVH/DO/AWS."
if [[ $os_codename =~ (precise|trusty|xenial|bionic|cosmic|disco|eoan) ]]; then
echo -e "${WHITE_R}#${RESET} You could try using Debian Stretch before going with a UCK G2 ( PLUS ) or VPS"
fi
echo ""
echo -e "${WHITE_R}#${RESET} UniFi Cloud Key Gen2 | https://store.ui.com/products/unifi-cloud-key-gen2"
echo -e "${WHITE_R}#${RESET} UniFi Cloud Key Gen2 Plus | https://store.ui.com/products/unifi-cloudkey-gen2-plus"
echo ""
echo ""
sleep 20
fi
}
armhf_recommendation
###################################################################################################################################################################################################
# #
# Required Packages #
# #
###################################################################################################################################################################################################
# Install needed packages if not installed
clear
header
echo -e "${WHITE_R}#${RESET} Checking if all required packages are installed!"
echo ""
echo ""
apt-get update
if [ $(dpkg-query -W -f='${Status}' sudo 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
apt-get install sudo -y
if [[ $? > 0 ]]; then
if [[ $os_codename =~ (precise|maya) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ precise-security main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ precise-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (trusty|qiana|rebecca|rafaela|rosa) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ trusty-security main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ trusty-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (xenial|sarah|serena|sonya|sylvia) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ xenial-security main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ xenial-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (bionic|tara|tessa|tina) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu bionic main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu bionic main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "cosmic" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu cosmic main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu cosmic main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "disco" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu disco main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu disco main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "eoan" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu eoan main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu eoan main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "jessie" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian jessie main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian jessie main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (stretch|Continuum|continuum) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian stretch main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian stretch main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "buster" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian buster main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian buster main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "bullseye" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian bullseye main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian bullseye main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
fi
apt-get update
apt-get install psmisc -y || abort
fi
fi
if [ $(dpkg-query -W -f='${Status}' lsb-release 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
apt-get install lsb-release -y
if [[ $? > 0 ]]; then
if [[ $os_codename =~ (precise|maya) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu precise main universe") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu precise main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (trusty|qiana|rebecca|rafaela|rosa) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu trusty main universe") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu trusty main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (xenial|sarah|serena|sonya|sylvia) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu xenial main universe") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu xenial main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (bionic|tara|tessa|tina) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu bionic main universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu bionic main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "cosmic" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu cosmic main universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu cosmic main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "disco" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu disco main universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu disco main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "eoan" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu eoan main universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu eoan main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "jessie" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian jessie main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian jessie main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (stretch|Continuum|continuum) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian stretch main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian stretch main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "buster" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian buster main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian buster main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "bullseye" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian bullseye main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian bullseye main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
fi
apt-get update
apt-get install lsb-release -y || abort
fi
fi
if [ $(dpkg-query -W -f='${Status}' net-tools 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
apt-get install net-tools -y
if [[ $? > 0 ]]; then
if [[ $os_codename =~ (precise|maya) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ precise main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ precise main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (trusty|qiana|rebecca|rafaela|rosa) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu trusty main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu trusty main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (xenial|sarah|serena|sonya|sylvia) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu xenial main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu xenial main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (bionic|tara|tessa|tina) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu bionic main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu bionic main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "cosmic" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu cosmic main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu cosmic main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "disco" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu disco main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu disco main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "eoan" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu eoan main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu eoan main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "jessie" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian jessie main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian jessie main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (stretch|Continuum|continuum) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian stretch main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian stretch main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "buster" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian buster main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian buster main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "bullseye" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian bullseye main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian bullseye main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
fi
apt-get update
apt-get install net-tools -y || abort
fi
fi
if [ $(dpkg-query -W -f='${Status}' apt-transport-https 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
apt-get install apt-transport-https -y
if [[ $? > 0 ]]; then
if [[ $os_codename =~ (precise|maya) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu precise-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu precise-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (trusty|qiana|rebecca|rafaela|rosa) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu trusty-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu trusty-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (xenial|sarah|serena|sonya|sylvia) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu xenial-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu xenial-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (bionic|tara|tessa|tina) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu bionic-security main universe") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu bionic-security main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "cosmic" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu cosmic-security main universe") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu cosmic-security main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "disco" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu disco main universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu disco main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "eoan" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu eoan main universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu eoan main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "jessie" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.debian.org/debian-security jessie/updates main") -eq 0 ]]; then
echo deb http://security.debian.org/debian-security jessie/updates main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (stretch|Continuum|continuum) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian stretch main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian stretch main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "buster" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian buster main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian buster main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "bullseye" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian bullseye main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian bullseye main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
fi
apt-get update
apt-get install apt-transport-https -y || abort
fi
fi
if [ $(dpkg-query -W -f='${Status}' software-properties-common 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
apt-get install software-properties-common -y
if [[ $? > 0 ]]; then
if [[ $os_codename =~ (precise|maya) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu precise-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu precise-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (trusty|qiana|rebecca|rafaela|rosa) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu trusty main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu trusty main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (xenial|sarah|serena|sonya|sylvia) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu xenial main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu xenial main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (bionic|tara|tessa|tina) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu bionic main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu bionic main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "cosmic" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu cosmic main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu cosmic main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "disco" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu disco main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu disco main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "eoan" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu eoan main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu eoan main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "jessie" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian jessie main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian jessie main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (stretch|Continuum|continuum) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian stretch main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian stretch main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "buster" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian buster main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian buster main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "bullseye" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian bullseye main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian bullseye main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
fi
apt-get update
apt-get install software-properties-common -y || abort
fi
fi
if [ $(dpkg-query -W -f='${Status}' curl 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
apt-get install curl -y
if [[ $? > 0 ]]; then
if [[ $os_codename =~ (precise|maya) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu precise-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu precise-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (trusty|qiana|rebecca|rafaela|rosa) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu trusty-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu trusty-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (xenial|sarah|serena|sonya|sylvia) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu xenial-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu xenial-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (bionic|tara|tessa|tina) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu bionic-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu bionic-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "cosmic" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu cosmic-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu cosmic-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "disco" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu disco main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu disco main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "eoan" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu eoan main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu eoan main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "jessie" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.debian.org/debian-security jessie/updates main") -eq 0 ]]; then
echo deb http://security.debian.org/debian-security jessie/updates main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (stretch|Continuum|continuum) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian stretch main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian stretch main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "buster" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian buster main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian buster main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "bullseye" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian bullseye main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian bullseye main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
fi
apt-get update
apt-get install curl -y || abort
fi
fi
if [ $(dpkg-query -W -f='${Status}' dirmngr 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
apt-get install dirmngr -y
if [[ $? > 0 ]]; then
if [[ $os_codename =~ (precise|maya) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ precise universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ precise universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ precise main restricted") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ precise main restricted >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (trusty|qiana|rebecca|rafaela|rosa) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ trusty universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ trusty universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ trusty main restricted") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ trusty main restricted >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (xenial|sarah|serena|sonya|sylvia) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu xenial-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu xenial-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ xenial main restricted") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ xenial main restricted >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (bionic|tara|tessa|tina) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu bionic-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu bionic-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ bionic main restricted") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ bionic main restricted >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "cosmic" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu cosmic-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu cosmic-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ cosmic main restricted") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ cosmic main restricted >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "disco" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu disco-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu disco-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ disco main restricted") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ disco main restricted >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "eoan" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu eoan-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu eoan-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ eoan main restricted") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ eoan main restricted >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "jessie" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian/ jessie main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian/ jessie main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (stretch|Continuum|continuum) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian/ stretch main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian/ stretch main >>/etc/apt/sources.list.d/glennr-install-script.list || abor
fi
elif [[ $os_codename == "buster" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian/ buster main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian/ buster main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "bullseye" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian/ bullseye main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian/ bullseye main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
fi
apt-get update
apt-get install dirmngr -y || abort
fi
fi
if [ $(dpkg-query -W -f='${Status}' wget 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
apt-get install wget -y
if [[ $? > 0 ]]; then
if [[ $os_codename =~ (precise|maya) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu precise-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu precise-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (trusty|qiana|rebecca|rafaela|rosa) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu trusty-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu trusty-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (xenial|sarah|serena|sonya|sylvia) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu xenial-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu xenial-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (bionic|tara|tessa|tina) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu bionic-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu bionic-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "cosmic" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu cosmic-security main") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu cosmic-security main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "disco" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu disco main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu disco main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "eoan" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu eoan main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu eoan main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "jessie" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.debian.org/debian-security jessie/updates main") -eq 0 ]]; then
echo deb http://security.debian.org/debian-security jessie/updates main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (stretch|Continuum|continuum) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian stretch main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian stretch main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "buster" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian buster main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian buster main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "bullseye" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian bullseye main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian bullseye main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
fi
apt-get update
apt-get install wget -y || abort
fi
fi
if [ $(dpkg-query -W -f='${Status}' netcat 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
apt-get install netcat -y
if [[ $? > 0 ]]; then
if [[ $os_codename =~ (precise|maya) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ precise universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ precise universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (trusty|qiana|rebecca|rafaela|rosa) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ trusty universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ trusty universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (xenial|sarah|serena|sonya|sylvia) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ xenial universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ xenial universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (bionic|tara|tessa|tina) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ bionic universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ bionic universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "cosmic" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ cosmic universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ cosmic universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "disco" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ disco universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ disco universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "eoan" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ eoan universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ eoan universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "jessie" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian jessie main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian jessie main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (stretch|Continuum|continuum) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian stretch main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian stretch main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "buster" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian buster main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian buster main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "bullseye" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian bullseye main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian bullseye main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
fi
apt-get update
apt-get install netcat -y || abort
fi
fi
if [ $(dpkg-query -W -f='${Status}' haveged 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
apt-get install haveged -y
if [[ $? > 0 ]]; then
if [[ $os_codename =~ (precise|maya) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ precise universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ precise universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (trusty|qiana|rebecca|rafaela|rosa) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ trusty universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ trusty universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (xenial|sarah|serena|sonya|sylvia) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ xenial universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ xenial universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (bionic|tara|tessa|tina) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ bionic universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ bionic universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "cosmic" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ cosmic universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ cosmic universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "disco" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ disco universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ disco universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "eoan" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ eoan universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ eoan universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "jessie" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian jessie main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian jessie main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (stretch|Continuum|continuum) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian stretch main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian stretch main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "buster" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian buster main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian buster main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "bullseye" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian bullseye main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian bullseye main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
fi
apt-get update
apt-get install haveged -y || abort
fi
fi
if [ $(dpkg-query -W -f='${Status}' psmisc 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
apt-get install psmisc -y
if [[ $? > 0 ]]; then
if [[ $os_codename =~ (precise|maya) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu/ precise-updates main restricted") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu/ precise-updates main restricted >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (trusty|qiana|rebecca|rafaela|rosa) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu trusty main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu trusty main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (xenial|sarah|serena|sonya|sylvia) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu xenial main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu xenial main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (bionic|tara|tessa|tina) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu bionic main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu bionic main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "cosmic" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu cosmic main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu cosmic main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "disco" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu disco main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu disco main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "eoan" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu eoan main") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu eoan main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "jessie" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian jessie main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian jessie main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (stretch|Continuum|continuum) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian stretch main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian stretch main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "buster" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian buster main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian buster main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "bullseye" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian bullseye main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian bullseye main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
fi
apt-get update
apt-get install psmisc -y || abort
fi
fi
###################################################################################################################################################################################################
# #
# Variables #
# #
###################################################################################################################################################################################################
MONGODB_ORG_SERVER=$(dpkg -l | grep ^ii | grep "mongodb-org-server" | awk '{print $3}' | sed 's/.*://' | sed 's/-.*//g')
MONGODB_ORG_MONGOS=$(dpkg -l | grep ^ii | grep "mongodb-org-mongos" | awk '{print $3}' | sed 's/.*://' | sed 's/-.*//g')
MONGODB_ORG_SHELL=$(dpkg -l | grep ^ii | grep "mongodb-org-shell" | awk '{print $3}' | sed 's/.*://' | sed 's/-.*//g')
MONGODB_ORG_TOOLS=$(dpkg -l | grep ^ii | grep "mongodb-org-tools" | awk '{print $3}' | sed 's/.*://' | sed 's/-.*//g')
MONGODB_ORGN=$(dpkg -l | grep ^ii | grep "mongodb-org" | awk '{print $3}' | sed 's/.*://' | sed 's/-.*//g')
MONGODB_SERVER=$(dpkg -l | grep ^ii | grep "mongodb-server" | awk '{print $3}' | sed 's/.*://' | sed 's/-.*//g')
MONGODB_CLIENTS=$(dpkg -l | grep ^ii | grep "mongodb-clients" | awk '{print $3}' | sed 's/.*://' | sed 's/-.*//g')
MONGODB_SERVER_CORE=$(dpkg -l | grep ^ii | grep "mongodb-server-core" | awk '{print $3}' | sed 's/.*://' | sed 's/-.*//g')
MONGO_TOOLS=$(dpkg -l | grep ^ii | grep "mongo-tools" | awk '{print $3}' | sed 's/.*://' | sed 's/-.*//g')
#
SYSTEM_MEMORY=$(awk '/MemTotal/ {printf( "%.0f\n", $2 / 1024 / 1024)}' /proc/meminfo)
SYSTEM_SWAP=$(awk '/SwapTotal/ {printf( "%.0f\n", $2 / 1024 / 1024)}' /proc/meminfo)
#SYSTEM_FREE_DISK=$(df -h / | grep "/" | awk '{print $4}' | sed 's/G//')
SYSTEM_FREE_DISK=$(df -k / | awk '{print $4}' | tail -n1)
#
#SERVER_IP=$(ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' | head -1)
SERVER_IP=$(/sbin/ifconfig | grep 'inet ' | grep -v '127.0.0.1' | head -n1 | awk '{print $2}' | head -1 | sed 's/.*://')
PUBLIC_SERVER_IP=$(curl https://ip.glennr.nl/ -s)
ARCHITECTURE=$(dpkg --print-architecture)
os_codename=$(lsb_release -cs)
#
#JAVA8=$(dpkg -l | grep -c "openjdk-8-jre-headless\|oracle-java8-installer")
mongodb_server_installed=$(dpkg -l | grep ^ii | grep -c "mongodb-server\|mongodb-org-server")
mongodb_version=$(dpkg -l | grep "mongodb-server\|mongodb-org-server" | awk '{print $3}' | sed 's/.*://' | sed 's/-.*//' | sed 's/\.//g')
# JAVA Check
java_v8=$(dpkg -l | grep ^ii | grep -c "openjdk-8\|oracle-java8")
java_v9=$(dpkg -l | grep ^ii | grep -c "openjdk-9\|oracle-java9")
java_v10=$(dpkg -l | grep ^ii | grep -c "openjdk-10\|oracle-java10")
java_v11=$(dpkg -l | grep ^ii | grep -c "openjdk-11\|oracle-java11")
java_v12=$(dpkg -l | grep ^ii | grep -c "openjdk-12\|oracle-java12")
unsupported_java_installed=''
java8_installed=''
remote_controller=''
debian_64_mongo=''
openjdk_repo=''
debian_32_run_fix=''
unifi_dependencies=''
mongodb_key_fail=''
port_8080_in_use=''
port_8080_pid=''
port_8080_service=''
port_8443_in_use=''
port_8443_pid=''
port_8443_service=''
###################################################################################################################################################################################################
# #
# Checks #
# #
###################################################################################################################################################################################################
if [ $SYSTEM_FREE_DISK -lt "5242880" ]; then
clear
header_red
echo -e "${WHITE_R}#${RESET} Free disk space is below 5GB.. Please expand the disk size!"
echo -e "${WHITE_R}#${RESET} I recommend expanding to atleast 10GB"
echo ""
echo ""
exit 1
fi
# MongoDB version check.
if [[ $MONGODB_ORG_SERVER > "3.4.999" || $MONGODB_ORG_MONGOS > "3.4.999" || $MONGODB_ORG_SHELL > "3.4.999" || $MONGODB_ORG_TOOLS > "3.4.999" || $MONGODB_ORG > "3.4.999" || $MONGODB_SERVER > "3.4.999" || $MONGODB_CLIENTS > "3.4.999" || $MONGODB_SERVER_CORE > "3.4.999" || $MONGO_TOOLS > "3.4.999" ]]; then
clear
header_red
echo -e "${WHITE_R}#${RESET} UniFi does not support MongoDB 3.6 or newer.."
echo -e "${WHITE_R}#${RESET} Do you want to uninstall the unsupported MongoDB version?"
echo ""
echo -e "${WHITE_R}#${RESET} This will also uninstall any other package depending on MongoDB!"
echo -e "${WHITE_R}#${RESET} I highly recommend creating a backup/snapshot of your machine/VM"
echo ""
echo ""
echo ""
read -p "Do you want to proceed with uninstalling MongoDB? (Y/n)" yes_no
case "$yes_no" in
[Yy]*|"")
clear
header
echo -e "${WHITE_R}#${RESET} Uninstalling MongoDB!"
if [ $(dpkg-query -W -f='${Status}' unifi 2>/dev/null | grep -c "ok installed") -eq 1 ]; then
echo -e "${WHITE_R}#${RESET} Removing UniFi to keep system files!"
fi
if [ $(dpkg-query -W -f='${Status}' unifi-video 2>/dev/null | grep -c "ok installed") -eq 1 ]; then
echo -e "${WHITE_R}#${RESET} Removing UniFi-Video to keep system files!"
fi
echo ""
echo ""
echo ""
sleep 3
rm /etc/apt/sources.list.d/mongo*.list
if [ $(dpkg-query -W -f='${Status}' unifi 2>/dev/null | grep -c "ok installed") -eq 1 ]; then
dpkg --remove --force-remove-reinstreq unifi || abort
fi
if [ $(dpkg-query -W -f='${Status}' unifi-video 2>/dev/null | grep -c "ok installed") -eq 1 ]; then
dpkg --remove --force-remove-reinstreq unifi-video || abort
fi
apt-get purge mongo* -y
if [[ $? > 0 ]]; then
clear
header_red
echo -e "${WHITE_R}#${RESET} Failed to uninstall MongoDB!"
echo -e "${WHITE_R}#${RESET} Uninstalling MongoDB with different actions!"
echo ""
echo ""
echo ""
sleep 2
apt-get --fix-broken install -y || apt-get install -f -y
apt-get autoremove -y
if [ $(dpkg-query -W -f='${Status}' mongodb-org 2>/dev/null | grep -c "ok installed") -eq 1 ]; then
dpkg --remove --force-remove-reinstreq mongodb-org || abort
fi
if [ $(dpkg-query -W -f='${Status}' mongodb-org-tools 2>/dev/null | grep -c "ok installed") -eq 1 ]; then
dpkg --remove --force-remove-reinstreq mongodb-org-tools || abort
fi
if [ $(dpkg-query -W -f='${Status}' mongodb-org-server 2>/dev/null | grep -c "ok installed") -eq 1 ]; then
dpkg --remove --force-remove-reinstreq mongodb-org-server || abort
fi
if [ $(dpkg-query -W -f='${Status}' mongodb-org-mongos 2>/dev/null | grep -c "ok installed") -eq 1 ]; then
dpkg --remove --force-remove-reinstreq mongodb-org-mongos || abort
fi
if [ $(dpkg-query -W -f='${Status}' mongodb-org-shell 2>/dev/null | grep -c "ok installed") -eq 1 ]; then
dpkg --remove --force-remove-reinstreq mongodb-org-shell || abort
fi
if [ $(dpkg-query -W -f='${Status}' mongodb-server 2>/dev/null | grep -c "ok installed") -eq 1 ]; then
dpkg --remove --force-remove-reinstreq mongodb-server || abort
fi
if [ $(dpkg-query -W -f='${Status}' mongodb-clients 2>/dev/null | grep -c "ok installed") -eq 1 ]; then
dpkg --remove --force-remove-reinstreq mongodb-clients || abort
fi
if [ $(dpkg-query -W -f='${Status}' mongodb-server-core 2>/dev/null | grep -c "ok installed") -eq 1 ]; then
dpkg --remove --force-remove-reinstreq mongodb-server-core || abort
fi
if [ $(dpkg-query -W -f='${Status}' mongo-tools 2>/dev/null | grep -c "ok installed") -eq 1 ]; then
dpkg --remove --force-remove-reinstreq mongo-tools || abort
fi
fi
apt-get autoremove -y || abort
apt-get clean -y || abort;;
[Nn]*) cancel_script;;
esac
fi
# Memory and Swap file.
if [ $SYSTEM_MEMORY -lt "2" ]; then
clear
header_red
echo -e "${WHITE_R}#${RESET} SYSTEM MEMORY is lower than recommended!"
echo -e "${WHITE_R}#${RESET} Checking for swap file!"
echo ""
echo ""
echo ""
sleep 2
if [ $SYSTEM_FREE_DISK -gt "4194304" ]; then
if [ $SYSTEM_SWAP == "0" ]; then
clear
header
echo -e "${WHITE_R}#${RESET} Creating swap file!"
echo ""
echo ""
echo ""
sleep 2
dd if=/dev/zero of=/swapfile bs=2048 count=1048576
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile swap swap defaults 0 0" | tee -a /etc/fstab
else
clear
header
echo -e "${WHITE_R}#${RESET} Swap file already exists!"
echo ""
echo ""
echo ""
sleep 2
fi
else
clear
header_red
echo -e "${WHITE_R}#${RESET} Not enough free disk space for the swap file!"
echo -e "${WHITE_R}#${RESET} Skipping swap file creation!"
echo ""
echo -e "${WHITE_R}#${RESET} I highly recommend upgrading the system memory to atleast 2GB and expanding the disk space!"
echo ""
echo ""
echo ""
sleep 8
fi
fi
if netstat -lnp | grep -q 8080; then
port_8080_pid=`netstat -lnp | grep 8080 | awk '{print $7}' | sed 's/[/].*//g'`
port_8080_service=`netstat -lnp | grep 8080 | awk '{print $7}' | sed 's/[0-9/]//g'`
if [[ $(ls -l /proc/${port_8080_pid}/exe | awk '{print $3}') != "unifi" ]]; then
port_8080_in_use=true
fi
fi
if netstat -lnp | grep -q 8443; then
port_8443_pid=`netstat -lnp | grep 8443 | awk '{print $7}' | sed 's/[/].*//g'`
port_8443_service=`netstat -lnp | grep 8443 | awk '{print $7}' | sed 's/[0-9/]//g'`
if [[ $(ls -l /proc/${port_8443_pid}/exe | awk '{print $3}') != "unifi" ]]; then
port_8443_in_use=true
fi
fi
###################################################################################################################################################################################################
# #
# Ask to keep script or delete #
# #
###################################################################################################################################################################################################
script_removal() {
header
read -p $'\033[39m#\033[0m Do you want to keep the script on your system after completion? (Y/n) ' yes_no
case "$yes_no" in
[Yy]*|"") ;;
[Nn]*) delete_script=true;;
esac
}
if [[ $script_option_skip != 'true' ]]; then
script_removal
fi
###################################################################################################################################################################################################
# #
# Installation Script starts here #
# #
###################################################################################################################################################################################################
apt_mongodb_check() {
apt-get update
MONGODB_ORG_CACHE=$(apt-cache madison mongodb-org | awk '{print $3}' | sort -V | tail -n 1 | sed 's/\.//g')
MONGODB_CACHE=$(apt-cache madison mongodb | awk '{print $3}' | sort -V | tail -n 1 | sed 's/-.*//' | sed 's/.*://' | sed 's/\.//g')
MONGO_TOOLS_CACHE=$(apt-cache madison mongo-tools | awk '{print $3}' | sort -V | tail -n 1 | sed 's/-.*//' | sed 's/.*://' | sed 's/\.//g')
}
set_hold_mongodb_org=''
set_hold_mongodb=''
set_hold_mongo_tools=''
clear
header
echo -e "${WHITE_R}#${RESET} Getting the latest patches for your machine!"
echo ""
echo ""
echo ""
sleep 2
apt_mongodb_check
if [[ ${MONGODB_ORG_CACHE::2} -gt "34" ]]; then
if [ $(dpkg --get-selections | grep "mongodb-org" | awk '{print $2}' | grep -c "install") -ne 0 ]; then
echo "mongodb-org hold" | dpkg --set-selections 2> /dev/null || abort
echo "mongodb-org-mongos hold" | dpkg --set-selections 2> /dev/null || abort
echo "mongodb-org-server hold" | dpkg --set-selections 2> /dev/null || abort
echo "mongodb-org-shell hold" | dpkg --set-selections 2> /dev/null || abort
echo "mongodb-org-tools hold" | dpkg --set-selections 2> /dev/null || abort
set_hold_mongodb_org=true
fi
fi
if [[ ${MONGODB_CACHE::2} -gt "34" ]]; then
if [ $(dpkg --get-selections | grep "mongodb-server" | awk '{print $2}' | grep -c "install") -ne 0 ]; then
echo "mongodb hold" | dpkg --set-selections 2> /dev/null || abort
echo "mongodb-server hold" | dpkg --set-selections 2> /dev/null || abort
echo "mongodb-server-core hold" | dpkg --set-selections 2> /dev/null || abort
echo "mongodb-clients hold" | dpkg --set-selections 2> /dev/null || abort
set_hold_mongodb=true
fi
fi
if [[ ${MONGO_TOOLS_CACHE::2} -gt "34" ]]; then
if [ $(dpkg --get-selections | grep "mongo-tools" | awk '{print $2}' | grep -c "install") -ne 0 ]; then
echo "mongo-tools hold" | dpkg --set-selections 2> /dev/null || abort
set_hold_mongo_tools=true
fi
fi
apt-get update
DEBIAN_FRONTEND='noninteractive' apt-get -y -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' upgrade || abort
DEBIAN_FRONTEND='noninteractive' apt-get -y -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' dist-upgrade || abort
apt-get autoremove -y || abort
apt-get autoclean -y || abort
if [[ $set_hold_mongodb_org == 'true' ]]; then
echo "mongodb-org install" | dpkg --set-selections 2> /dev/null || abort
echo "mongodb-org-mongos install" | dpkg --set-selections 2> /dev/null || abort
echo "mongodb-org-server install" | dpkg --set-selections 2> /dev/null || abort
echo "mongodb-org-shell install" | dpkg --set-selections 2> /dev/null || abort
echo "mongodb-org-tools install" | dpkg --set-selections 2> /dev/null || abort
fi
if [[ $set_hold_mongodb == 'true' ]]; then
echo "mongodb install" | dpkg --set-selections 2> /dev/null || abort
echo "mongodb-server install" | dpkg --set-selections 2> /dev/null || abort
echo "mongodb-server-core install" | dpkg --set-selections 2> /dev/null || abort
echo "mongodb-clients install" | dpkg --set-selections 2> /dev/null || abort
fi
if [[ $set_hold_mongo_tools == 'true' ]]; then
echo "mongo-tools install" | dpkg --set-selections 2> /dev/null || abort
fi
# MongoDB check
mongodb_server_installed=$(dpkg -l | grep ^ii | grep -c "mongodb-server\|mongodb-org-server")
ubuntu_32_mongo() {
clear
header
echo -e "${WHITE_R}#${RESET} 32 bit system detected!"
echo -e "${WHITE_R}#${RESET} Installing MongoDB for 32 bit systems!"
echo ""
echo ""
echo ""
sleep 2
}
debian_32_mongo() {
debian_32_run_fix=true
clear
header
echo -e "${WHITE_R}#${RESET} 32 bit system detected!"
echo -e "${WHITE_R}#${RESET} Skipping MongoDB installation!"
echo ""
echo ""
echo ""
sleep 2
}
mongodb_26_key() {
if [ ! -z "$http_proxy" ]; then
http_proxy_found
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy=${http_proxy} --recv-keys 7F0CEB10 || mongodb_key_fail=true
elif [ -f /etc/apt/apt.conf ]; then
apt_http_proxy=$(grep http.*Proxy /etc/apt/apt.conf | awk '{print $2}' | sed 's/[";]//g')
if [[ apt_http_proxy ]]; then
http_proxy_found
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy=${apt_http_proxy} --recv-keys 7F0CEB10 || mongodb_key_fail=true
fi
else
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 || mongodb_key_fail=true
fi
if [[ $mongodb_key_fail == "true" ]]; then
wget -qO - https://www.mongodb.org/static/pgp/server-2.6.asc | apt-key add - || abort
fi
}
mongodb_34_key() {
if [ ! -z "$http_proxy" ]; then
http_proxy_found
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy=${http_proxy} --recv-keys 0C49F3730359A14518585931BC711F9BA15703C6 || mongodb_key_fail=true
elif [ -f /etc/apt/apt.conf ]; then
apt_http_proxy=$(grep http.*Proxy /etc/apt/apt.conf | awk '{print $2}' | sed 's/[";]//g')
if [[ apt_http_proxy ]]; then
http_proxy_found
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy=${apt_http_proxy} --recv-keys 0C49F3730359A14518585931BC711F9BA15703C6 || mongodb_key_fail=true
fi
else
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6 || mongodb_key_fail=true
fi
if [[ $mongodb_key_fail == "true" ]]; then
wget -qO - https://www.mongodb.org/static/pgp/server-3.4.asc | apt-key add - || abort
fi
}
if [[ $os_codename =~ (disco|eoan) && $ARCHITECTURE =~ (amd64|arm64) ]]; then
clear
header
echo -e "${WHITE_R}#${RESET} Installing a required package.."
echo ""
echo ""
echo ""
sleep 2
libssl_temp="$(mktemp --tmpdir=/tmp libssl1.0.2_XXXXX.deb)" || abort
wget -O "$libssl_temp" 'http://security.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5.3_amd64.deb' || abort
dpkg -i "$libssl_temp"
rm -rf "$libssl_temp" 2> /dev/null
fi
clear
header
echo -e "${WHITE_R}#${RESET} The latest patches are installed on your system!"
echo -e "${WHITE_R}#${RESET} Installing MongoDB..."
echo ""
echo ""
echo ""
sleep 2
if ! [[ $mongodb_server_installed -eq 1 ]]; then
if [[ $os_codename =~ (precise|maya|trusty|qiana|rebecca|rafaela|rosa|xenial|sarah|serena|sonya|sylvia) && ! $ARCHITECTURE =~ (amd64|arm64) ]]; then
ubuntu_32_mongo
#mongodb_26_key
apt-get install -y mongodb-server mongodb-clients
if [[ $? > 0 ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -P -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu xenial main universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu xenial main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
apt-get update
fi
apt-get install -y mongodb-server mongodb-clients || apt-get install -f && apt-get install -y mongodb-server mongodb-clients || abort
fi
elif [[ $os_codename =~ (bionic|tara|tessa|tina|disco|eoan) && ! $ARCHITECTURE =~ (amd64|arm64) ]]; then
ubuntu_32_mongo
libssl_temp="$(mktemp --tmpdir=/tmp libssl1.0.2_XXXXX.deb)" || abort
wget -O "$libssl_temp" 'http://ftp.nl.debian.org/debian/pool/main/o/openssl1.0/libssl1.0.2_1.0.2r-1~deb9u1_i386.deb' || abort
dpkg -i "$libssl_temp"
rm -rf "$libssl_temp" 2> /dev/null
if [[ $os_codename =~ (disco|eoan) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -P -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu bionic main universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu bionic main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
apt-get update
fi
fi
apt-get install -y libboost-chrono1.62.0 libboost-filesystem1.62.0 libboost-program-options1.62.0 libboost-regex1.62.0 libboost-system1.62.0 libboost-thread1.62.0 libgoogle-perftools4 libpcap0.8 libpcrecpp0v5 libsnappy1v5 libstemmer0d libyaml-cpp0.5v5
mongo_tools_temp="$(mktemp --tmpdir=/tmp mongo_tools-3.2.22_XXXXX.deb)" || abort
wget -O "$mongo_tools_temp" 'http://ftp.nl.debian.org/debian/pool/main/m/mongo-tools/mongo-tools_3.2.11-1+b2_i386.deb' || abort
dpkg -i "$mongo_tools_temp"
rm -rf "$mongo_tools_temp" 2> /dev/null
mongodb_clients_temp="$(mktemp --tmpdir=/tmp mongodb_clients-3.2.22_XXXXX.deb)" || abort
wget -O "$mongodb_clients_temp" 'http://ftp.nl.debian.org/debian/pool/main/m/mongodb/mongodb-clients_3.2.11-2+deb9u1_i386.deb' || abort
dpkg -i "$mongodb_clients_temp"
rm -rf "$mongodb_clients_temp" 2> /dev/null
mongodb_server_temp="$(mktemp --tmpdir=/tmp mongodb_clients-3.2.22_XXXXX.deb)" || abort
wget -O "$mongodb_server_temp" 'http://ftp.nl.debian.org/debian/pool/main/m/mongodb/mongodb-server_3.2.11-2+deb9u1_i386.deb' || abort
dpkg -i "$mongodb_server_temp"
rm -rf "$mongodb_server_temp" 2> /dev/null
elif [[ $os_codename =~ (precise|maya) && $ARCHITECTURE =~ (amd64|arm64) ]]; then
mongodb_34_key
echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.4.list
apt-get update
apt-get install -y mongodb-org || abort
elif [[ $os_codename =~ (trusty|qiana|rebecca|rafaela|rosa) && $ARCHITECTURE =~ (amd64|arm64) ]]; then
mongodb_34_key
echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.4.list
apt-get update
apt-get install -y mongodb-org || abort
elif [[ $os_codename =~ (xenial|bionic|cosmic|disco|eoan|sarah|serena|sonya|sylvia|tara|tessa|tina) && $ARCHITECTURE =~ (amd64|arm64) ]]; then
mongodb_34_key
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.4.list || abort
apt-get update
apt-get install -y mongodb-org || abort
elif [[ $os_codename =~ (jessie|stretch|Continuum|continuum|buster|bullseye) ]]; then
if [[ ! $ARCHITECTURE =~ (amd64|arm64) ]]; then
debian_32_mongo
fi
if [[ $os_codename == "jessie" && $ARCHITECTURE =~ (amd64|arm64) ]]; then
echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4 main" | tee /etc/apt/sources.list.d/mongodb-org-3.4.list || abort
debian_64_mongo=install
elif [[ $os_codename =~ (stretch|Continuum|continuum|buster|bullseye) && $ARCHITECTURE =~ (amd64|arm64) ]]; then
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.4.list || abort
libssl_temp="$(mktemp --tmpdir=/tmp libssl1.0.2_XXXXX.deb)" || abort
wget -O "$libssl_temp" 'http://security.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5.3_amd64.deb' || abort
dpkg -i "$libssl_temp"
rm -rf "$libssl_temp" 2> /dev/null
debian_64_mongo=install
fi
if [ $debian_64_mongo == 'install' ]; then
mongodb_34_key
apt-get update
apt-get install -y mongodb-org || abort
fi
else
header_red
echo -e "${RED}#${RESET} The script is unable to grab your OS ( or does not support it )"
echo "${ARCHITECTURE}"
echo "${os_codename}"
abort
fi
else
clear
header
echo -e "${WHITE_R}#${RESET} MongoDB is already installed..."
echo ""
echo ""
echo ""
sleep 2
fi
if [[ $architecture == "armhf" ]]; then
clear
header
echo -e "${WHITE_R}#${RESET} Trying to use raspbian repo to install MongoDB..."
echo ""
echo ""
echo 'deb http://archive.raspbian.org/raspbian stretch main contrib non-free rpi' | tee /etc/apt/sources.list.d/glennr_armhf.list
wget https://archive.raspbian.org/raspbian.public.key -O - | apt-key add -
apt-get update
apt-get install -y mongodb-server mongodb-clients || apt-get install -f || abort
if ! dpkg -l | grep ^ii | grep "mongodb-server"; then
echo -e "${RED}#${RESET} mongodb-server failed to install.." && abort
fi
if ! dpkg -l | grep ^ii | grep "mongodb-clients"; then
echo -e "${RED}#${RESET} mongodb-clients failed to install.." && abort
fi
fi
clear
header
echo -e "${WHITE_R}#${RESET} MongoDB has been installed successfully!"
echo -e "${WHITE_R}#${RESET} Installing OpenJDK 8..."
echo ""
echo ""
echo ""
sleep 2
if ! [[ $JAVA8 -eq 1 ]]; then
if [[ $os_codename =~ (precise|maya) ]]; then
apt-get install openjdk-8-jre-headless -y
if [[ $? > 0 ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu precise main") -eq 0 ]]; then
echo deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu precise main >> /etc/apt/sources.list.d/glennr-install-script.list || abort
openjdk_repo=true
fi
fi
elif [[ $os_codename =~ (trusty|qiana|rebecca|rafaela|rosa) ]]; then
apt-get install openjdk-8-jre-headless -y
if [[ $? > 0 ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu trusty main") -eq 0 ]]; then
echo deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu trusty main >> /etc/apt/sources.list.d/glennr-install-script.list || abort
openjdk_repo=true
fi
fi
elif [[ $os_codename =~ (xenial|sarah|serena|sonya|sylvia) ]]; then
apt-get install openjdk-8-jre-headless -y
if [[ $? > 0 ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu[/]* xenial main") -eq 0 ]]; then
echo deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu xenial main >> /etc/apt/sources.list.d/glennr-install-script.list || abort
openjdk_repo=true
fi
fi
elif [[ $os_codename =~ (bionic|tara|tessa|tina) ]]; then
apt-get install openjdk-8-jre-headless -y
if [[ $? > 0 ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu[/]* bionic main") -eq 0 ]]; then
echo deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu bionic main >> /etc/apt/sources.list.d/glennr-install-script.list || abort
openjdk_repo=true
fi
fi
elif [[ $os_codename == "cosmic" ]]; then
apt-get install openjdk-8-jre-headless -y
if [[ $? > 0 ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu[/]* cosmic main") -eq 0 ]]; then
echo deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu cosmic main >> /etc/apt/sources.list.d/glennr-install-script.list || abort
openjdk_repo=true
fi
fi
elif [[ $os_codename =~ (disco|eoan) ]]; then
apt-get install openjdk-8-jre-headless -y
if [[ $? > 0 ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://security.ubuntu.com/ubuntu[/]* bionic-security main universe") -eq 0 ]]; then
echo deb http://security.ubuntu.com/ubuntu bionic-security main universe >> /etc/apt/sources.list.d/glennr-install-script.list || abort
openjdk_repo=true
fi
fi
elif [[ $os_codename == "jessie" ]]; then
apt-get install -t jessie-backports openjdk-8-jre-headless ca-certificates-java -y
if [[ $? > 0 ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -P -c "^deb http://archive.debian.org/debian[/]* jessie-backports main") -eq 0 ]]; then
echo deb http://archive.debian.org/debian jessie-backports main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
apt-get update -o Acquire::Check-Valid-Until=false
apt-get install -t jessie-backports openjdk-8-jre-headless ca-certificates-java -y || abort
sed -i '/jessie-backports/d' /etc/apt/sources.list.d/glennr-install-script.list
fi
fi
elif [[ $os_codename =~ (stretch|Continuum|continuum) ]]; then
apt-get install openjdk-8-jre-headless -y
if [[ $? > 0 ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu[/]* xenial main") -eq 0 ]]; then
echo deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu xenial main >> /etc/apt/sources.list.d/glennr-install-script.list || abort
openjdk_repo=true
fi
fi
elif [[ $os_codename =~ (buster|bullseye) ]]; then
apt-get install openjdk-8-jre-headless -y
if [[ $? > 0 ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -c "^deb http://ftp.nl.debian.org/debian[/]* stretch main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian stretch main >> /etc/apt/sources.list.d/glennr-install-script.list || abort
openjdk_repo=true
fi
fi
else
header_red
echo -e "${RED}#${RESET} The script is unable to grab your OS ( or does not support it )"
echo "${ARCHITECTURE}"
echo "${os_codename}"
abort
fi
if [[ $openjdk_repo == 'true' ]]; then
if [ ! -z "$http_proxy" ]; then
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy=${http_proxy} --recv-keys EB9B1D8886F44E2A || abort
elif [ -f /etc/apt/apt.conf ]; then
apt_http_proxy=$(grep http.*Proxy /etc/apt/apt.conf | awk '{print $2}' | sed 's/[";]//g')
if [[ apt_http_proxy ]]; then
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy=${apt_http_proxy} --recv-keys EB9B1D8886F44E2A || abort
fi
else
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EB9B1D8886F44E2A || abort
fi
fi
apt-get update
apt-get install openjdk-8-jre-headless -y || abort
else
clear
header
echo -e "${WHITE_R}#${RESET} OpenJDK/Oracle JAVA 8 is already installed..."
echo ""
echo ""
echo ""
sleep 2
fi
if [[ $java_v8 -eq 1 ]]; then
java8_installed=true
fi
if [[ $java_v9 -eq 1 || $java_v10 -eq 1 || $java_v11 -eq 1 || $java_v12 -eq 1 ]]; then
unsupported_java_installed=true
fi
if [[ ( $java8_installed = 'true' && $unsupported_java_installed = 'true' ) ]]; then
clear
header_red
echo -e "${WHITE_R}#${RESET} Unsupported JAVA versions are detected, do you want to uninstall them?"
echo ""
echo ""
read -p $'\033[39m#\033[0m Do you want to proceed with uninstalling the unsupported JAVA versions? (Y/n) ' yes_no
case "$yes_no" in
[Yy]*|"")
clear
header
echo -e "${WHITE_R}#${RESET} Uninstalling unsupported JAVA versions..."
echo ""
echo ""
echo ""
sleep 3
if [[ $java_v9 -eq 1 ]]; then
apt-get purge openjdk-9-* -y || apt-get purge oracle-java9-* -y
elif [[ $java_v10 -eq 1 ]]; then
apt-get purge openjdk-10-* -y || apt-get purge oracle-java10-* -y
elif [[ $java_v11 -eq 1 ]]; then
apt-get purge openjdk-11-* -y || apt-get purge oracle-java11-* -y
elif [[ $java_v12 -eq 1 ]]; then
apt-get purge openjdk-12-* -y || apt-get purge oracle-java12-* -y
fi;;
[Nn]*) ;;
esac
fi
if [[ ${java_v8} -ge 1 ]]; then
if [ -f /etc/default/unifi ]; then
if [[ $(cat /etc/default/unifi | grep "^JAVA_HOME") ]]; then
sed -i 's/^JAVA_HOME/#JAVA_HOME/' /etc/default/unifi
fi
echo "JAVA_HOME="$( readlink -f "$( which java )" | sed "s:bin/.*$::" )"" >> /etc/default/unifi
else
if [[ $(cat /etc/environment | grep "JAVA_HOME") ]]; then
sed -i 's/^JAVA_HOME/#JAVA_HOME/' /etc/environment
fi
echo "JAVA_HOME="$( readlink -f "$( which java )" | sed "s:bin/.*$::" )"" >> /etc/environment
source /etc/environment
fi
fi
clear
header
echo -e "${WHITE_R}#${RESET} OpenJDK 8 has been installed successfully!"
echo -e "${WHITE_R}#${RESET} Installing UniFi Dependencies..."
echo ""
echo ""
echo ""
sleep 2
apt-get update
if [[ $os_codename =~ (precise|maya|trusty|qiana|rebecca|rafaela|rosa|xenial|sarah|serena|sonya|sylvia|bionic|tara|tessa|tina|cosmic|disco|eoan|stretch|Continuum|continuum|buster|bullseye) ]]; then
apt-get install binutils ca-certificates-java java-common -y || unifi_dependencies=fail
apt-get install jsvc libcommons-daemon-java -y || unifi_dependencies=fail
elif [[ $os_codename == 'jessie' ]]; then
apt-get install binutils ca-certificates-java java-common -y --force-yes || unifi_dependencies=fail
apt-get install jsvc libcommons-daemon-java -y --force-yes || unifi_dependencies=fail
fi
if [[ $unifi_dependencies == 'fail' ]]; then
if [[ $os_codename =~ (precise|maya) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -P -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu precise main universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu precise main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (trusty|qiana|rebecca|rafaela|rosa) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -P -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu trusty main universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu trusty main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (xenial|sarah|serena|sonya|sylvia) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -P -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu xenial main universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu xenial main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (bionic|tara|tessa|tina) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -P -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu bionic main universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu bionic main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "cosmic" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -P -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu cosmic main universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu cosmic main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "disco" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -P -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu disco main universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu disco main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "eoan" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -P -c "^deb http://[A-Za-z0-9]*.archive.ubuntu.com/ubuntu eoan main universe") -eq 0 ]]; then
echo deb http://nl.archive.ubuntu.com/ubuntu eoan main universe >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "jessie" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -P -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian jessie main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian jessie main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename =~ (stretch|Continuum|continuum) ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -P -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian stretch main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian stretch main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "buster" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -P -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian buster main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian buster main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
elif [[ $os_codename == "bullseye" ]]; then
if [[ $(find /etc/apt/* -name *.list | xargs cat | grep -P -c "^deb http://ftp.[A-Za-z0-9]*.debian.org/debian bullseye main") -eq 0 ]]; then
echo deb http://ftp.nl.debian.org/debian bullseye main >>/etc/apt/sources.list.d/glennr-install-script.list || abort
fi
fi
if [[ $os_codename =~ (xenial|sarah|serena|sonya|sylvia|bionic|tara|tessa|tina|cosmic|disco|eoan|stretch|Continuum|continuum|buster|bullseye) ]]; then
apt-get install binutils ca-certificates-java java-common -y || abort
apt-get install jsvc libcommons-daemon-java -y || abort
elif [[ $os_codename == 'jessie' ]]; then
apt-get install binutils ca-certificates-java java-common -y --force-yes || abort
apt-get install jsvc libcommons-daemon-java -y --force-yes || abort
fi
fi
clear
header
echo -e "${WHITE_R}#${RESET} UniFi dependencies has been installed successfully!"
echo -e "${WHITE_R}#${RESET} Installing your UniFi Network Controller ( ${WHITE_R}5.11.48${RESET} )..."
echo ""
echo ""
echo ""
sleep 2
unifi_temp="$(mktemp --tmpdir=/tmp unifi_sysvinit_all_5.11.48_XXX.deb)"
wget -O "$unifi_temp" 'https://dl.ui.com/unifi/5.11.48-0023c8f3bf/unifi_sysvinit_all.deb' || wget -O "$unifi_temp" 'https://dl.ui.com/unifi/5.11.48/unifi_sysvinit_all.deb' || abort
dpkg -i "$unifi_temp"
if [[ $debian_32_run_fix == 'true' ]]; then
clear
header
echo -e "${WHITE_R}#${RESET} Fixing broken UniFi install..."
echo ""
echo ""
echo ""
apt-get --fix-broken install -y || abort
fi
rm -rf "$unifi_temp" 2> /dev/null
service unifi start || abort
# Check if MongoDB service is enabled
if ! [[ $os_codename =~ (precise|maya|trusty|qiana|rebecca|rafaela|rosa) ]]; then
if [ ${MONGODB_VERSION::2} -ge '26' ]; then
SERVICE_MONGODB=$(systemctl is-enabled mongod)
if [ $SERVICE_MONGODB = 'disabled' ]; then
systemctl enable mongod 2>/dev/null || { echo -e "${RED}#${RESET} Failed to enable service | MongoDB"; sleep 3; }
fi
else
SERVICE_MONGODB=$(systemctl is-enabled mongodb)
if [ $SERVICE_MONGODB = 'disabled' ]; then
systemctl enable mongodb 2>/dev/null || { echo -e "${RED}#${RESET} Failed to enable service | MongoDB"; sleep 3; }
fi
fi
# Check if UniFi service is enabled
SERVICE_UNIFI=$(systemctl is-enabled unifi)
if [ $SERVICE_UNIFI = 'disabled' ]; then
systemctl enable unifi 2>/dev/null || { echo -e "${RED}#${RESET} Failed to enable service | UniFi"; sleep 3; }
fi
fi
if [[ $script_option_skip != 'true' ]]; then
clear
header
echo -e "${WHITE_R}#${RESET} Would you like to update the UniFi Network Controller via APT?"
echo ""
echo ""
read -p $'\033[39m#\033[0m Do you want the script to add the source list file? (Y/n) ' yes_no
case "$yes_no" in
[Yy]*|"")
clear
header
echo -e "${WHITE_R}#${RESET} Adding source list..."
echo ""
echo ""
echo ""
sleep 3
sed -i '/unifi/d' /etc/apt/sources.list
rm -rf /etc/apt/sources.list.d/100-ubnt-unifi.list 2> /dev/null
if [ ! -z "$http_proxy" ]; then
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy=${http_proxy} --recv-keys 06E85760C0A52C50 || abort
elif [ -f /etc/apt/apt.conf ]; then
apt_http_proxy=$(grep http.*Proxy /etc/apt/apt.conf | awk '{print $2}' | sed 's/[";]//g')
if [[ apt_http_proxy ]]; then
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy=${apt_http_proxy} --recv-keys 06E85760C0A52C50 || abort
fi
else
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 06E85760C0A52C50 || abort
fi
if [[ $? > 0 ]]; then
wget -O /etc/apt/trusted.gpg.d/unifi-repo.gpg https://dl.ui.com/unifi/unifi-repo.gpg
fi
echo 'deb http://www.ubnt.com/downloads/unifi/debian unifi-5.11 ubiquiti' | tee /etc/apt/sources.list.d/100-ubnt-unifi.list
apt-get update;;
[Nn]*) ;;
esac
fi
# Check if controller is reachable via public IP.
timeout 1 nc -zv ${PUBLIC_SERVER_IP} 8443 &> /dev/null && remote_controller=true
if [[ $(dpkg -l | grep "unifi " | grep -c "ii") -eq 1 ]]; then
clear
header
echo ""
echo -e "${GREEN}#${RESET} UniFi Network Controller 5.11.48 has been installed successfully"
if [[ ${remote_controller} = 'true' ]]; then
echo -e "${GREEN}#${RESET} Your controller address: ${WHITE_R}https://$PUBLIC_SERVER_IP:8443${RESET}"
else
echo -e "${GREEN}#${RESET} Your controller address: ${WHITE_R}https://$SERVER_IP:8443${RESET}"
fi
echo ""
echo ""
if [[ $os_codename =~ (precise|maya|trusty|qiana|rebecca|rafaela|rosa) ]]; then
service unifi status | grep -q running && echo -e "${GREEN}#${RESET} UniFi is active ( running )" || echo -e "${RED}#${RESET} UniFi failed to start... Please contact Glenn R. (AmazedMender16) on the Community Forums!"
else
systemctl is-active -q unifi && echo -e "${GREEN}#${RESET} UniFi is active ( running )" || echo -e "${RED}#${RESET} UniFi failed to start... Please contact Glenn R. (AmazedMender16) on the Community Forums!"
fi
if [[ ${port_8080_in_use} == 'true' && ${port_8443_in_use} == 'true' && ${port_8080_pid} == ${port_8443_pid} ]]; then
echo ""
echo -e "${RED}#${RESET} Port 8080 and 8443 is already in use by another process ( PID ${port_8080_pid} ), your UniFi Network Controll will most likely not start.."
echo -e "${RED}#${RESET} Disable the service that is using port 8080 and 8443 ( ${port_8080_service} ) or kill the process with the command below"
echo -e "${RED}#${RESET} sudo kill -9 ${port_8080_pid}"
echo ""
else
if [[ ${port_8080_in_use} == 'true' ]]; then
echo ""
echo -e "${RED}#${RESET} Port 8080 is already in use by another process ( PID ${port_8080_pid} ), your UniFi Network Controll will most likely not start.."
echo -e "${RED}#${RESET} Disable the service that is using port 8080 ( ${port_8080_service} ) or kill the process with the command below"
echo -e "${RED}#${RESET} sudo kill -9 ${port_8080_pid}"
fi
if [[ ${port_8443_in_use} == 'true' ]]; then
echo ""
echo -e "${RED}#${RESET} Port 8443 is already in use by another process ( PID ${port_8443_pid} ), your UniFi Network Controll will most likely not start.."
echo -e "${RED}#${RESET} Disable the service that is using port 8443 ( ${port_8443_service} ) or kill the process with the command below"
echo -e "${RED}#${RESET} sudo kill -9 ${port_8443_pid}"
fi
echo ""
fi
echo ""
echo ""
author
remove_yourself
else
clear
header_red
echo ""
echo -e "${RED}#${RESET} Failed to successfully install UniFi Network Controller 5.11.48"
echo -e "${RED}#${RESET} Please contact Glenn R. (AmazedMender16) on the Community Forums!${RESET}"
echo ""
echo ""
remove_yourself
fi