mdserver-web/scripts/install/debian.sh

291 lines
8.8 KiB
Bash
Raw Permalink Normal View History

2022-06-10 06:56:07 -04:00
#!/bin/bash
2023-11-08 12:32:59 -05:00
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/opt/homebrew/bin
2022-06-14 03:14:31 -04:00
export PATH
2022-10-29 00:18:07 -04:00
export LANG=en_US.UTF-8
2022-12-09 12:21:38 -05:00
export DEBIAN_FRONTEND=noninteractive
2022-06-10 06:56:07 -04:00
2024-09-28 10:22:13 -04:00
function version_gt() { test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" != "$1"; }
function version_le() { test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" == "$1"; }
function version_lt() { test "$(echo "$@" | tr " " "\n" | sort -rV | head -n 1)" != "$1"; }
function version_ge() { test "$(echo "$@" | tr " " "\n" | sort -rV | head -n 1)" == "$1"; }
2022-12-13 00:08:48 -05:00
VERSION_ID=`cat /etc/*-release | grep VERSION_ID | awk -F = '{print $2}' | awk -F "\"" '{print $2}'`
cn=$(curl -fsSL -m 10 http://ipinfo.io/json | grep "\"country\": \"CN\"")
ln -sf /bin/bash /bin/sh
2022-12-10 01:40:06 -05:00
2022-11-01 06:18:27 -04:00
__GET_BIT=`getconf LONG_BIT`
if [ "$__GET_BIT" == "32" ];then
# install rust | 32bit need
2022-11-01 08:00:06 -04:00
# curl https://sh.rustup.rs -sSf | sh
apt install -y rustc
2022-11-01 06:18:27 -04:00
fi
2023-09-06 05:48:40 -04:00
if [ "$VERSION_ID" == "10" ];then
apt install -y rustc
fi
2024-10-01 05:37:39 -04:00
# synchronize server
apt install chrony -y
2022-10-29 12:27:10 -04:00
# synchronize time first
2024-10-01 05:37:39 -04:00
apt install ntpdate -y
# NTPHOST='time.nist.gov'
# if [ ! -z "$cn" ];then
# NTPHOST='ntp1.aliyun.com'
# fi
# ntpdate ntp1.aliyun.com | logger -t NTP
# ntpdate $NTPHOST | logger -t NTP
2022-12-13 00:08:48 -05:00
2024-06-07 06:52:19 -04:00
apt install -y net-tools
2023-02-01 00:09:28 -05:00
SSH_PORT=`netstat -ntpl|grep sshd|grep -v grep | sed -n "1,1p" | awk '{print $4}' | awk -F : '{print $2}'`
2023-08-05 01:36:13 -04:00
if [ "$SSH_PORT" == "" ];then
SSH_PORT_LINE=`cat /etc/ssh/sshd_config | grep "Port \d*" | tail -1`
SSH_PORT=${SSH_PORT_LINE/"Port "/""}
fi
2023-02-01 00:09:28 -05:00
echo "SSH PORT:${SSH_PORT}"
2023-08-05 01:36:13 -04:00
2023-02-02 02:23:35 -05:00
# choose lang cmd
# dpkg-reconfigure --frontend=noninteractive locales
2024-07-17 01:09:20 -04:00
# dpkg-reconfigure locales
2022-12-13 00:08:48 -05:00
if [ ! -f /usr/sbin/locale-gen ];then
apt install -y locales
sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen
locale-gen en_US.UTF-8
2024-07-17 00:26:04 -04:00
locale-gen zh_CN.UTF-8
2023-02-02 02:23:35 -05:00
localedef -v -c -i en_US -f UTF-8 en_US.UTF-8 > /dev/null 2>&1
2022-12-13 00:08:48 -05:00
update-locale LANG=en_US.UTF-8
else
locale-gen en_US.UTF-8
2024-07-17 00:26:04 -04:00
locale-gen zh_CN.UTF-8
2023-02-02 02:23:35 -05:00
localedef -v -c -i en_US -f UTF-8 en_US.UTF-8 > /dev/null 2>&1
2022-12-12 11:08:15 -05:00
fi
2024-06-15 10:51:04 -04:00
apt update -y
2024-06-15 11:25:10 -04:00
apt autoremove -y
2023-06-25 23:57:07 -04:00
apt install -y wget curl lsof unzip tar cron expect locate lrzsz
2024-12-13 23:47:20 -05:00
apt install -y xz-utils
2023-11-07 03:36:16 -05:00
apt install -y rar
apt install -y unrar
2024-05-08 00:28:50 -04:00
apt install -y pv
2024-05-20 02:11:27 -04:00
apt install -y bc
2024-11-30 03:57:58 -05:00
apt install -y python3-pip
apt install -y python3-dev
apt install -y python3-venv
2024-06-15 10:41:29 -04:00
apt install -y libncurses5
apt install -y libncurses5-dev
2024-07-24 13:27:44 -04:00
apt install -y bzip2
apt install -y p7zip-full
2023-02-11 02:24:17 -05:00
2024-12-17 02:50:31 -05:00
apt install -y libnuma1
apt install -y libaio1
2026-01-15 00:46:14 -05:00
apt install -y libaio-dev
2024-12-17 02:50:31 -05:00
apt install -y libmecab2
2025-09-12 02:00:27 -04:00
apt install -y libmm-dev
2024-12-17 02:50:31 -05:00
2024-12-20 11:41:39 -05:00
apt install -y dnsutils
2024-12-30 11:34:08 -05:00
apt install -y apache2-utils
2025-01-24 04:05:31 -05:00
apt install -y numactl
2025-08-01 07:27:48 -04:00
apt install -y xxd
2026-01-31 04:41:18 -05:00
apt install -y sshpass
2026-04-15 05:02:25 -04:00
apt install -y libbrotli
2024-12-20 11:41:39 -05:00
2024-09-28 10:22:13 -04:00
P_VER=`python3 -V | awk '{print $2}'`
if version_ge "$P_VER" "3.11.0" ;then
echo -e "\e[1;31mapt install python3.12-venv\e[0m"
2024-09-28 10:23:28 -04:00
apt install -y python3.12-venv
2024-09-28 10:22:13 -04:00
fi
2023-02-14 09:22:06 -05:00
if [ -f /usr/sbin/ufw ];then
# look
# ufw status
ufw enable
if [ "$SSH_PORT" != "" ];then
ufw allow $SSH_PORT/tcp
else
ufw allow 22/tcp
fi
ufw allow 80/tcp
ufw allow 443/tcp
2024-04-23 23:32:41 -04:00
ufw allow 443/udp
2023-09-26 06:00:47 -04:00
# ufw allow 888/tcp
2023-02-14 09:22:06 -05:00
fi
if [ ! -f /usr/sbin/ufw ];then
2023-01-18 04:27:33 -05:00
# look
# firewall-cmd --list-all
2023-02-14 08:58:30 -05:00
# apt remove -y firewalld
2023-01-18 04:27:33 -05:00
2022-06-12 11:21:19 -04:00
apt install -y firewalld
systemctl enable firewalld
2023-01-18 04:27:33 -05:00
#取消服务锁定
systemctl unmask firewalld
2023-02-14 08:58:30 -05:00
2022-06-12 11:21:19 -04:00
2023-02-01 00:20:53 -05:00
if [ "$SSH_PORT" != "" ];then
firewall-cmd --permanent --zone=public --add-port=${SSH_PORT}/tcp
else
firewall-cmd --permanent --zone=public --add-port=22/tcp
fi
2022-06-12 11:21:19 -04:00
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --permanent --zone=public --add-port=443/tcp
2024-04-16 11:41:06 -04:00
firewall-cmd --permanent --zone=public --add-port=443/udp
2023-09-26 06:00:47 -04:00
# firewall-cmd --permanent --zone=public --add-port=888/tcp
2022-06-13 04:13:20 -04:00
2023-02-14 08:58:30 -05:00
systemctl start firewalld
2022-06-13 04:13:20 -04:00
# fix:debian10 firewalld faq
# https://kawsing.gitbook.io/opensystem/andoid-shou-ji/untitled/fang-huo-qiang#debian-10-firewalld-0.6.3-error-commandfailed-usrsbinip6tablesrestorewn-failed-ip6tablesrestore-v1.8
2022-06-15 03:42:13 -04:00
sed -i 's#IndividualCalls=no#IndividualCalls=yes#g' /etc/firewalld/firewalld.conf
firewall-cmd --reload
2023-01-18 04:27:33 -05:00
fi
2022-06-10 11:04:42 -04:00
2022-12-16 20:58:56 -05:00
#fix zlib1g-dev fail
echo -e "\e[0;32mfix zlib1g-dev install question start\e[0m"
Install_TmpFile=/tmp/debian-fix-zlib1g-dev.txt
apt install -y zlib1g-dev > ${Install_TmpFile}
if [ "$?" != "0" ];then
ZLIB1G_BASE_VER=$(cat ${Install_TmpFile} | grep zlib1g | awk -F "=" '{print $2}' | awk -F ")" '{print $1}')
ZLIB1G_BASE_VER=`echo ${ZLIB1G_BASE_VER} | sed "s/^[ \s]\{1,\}//g;s/[ \s]\{1,\}$//g"`
# echo "1${ZLIB1G_BASE_VER}1"
echo -e "\e[1;31mapt install zlib1g=${ZLIB1G_BASE_VER} zlib1g-dev\e[0m"
echo "Y" | apt install zlib1g=${ZLIB1G_BASE_VER} zlib1g-dev
fi
rm -rf ${Install_TmpFile}
echo -e "\e[0;32mfix zlib1g-dev install question end\e[0m"
#fix libunwind-dev fail
echo -e "\e[0;32mfix libunwind-dev install question start\e[0m"
Install_TmpFile=/tmp/debian-fix-libunwind-dev.txt
apt install -y libunwind-dev > ${Install_TmpFile}
if [ "$?" != "0" ];then
liblzma5_BASE_VER=$(cat ${Install_TmpFile} | grep liblzma-dev | awk -F "=" '{print $2}' | awk -F ")" '{print $1}')
liblzma5_BASE_VER=`echo ${liblzma5_BASE_VER} | sed "s/^[ \s]\{1,\}//g;s/[ \s]\{1,\}$//g"`
echo -e "\e[1;31mapt install liblzma5=${liblzma5_BASE_VER} libunwind-dev\e[0m"
echo "Y" | apt install liblzma5=${liblzma5_BASE_VER} libunwind-dev
fi
rm -rf ${Install_TmpFile}
echo -e "\e[0;32mfix libunwind-dev install question end\e[0m"
apt install -y libvpx-dev
apt install -y libxpm-dev
apt install -y libwebp-dev
2023-10-30 10:43:18 -04:00
apt install -y libfreetype6
2022-12-16 20:58:56 -05:00
apt install -y libfreetype6-dev
2023-10-30 10:43:18 -04:00
apt install -y libjpeg-dev
apt install -y libpng-dev
2022-12-16 20:58:56 -05:00
localedef -i en_US -f UTF-8 en_US.UTF-8
if [ "$VERSION_ID" == "9" ];then
sed "s/flask==2.0.3/flask==1.1.1/g" -i /www/server/mdserver-web/requirements.txt
sed "s/cryptography==3.3.2/cryptography==2.5/g" -i /www/server/mdserver-web/requirements.txt
sed "s/configparser==5.2.0/configparser==4.0.2/g" -i /www/server/mdserver-web/requirements.txt
sed "s/flask-socketio==5.2.0/flask-socketio==4.2.0/g" -i /www/server/mdserver-web/requirements.txt
sed "s/python-engineio==4.3.2/python-engineio==3.9.0/g" -i /www/server/mdserver-web/requirements.txt
# pip3 install -r /www/server/mdserver-web/requirements.txt
2022-12-12 11:08:15 -05:00
fi
2022-12-09 13:54:10 -05:00
2022-12-13 00:08:48 -05:00
apt install -y build-essential
2022-12-12 11:08:15 -05:00
apt install -y devscripts
2022-12-13 00:08:48 -05:00
2022-12-12 11:08:15 -05:00
apt install -y autoconf
apt install -y gcc
2023-07-11 04:11:20 -04:00
apt install -y patchelf
2022-12-12 11:08:15 -05:00
apt install -y libffi-dev
2024-07-18 11:06:48 -04:00
apt install -y cmake
apt install -y automake make
2022-12-12 11:08:15 -05:00
apt install -y webp scons
apt install -y libwebp-dev
apt install -y lzma lzma-dev
apt install -y libunwind-dev
apt install -y libpcre3 libpcre3-dev
apt install -y openssl
apt install -y libssl-dev
2023-08-25 03:26:23 -04:00
apt install -y libargon2-dev
2022-12-12 11:08:15 -05:00
apt install -y libmemcached-dev
apt install -y libsasl2-dev
2025-02-15 20:15:45 -05:00
apt install -y imagemagick
apt install -y libmagickcore-dev
2022-12-12 11:08:15 -05:00
apt install -y libmagickwand-dev
apt install -y libxml2 libxml2-dev libbz2-dev libmcrypt-dev libpspell-dev librecode-dev
apt install -y libgmp-dev libgmp3-dev libreadline-dev libxpm-dev
2024-10-02 02:25:14 -04:00
apt install -y libpq-dev
2023-11-07 06:41:29 -05:00
apt install -y dia
apt install -y pkg-config
2022-12-12 11:08:15 -05:00
apt install -y zlib1g-dev
2023-10-30 10:43:18 -04:00
2024-06-15 10:41:29 -04:00
apt install -y libevent-dev libldap2-dev
2022-12-12 11:08:15 -05:00
apt install -y libzip-dev
apt install -y libicu-dev
2023-11-03 07:21:50 -04:00
apt install -y libyaml-dev
2022-12-12 11:08:15 -05:00
2023-09-29 10:54:14 -04:00
apt install -y xsltproc
2022-12-12 11:08:15 -05:00
apt install -y libcurl4-openssl-dev
apt install -y curl libcurl4-gnutls-dev
2022-12-13 00:08:48 -05:00
2025-01-04 03:09:04 -05:00
# https://www.php.net/manual/zh/mysql-xdevapi.installation.php
2025-01-04 03:10:44 -05:00
apt install -y libprotobuf-dev
2025-01-04 03:09:04 -05:00
apt install -y protobuf-compiler
2025-01-04 03:10:44 -05:00
apt install -y libboost-dev
2025-01-04 03:09:04 -05:00
apt install -y liblz4-tool
apt install -y zstd
2026-04-03 01:13:59 -04:00
apt install -y libzstd-dev
2025-01-04 03:09:04 -05:00
2022-12-13 00:08:48 -05:00
# Disabled due to dependency issues
#apt install --ignore-missing -y autoconf automake cmake curl dia gcc imagemagick libbz2-dev libcurl4-gnutls-dev\
# libcurl4-openssl-dev libevent-dev libffi-dev libfreetype6 libfreetype6-dev libgmp-dev libgmp3-dev libicu-dev \
# libjpeg-dev libldap2-dev libmagickwand-dev libmcrypt-dev libmemcached-dev libncurses5-dev \
# libpcre3 libpcre3-dev libpng-dev libpspell-dev libreadline-dev librecode-dev libsasl2-dev libssl-dev \
# libunwind-dev libwebp-dev libxml2 libxml2-dev libxpm-dev libzip-dev lzma lzma-dev make net-tools openssl \
# pkg-config python3-dev scons webp zlib1g-dev
2022-12-16 20:58:56 -05:00
if [ "$VERSION_ID" != "9" ]; then
2022-12-13 00:08:48 -05:00
apt install -y libjpeg62-turbo-dev
fi
2022-11-03 12:25:47 -04:00
#https://blog.csdn.net/qq_36228377/article/details/123154344
# ln -s /usr/include/x86_64-linux-gnu/curl /usr/include/curl
if [ ! -d /usr/include/curl ];then
2023-05-05 04:59:47 -04:00
SYS_ARCH=`arch`
if [ -f /usr/include/x86_64-linux-gnu/curl ];then
ln -s /usr/include/x86_64-linux-gnu/curl /usr/include/curl
else
ln -s /usr/include/${SYS_ARCH}-linux-gnu/curl /usr/include/curl
fi
2022-11-03 12:25:47 -04:00
fi
2022-12-13 00:08:48 -05:00
apt install -y graphviz bison re2c flex libsqlite3-dev libonig-dev perl g++ libtool libxslt1-dev
apt install -y libmariadb-dev libmariadb-dev-compat
2022-11-03 12:25:47 -04:00
2022-12-13 00:08:48 -05:00
#apt install -y libmysqlclient-dev
#apt install -y libmariadbclient-dev
2022-11-03 12:25:47 -04:00
2022-12-10 01:02:05 -05:00
2026-01-15 01:31:53 -05:00
# find /usr/lib -name "*libaio*" 2>/dev/null
2026-01-15 01:29:10 -05:00
if [ ! -f /usr/lib/libaio.so.1 ];then
2026-01-15 01:33:16 -05:00
if [ -f /usr/lib/x86_64-linux-gnu/libaio.so.1t64 ];then
2026-01-15 01:31:53 -05:00
ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/libaio.so.1
2026-01-15 01:29:10 -05:00
fi
fi
2022-11-04 00:54:07 -04:00
cd /www/server/mdserver-web/scripts && bash lib.sh
2022-12-16 20:55:48 -05:00
chmod 755 /www/server/mdserver-web/data