103 lines
3.2 KiB
Bash
103 lines
3.2 KiB
Bash
#!/bin/bash
|
|
# Author: yeho <lj2007331 AT gmail.com>
|
|
# BLOG: https://linuxeye.com
|
|
#
|
|
# Notes: ServerStack for Debian 9-13 and Ubuntu 16-26 (Ubuntu/Debian only)
|
|
#
|
|
# Project home page:
|
|
# https://oneinstack.com
|
|
# https://github.com/oneinstack/oneinstack
|
|
|
|
# Only Debian/Ubuntu (apt-get based) systems are supported.
|
|
if [ -e "/usr/bin/apt-get" ]; then
|
|
PM=apt-get
|
|
if ! command -v lsb_release >/dev/null 2>&1; then
|
|
echo "${CMSG}Updating apt package lists to install lsb-release...${CEND}"
|
|
apt-get -y update 2>&1 | tee -a ${oneinstack_dir}/runtime/install.log
|
|
apt-get -y install lsb-release
|
|
clear
|
|
fi
|
|
else
|
|
echo "${CFAILURE}Does not support this OS, Please install Debian 9+ or Ubuntu 16+ ${CEND}"
|
|
kill -9 $$; exit 1;
|
|
fi
|
|
|
|
# Get OS Version
|
|
Platform=$(lsb_release -is 2>/dev/null)
|
|
ARCH=$(arch)
|
|
if [[ "${Platform}" =~ ^Debian$|^Deepin$|^Uos$|^Kali$ ]]; then
|
|
Family=debian
|
|
Debian_ver=$(lsb_release -rs 2>/dev/null | awk -F. '{print $1}' | awk '{print $1}')
|
|
[[ "${Platform}" =~ ^Deepin$|^Uos$ ]] && [[ "${Debian_ver}" =~ ^20$ ]] && Debian_ver=10
|
|
[[ "${Platform}" =~ ^Kali$ ]] && [[ "${Debian_ver}" =~ ^202 ]] && Debian_ver=10
|
|
elif [[ "${Platform}" =~ ^Ubuntu$|^LinuxMint$|^elementary$ ]]; then
|
|
Family=ubuntu
|
|
Ubuntu_ver=$(lsb_release -rs 2>/dev/null | awk -F. '{print $1}' | awk '{print $1}')
|
|
if [[ "${Platform}" =~ ^LinuxMint$ ]]; then
|
|
[[ "${Ubuntu_ver}" =~ ^18$ ]] && Ubuntu_ver=16
|
|
[[ "${Ubuntu_ver}" =~ ^19$ ]] && Ubuntu_ver=18
|
|
[[ "${Ubuntu_ver}" =~ ^20$ ]] && Ubuntu_ver=20
|
|
fi
|
|
if [[ "${Platform}" =~ ^elementary$ ]]; then
|
|
[[ "${Ubuntu_ver}" =~ ^5$ ]] && Ubuntu_ver=18
|
|
[[ "${Ubuntu_ver}" =~ ^6$ ]] && Ubuntu_ver=20
|
|
fi
|
|
else
|
|
echo "${CFAILURE}Does not support this OS: ${Platform:-unknown}. Only Debian 9+ and Ubuntu 16+ are supported. ${CEND}"
|
|
kill -9 $$; exit 1;
|
|
fi
|
|
|
|
# Check OS Version
|
|
if [ ${Debian_ver} -lt 9 >/dev/null 2>&1 ] || [ ${Ubuntu_ver} -lt 16 >/dev/null 2>&1 ]; then
|
|
echo "${CFAILURE}Does not support this OS, Please install Debian 9+ or Ubuntu 16+ ${CEND}"
|
|
kill -9 $$; exit 1;
|
|
fi
|
|
|
|
command -v gcc > /dev/null 2>&1 || $PM -y install gcc
|
|
gcc_ver=$(gcc -dumpversion | awk -F. '{print $1}')
|
|
|
|
[ ${gcc_ver} -lt 5 >/dev/null 2>&1 ] && redis_ver=${redis_oldver}
|
|
|
|
if uname -m | grep -Eqi "arm|aarch64"; then
|
|
armplatform="y"
|
|
if uname -m | grep -Eqi "armv7"; then
|
|
TARGET_ARCH="armv7"
|
|
elif uname -m | grep -Eqi "armv8"; then
|
|
TARGET_ARCH="arm64"
|
|
elif uname -m | grep -Eqi "aarch64"; then
|
|
TARGET_ARCH="aarch64"
|
|
else
|
|
TARGET_ARCH="unknown"
|
|
fi
|
|
fi
|
|
|
|
if [ "$(uname -r | awk -F- '{print $3}' 2>/dev/null)" == "Microsoft" ]; then
|
|
Wsl=true
|
|
fi
|
|
|
|
if [ "$(getconf WORD_BIT)" == "32" ] && [ "$(getconf LONG_BIT)" == "64" ]; then
|
|
if [ "${TARGET_ARCH}" == 'aarch64' ]; then
|
|
SYS_ARCH=arm64
|
|
SYS_ARCH_i=aarch64
|
|
SYS_ARCH_n=arm64
|
|
else
|
|
SYS_ARCH=amd64
|
|
SYS_ARCH_i=x86-64 #ioncube
|
|
SYS_ARCH_n=x64 #nodejs
|
|
fi
|
|
else
|
|
echo "${CWARNING}32-bit OS are not supported! ${CEND}"
|
|
kill -9 $$; exit 1;
|
|
fi
|
|
|
|
THREAD=$(grep 'processor' /proc/cpuinfo | sort -u | wc -l)
|
|
|
|
# sslLibVer selection for binary tarballs
|
|
if [ ${Debian_ver} -lt 9 >/dev/null 2>&1 ]; then
|
|
sslLibVer=ssl100
|
|
elif [ ${Debian_ver} -ge 9 >/dev/null 2>&1 ] || [ ${Ubuntu_ver} -ge 16 >/dev/null 2>&1 ]; then
|
|
sslLibVer=ssl102
|
|
else
|
|
sslLibVer=unknown
|
|
fi
|