mirror of
https://github.com/techahold/Meshcentral-Installer.git
synced 2026-05-21 14:02:15 +00:00
Update install.sh
This commit is contained in:
84
install.sh
84
install.sh
@@ -1,17 +1,85 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
if ! which lsb_release >/dev/null
|
# Get username
|
||||||
then
|
USER=$(whoami)
|
||||||
sudo apt-get install -y lsb-core > null
|
|
||||||
|
ARCH=$(uname -m)
|
||||||
|
|
||||||
|
# Identify OS
|
||||||
|
if [ -f /etc/os-release ]; then
|
||||||
|
# freedesktop.org and systemd
|
||||||
|
. /etc/os-release
|
||||||
|
OS=$NAME
|
||||||
|
VER=$VERSION_ID
|
||||||
|
UPSTREAM_ID=${ID_LIKE,,}
|
||||||
|
|
||||||
|
# Fallback to ID_LIKE if ID was not 'ubuntu' or 'debian'
|
||||||
|
if [ "${UPSTREAM_ID}" != "debian" ] && [ "${UPSTREAM_ID}" != "ubuntu" ]; then
|
||||||
|
UPSTREAM_ID="$(echo ${ID_LIKE,,} | sed s/\"//g | cut -d' ' -f1)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sudo apt-get install -y curl sudo > null
|
elif type lsb_release >/dev/null 2>&1; then
|
||||||
|
# linuxbase.org
|
||||||
|
OS=$(lsb_release -si)
|
||||||
|
VER=$(lsb_release -sr)
|
||||||
|
elif [ -f /etc/lsb-release ]; then
|
||||||
|
# For some versions of Debian/Ubuntu without lsb_release command
|
||||||
|
. /etc/lsb-release
|
||||||
|
OS=$DISTRIB_ID
|
||||||
|
VER=$DISTRIB_RELEASE
|
||||||
|
elif [ -f /etc/debian_version ]; then
|
||||||
|
# Older Debian, Ubuntu, etc.
|
||||||
|
OS=Debian
|
||||||
|
VER=$(cat /etc/debian_version)
|
||||||
|
elif [ -f /etc/SuSE-release ]; then
|
||||||
|
# Older SuSE, etc.
|
||||||
|
OS=SuSE
|
||||||
|
VER=$(cat /etc/SuSE-release)
|
||||||
|
elif [ -f /etc/redhat-release ]; then
|
||||||
|
# Older Red Hat, CentOS, etc.
|
||||||
|
OS=RedHat
|
||||||
|
VER=$(cat /etc/redhat-release)
|
||||||
|
else
|
||||||
|
# Fall back to uname, e.g. "Linux <version>", also works for BSD, etc.
|
||||||
|
OS=$(uname -s)
|
||||||
|
VER=$(uname -r)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Output debugging info if $DEBUG set
|
||||||
|
if [ "$DEBUG" = "true" ]; then
|
||||||
|
echo "OS: $OS"
|
||||||
|
echo "VER: $VER"
|
||||||
|
echo "UPSTREAM_ID: $UPSTREAM_ID"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Setup prereqs for server
|
||||||
|
# Common named prereqs
|
||||||
|
PREREQ="curl sudo gcc g++ make nodejs"
|
||||||
|
PREREQDEB="dnsutils ufw"
|
||||||
|
PREREQRPM="bind-utils"
|
||||||
|
PREREQARCH="bind"
|
||||||
|
|
||||||
|
echo "Installing prerequisites"
|
||||||
|
if [ "${ID}" = "debian" ] || [ "$OS" = "Ubuntu" ] || [ "$OS" = "Debian" ] || [ "${UPSTREAM_ID}" = "ubuntu" ] || [ "${UPSTREAM_ID}" = "debian" ]; then
|
||||||
|
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y ${PREREQ} ${PREREQDEB} # git
|
||||||
|
elif [ "$OS" = "CentOS" ] || [ "$OS" = "RedHat" ] || [ "${UPSTREAM_ID}" = "rhel" ] || [ "${OS}" = "Almalinux" ] || [ "${UPSTREAM_ID}" = "Rocky*" ] || [ "${UPSTREAM_ID}" = "suse" ]; then
|
||||||
|
sudo yum update -y
|
||||||
|
sudo yum install -y ${PREREQ} ${PREREQRPM} # git
|
||||||
|
elif [ "${ID}" = "arch" ] || [ "${UPSTREAM_ID}" = "arch" ]; then
|
||||||
|
sudo pacman -Syu
|
||||||
|
sudo pacman -S ${PREREQ} ${PREREQARCH}
|
||||||
|
else
|
||||||
|
echo "Unsupported OS"
|
||||||
|
# Here you could ask the user for permission to try and install anyway
|
||||||
|
# If they say yes, then do the install
|
||||||
|
# If they say no, exit the script
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Installing MeshCentral"
|
echo "Installing MeshCentral"
|
||||||
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
|
|
||||||
sudo apt update > null
|
|
||||||
sudo apt install -y gcc g++ make
|
|
||||||
sudo apt install -y nodejs
|
|
||||||
sudo npm install -g npm
|
sudo npm install -g npm
|
||||||
|
|
||||||
sudo mkdir -p /opt/meshcentral/meshcentral-data
|
sudo mkdir -p /opt/meshcentral/meshcentral-data
|
||||||
|
|||||||
Reference in New Issue
Block a user