mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2026-01-28 02:09:03 +01:00
@@ -1518,7 +1518,7 @@ Debug_Log2 "Setting up repositories for CN server...,1"
|
||||
Download_Requirement() {
|
||||
for i in {1..50} ;
|
||||
do
|
||||
if [[ "$Server_OS_Version" = "22" ]] || [[ "$Server_OS_Version" = "24" ]] || [[ "$Server_OS_Version" = "9" ]] || [[ "$Server_OS_Version" = "10" ]]; then
|
||||
if [[ "$Server_OS" =~ ^(Ubuntu2204|Ubuntu2404|Ubuntu24043|CentOS9|RHEL9|AlmaLinux9|AlmaLinux10|RockyLinux9|openEuler) ]]; then
|
||||
wget -O /usr/local/requirments.txt "${Git_Content_URL}/${Branch_Name}/requirments.txt"
|
||||
else
|
||||
wget -O /usr/local/requirments.txt "${Git_Content_URL}/${Branch_Name}/requirments-old.txt"
|
||||
@@ -1540,20 +1540,29 @@ log_function_start "Pre_Install_Required_Components"
|
||||
Debug_Log2 "Installing necessary components..,3"
|
||||
log_info "Installing required system components and dependencies"
|
||||
|
||||
if [[ "$Server_OS" = "CentOS" ]] || [[ "$Server_OS" = "openEuler" ]] ; then
|
||||
if [[ "$Server_OS" =~ ^(CentOS|RHEL|AlmaLinux|RockyLinux|CloudLinux|openEuler) ]] ; then
|
||||
# System-wide update - consider making this optional for faster installs
|
||||
# Could add a --skip-system-update flag to bypass this
|
||||
yum update -y
|
||||
if [[ "$Server_OS_Version" = "7" ]] ; then
|
||||
|
||||
# Determine package manager based on specific OS
|
||||
if [[ "$Server_OS" =~ ^(CentOS7|CloudLinux7) ]] ; then
|
||||
PKG_MANAGER="yum"
|
||||
yum update -y
|
||||
else
|
||||
PKG_MANAGER="dnf"
|
||||
dnf update -y
|
||||
fi
|
||||
|
||||
if [[ "$Server_OS" =~ ^(CentOS7|CloudLinux7) ]] ; then
|
||||
yum install -y wget strace net-tools curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel gpgme-devel curl-devel git socat openssl-devel MariaDB-shared mariadb-devel yum-utils python36u python36u-pip python36u-devel zip unzip bind-utils
|
||||
Check_Return
|
||||
yum -y groupinstall development
|
||||
Check_Return
|
||||
elif [[ "$Server_OS_Version" = "8" ]] ; then
|
||||
elif [[ "$Server_OS" =~ ^(CentOS8|RHEL8|AlmaLinux8|RockyLinux8|CloudLinux8) ]] ; then
|
||||
dnf install -y libnsl zip wget strace net-tools curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel mariadb-devel curl-devel git platform-python-devel tar socat python3 zip unzip bind-utils gpgme-devel
|
||||
Check_Return
|
||||
elif [[ "$Server_OS_Version" = "9" ]] || [[ "$Server_OS_Version" = "10" ]] ; then
|
||||
# Enhanced package installation for AlmaLinux 9/10
|
||||
elif [[ "$Server_OS" =~ ^(CentOS9|RHEL9|AlmaLinux9|AlmaLinux10|RockyLinux9|openEuler) ]] ; then
|
||||
# Enhanced package installation for AlmaLinux 9/10, RHEL 9, RockyLinux 9, etc.
|
||||
dnf install -y libnsl zip wget strace net-tools curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel MariaDB-server MariaDB-client MariaDB-devel curl-devel git platform-python-devel tar socat python3 zip unzip bind-utils gpgme-devel openssl-devel boost-devel boost-program-options
|
||||
Check_Return
|
||||
|
||||
@@ -1570,12 +1579,12 @@ if [[ "$Server_OS" = "CentOS" ]] || [[ "$Server_OS" = "openEuler" ]] ; then
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
elif [[ "$Server_OS_Version" = "20" ]] || [[ "$Server_OS_Version" = "22" ]] || [[ "$Server_OS_Version" = "24" ]] ; then
|
||||
dnf install -y libnsl zip wget strace net-tools curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel mariadb-devel curl-devel git python3-devel tar socat python3 zip unzip bind-utils gpgme-devel
|
||||
elif [[ "$Server_OS" =~ ^(CentOS8|RHEL8|AlmaLinux8|RockyLinux8|CloudLinux8) ]] ; then
|
||||
dnf install -y libnsl zip wget strace net-tools curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel mariadb-devel curl-devel git platform-python-devel tar socat python3 zip unzip bind-utils gpgme-devel
|
||||
Check_Return
|
||||
fi
|
||||
ln -s /usr/bin/pip3 /usr/bin/pip
|
||||
else
|
||||
elif [[ "$Server_OS" =~ ^(Ubuntu|Debian) ]] ; then
|
||||
# Update package lists (required for installations)
|
||||
apt update -y
|
||||
# System-wide upgrade - consider making this optional for faster installs
|
||||
@@ -1602,7 +1611,7 @@ else
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y dnsutils net-tools htop telnet libcurl4-gnutls-dev libgnutls28-dev libgcrypt20-dev libattr1 libattr1-dev liblzma-dev libgpgme-dev libmariadb-dev-compat libmariadb-dev libcurl4-gnutls-dev libssl-dev nghttp2 libnghttp2-dev idn2 libidn2-dev librtmp-dev libpsl-dev nettle-dev libgnutls28-dev libldap2-dev libgssapi-krb5-2 libk5crypto3 libkrb5-dev libcom-err2 libldap2-dev virtualenv git socat vim unzip zip
|
||||
Check_Return
|
||||
fi
|
||||
elif [[ "$Server_OS_Version" = "22" ]] || [[ "$Server_OS_Version" = "24" ]] ; then
|
||||
elif [[ "$Server_OS" =~ ^(Ubuntu2204|Ubuntu2404|Ubuntu24043) ]] ; then
|
||||
# Ubuntu 22.04/24.04 - use newer package names
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y dnsutils net-tools htop telnet libcurl4-gnutls-dev libgnutls28-dev libgcrypt20-dev libattr1 libattr1-dev liblzma-dev libgpgme-dev libcurl4-gnutls-dev libssl-dev nghttp2 libnghttp2-dev idn2 libidn2-dev librtmp-dev libpsl-dev nettle-dev libgnutls28-dev libldap2-dev libgssapi-krb5-2 libk5crypto3 libkrb5-dev libcom-err2 libldap2-dev virtualenv git socat vim unzip zip libmariadb-dev-compat libmariadb-dev
|
||||
Check_Return
|
||||
@@ -1622,6 +1631,29 @@ else
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y locales
|
||||
locale-gen "en_US.UTF-8"
|
||||
update-locale LC_ALL="en_US.UTF-8"
|
||||
else
|
||||
# Unknown OS - try to detect package manager and install basic packages
|
||||
echo -e "Unknown OS detected: $Server_OS"
|
||||
echo -e "Attempting to install basic packages..."
|
||||
|
||||
# Try different package managers
|
||||
if command -v dnf >/dev/null 2>&1; then
|
||||
echo -e "Using dnf package manager..."
|
||||
dnf update -y
|
||||
dnf install -y wget curl git python3 python3-pip
|
||||
elif command -v yum >/dev/null 2>&1; then
|
||||
echo -e "Using yum package manager..."
|
||||
yum update -y
|
||||
yum install -y wget curl git python3 python3-pip
|
||||
elif command -v apt >/dev/null 2>&1; then
|
||||
echo -e "Using apt package manager..."
|
||||
apt update -y
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y wget curl git python3 python3-pip
|
||||
else
|
||||
echo -e "ERROR: No supported package manager found!"
|
||||
echo -e "Please install wget, curl, git, and python3 manually before continuing."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
Debug_Log2 "Installing required virtual environment,3"
|
||||
@@ -1631,10 +1663,10 @@ export LC_ALL=en_US.UTF-8
|
||||
#need to set lang to address some pip module installation issue.
|
||||
|
||||
# Install virtualenv - handle Ubuntu 24.04's externally-managed-environment policy
|
||||
if [[ "$Server_OS" = "Ubuntu" ]]; then
|
||||
if [[ "$Server_OS_Version" = "24" ]]; then
|
||||
if [[ "$Server_OS" =~ ^(Ubuntu|Debian) ]]; then
|
||||
if [[ "$Server_OS" =~ ^(Ubuntu2404|Ubuntu24043) ]]; then
|
||||
# Ubuntu 24.04 has python3-venv by default, no need to install virtualenv
|
||||
echo -e "Ubuntu 24.04 detected - using built-in python3-venv"
|
||||
echo -e "Ubuntu 24.04/24.04.3 detected - using built-in python3-venv"
|
||||
else
|
||||
# For older Ubuntu versions, install virtualenv via apt
|
||||
Retry_Command "DEBIAN_FRONTEND=noninteractive apt-get update"
|
||||
@@ -1652,14 +1684,14 @@ echo -e "Creating CyberPanel virtual environment..."
|
||||
# First ensure the directory exists
|
||||
mkdir -p /usr/local/CyberPanel
|
||||
|
||||
if [[ "$Server_OS" = "Ubuntu" ]] && ([[ "$Server_OS_Version" = "22" ]] || [[ "$Server_OS_Version" = "24" ]]) ; then
|
||||
echo -e "Ubuntu 22.04/24.04 detected, using python3 -m venv..."
|
||||
if [[ "$Server_OS" =~ ^(Ubuntu2204|Ubuntu2404|Ubuntu24043) ]] ; then
|
||||
echo -e "Ubuntu 22.04/24.04/24.04.3 detected, using python3 -m venv..."
|
||||
if python3 -m venv /usr/local/CyberPanel-venv 2>&1; then
|
||||
echo -e "Virtual environment created successfully"
|
||||
else
|
||||
echo -e "python3 -m venv failed, trying virtualenv..."
|
||||
# For Ubuntu 24.04, python3-venv should work, but if not, try apt install
|
||||
if [[ "$Server_OS_Version" = "24" ]]; then
|
||||
if [[ "$Server_OS" =~ ^(Ubuntu2404|Ubuntu24043) ]]; then
|
||||
Retry_Command "DEBIAN_FRONTEND=noninteractive apt-get install -y python3-venv"
|
||||
else
|
||||
# For Ubuntu 22.04, install virtualenv via apt
|
||||
@@ -2447,8 +2479,8 @@ echo -e "Creating CyberCP virtual environment..."
|
||||
# First ensure the directory exists
|
||||
mkdir -p /usr/local/CyberCP
|
||||
|
||||
if [[ "$Server_OS" = "Ubuntu" ]] && ([[ "$Server_OS_Version" = "22" ]] || [[ "$Server_OS_Version" = "24" ]]) ; then
|
||||
echo -e "Ubuntu 22.04/24.04 detected, using python3 -m venv..."
|
||||
if [[ "$Server_OS" =~ ^(Ubuntu2004|Ubuntu2010|Ubuntu2204|Ubuntu2404|Ubuntu24043) ]] ; then
|
||||
echo -e "Ubuntu 20.04/20.10/22.04/24.04/24.04.3 detected, using python3 -m venv..."
|
||||
if python3 -m venv /usr/local/CyberCP 2>&1; then
|
||||
echo -e "Virtual environment created successfully"
|
||||
else
|
||||
@@ -2457,8 +2489,8 @@ if [[ "$Server_OS" = "Ubuntu" ]] && ([[ "$Server_OS_Version" = "22" ]] || [[ "$S
|
||||
pip3 install --upgrade virtualenv
|
||||
virtualenv -p /usr/bin/python3 /usr/local/CyberCP
|
||||
fi
|
||||
elif [[ "$Server_OS" = "CentOS" ]] && ([[ "$Server_OS_Version" = "9" ]] || [[ "$Server_OS_Version" = "10" ]]) ; then
|
||||
echo -e "AlmaLinux/Rocky Linux 9/10 detected, using python3 -m venv..."
|
||||
elif [[ "$Server_OS" =~ ^(CentOS9|RHEL9|AlmaLinux9|AlmaLinux10|RockyLinux9|openEuler) ]] ; then
|
||||
echo -e "AlmaLinux/Rocky Linux 9/10, RHEL 9, CentOS 9, OpenEuler detected, using python3 -m venv..."
|
||||
if python3 -m venv /usr/local/CyberCP 2>&1; then
|
||||
echo -e "Virtual environment created successfully"
|
||||
else
|
||||
@@ -2485,7 +2517,7 @@ if [[ ! -L /usr/local/CyberPanel ]] && [[ ! -d /usr/local/CyberPanel ]]; then
|
||||
ln -sf /usr/local/CyberCP /usr/local/CyberPanel
|
||||
fi
|
||||
|
||||
if [[ "$Server_OS" = "Ubuntu" ]] && [[ "$Server_OS_Version" = "20" ]] ; then
|
||||
if [[ "$Server_OS" = "Ubuntu2004" ]] ; then
|
||||
# shellcheck disable=SC1091
|
||||
. /usr/local/CyberCP/bin/activate
|
||||
Check_Return
|
||||
@@ -2508,11 +2540,11 @@ else
|
||||
echo -e "Django is properly installed"
|
||||
fi
|
||||
|
||||
if [[ "$Server_OS" = "Ubuntu" ]] && ([[ "$Server_OS_Version" = "22" ]] || [[ "$Server_OS_Version" = "24" ]]) ; then
|
||||
if [[ "$Server_OS" =~ ^(Ubuntu2204|Ubuntu2404|Ubuntu24043) ]] ; then
|
||||
# Ubuntu 24.04 ships with Python 3.12, but using 3.10 for compatibility with CyberPanel
|
||||
cp /usr/bin/python3.10 /usr/local/CyberCP/bin/python3
|
||||
else
|
||||
if [[ "$Server_OS_Version" = "9" ]] || [[ "$Server_OS_Version" = "10" ]] || [[ "$Server_OS_Version" = "8" ]] || [[ "$Server_OS_Version" = "20" ]] || [[ "$Server_OS_Version" = "24" ]]; then
|
||||
if [[ "$Server_OS" =~ ^(CentOS8|CentOS9|RHEL8|RHEL9|AlmaLinux8|AlmaLinux9|AlmaLinux10|RockyLinux8|RockyLinux9|Ubuntu2004|Ubuntu2204|Ubuntu2404|Ubuntu24043|openEuler) ]]; then
|
||||
echo "PYTHONHOME=/usr" > /usr/local/lscp/conf/pythonenv.conf
|
||||
else
|
||||
# Uncomment and use the following lines if necessary for other OS versions
|
||||
|
||||
Reference in New Issue
Block a user