878 lines
33 KiB
Bash
878 lines
33 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
Set_Timezone()
|
|
{
|
|
Echo_Blue "Setting timezone..."
|
|
rm -rf /etc/localtime
|
|
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
|
}
|
|
|
|
CentOS_InstallNTP()
|
|
{
|
|
if echo "${CentOS_Version}" | grep -Eqi "^8" || echo "${RHEL_Version}" | grep -Eqi "^8" || echo "${Oracle_Version}" | grep -Eqi "^8"; then
|
|
Echo_Blue "[+] Installing chrony..."
|
|
dnf install chrony -y
|
|
chronyd -q "server pool.ntp.org iburst"
|
|
else
|
|
Echo_Blue "[+] Installing ntp..."
|
|
yum install -y ntpdate
|
|
ntpdate -u pool.ntp.org
|
|
fi
|
|
date
|
|
start_time=$(date +%s)
|
|
}
|
|
|
|
Deb_InstallNTP()
|
|
{
|
|
apt-get update -y
|
|
Echo_Blue "[+] Installing ntp..."
|
|
apt-get install -y ntpdate
|
|
ntpdate -u pool.ntp.org
|
|
date
|
|
start_time=$(date +%s)
|
|
}
|
|
|
|
CentOS_RemoveAMP()
|
|
{
|
|
Echo_Blue "[-] Yum remove packages..."
|
|
rpm -qa|grep httpd
|
|
rpm -e httpd httpd-tools --nodeps
|
|
if [[ "${DBSelect}" != "0" ]]; then
|
|
yum -y remove mysql-server mysql mysql-libs mariadb-server mariadb mariadb-libs
|
|
rpm -qa|grep mysql
|
|
if [ $? -ne 0 ]; then
|
|
rpm -e mysql mysql-libs --nodeps
|
|
rpm -e mariadb mariadb-libs --nodeps
|
|
fi
|
|
fi
|
|
rpm -qa|grep php
|
|
rpm -e php-mysql php-cli php-gd php-common php --nodeps
|
|
|
|
Remove_Error_Libcurl
|
|
|
|
yum -y remove httpd*
|
|
yum -y remove php*
|
|
yum clean all
|
|
}
|
|
|
|
Deb_RemoveAMP()
|
|
{
|
|
Echo_Blue "[-] apt-get remove packages..."
|
|
apt-get update -y
|
|
for removepackages in apache2 apache2-doc apache2-utils apache2.2-common apache2.2-bin apache2-mpm-prefork apache2-doc apache2-mpm-worker php5 php5-common php5-cgi php5-cli php5-mysql php5-curl php5-gd;
|
|
do apt-get purge -y $removepackages; done
|
|
if [[ "${DBSelect}" != "0" ]]; then
|
|
if echo "${Ubuntu_Version}" | grep -Eqi "^20\.04"; then
|
|
dpkg -l |grep mysql
|
|
dpkg --force-all -P mysql-server
|
|
dpkg --force-all -P mariadb-client mariadb-server mariadb-common libmariadbd-dev
|
|
[[ -d "/etc/mysql" ]] && rm -rf /etc/mysql
|
|
for removepackages in mysql-server mariadb-server;
|
|
do apt-get purge -y $removepackages; done
|
|
else
|
|
dpkg -l |grep mysql
|
|
dpkg --force-all -P mysql-server mysql-common libmysqlclient15off libmysqlclient15-dev libmysqlclient18 libmysqlclient18-dev libmysqlclient20 libmysqlclient-dev libmysqlclient21
|
|
dpkg --force-all -P mariadb-client mariadb-server mariadb-common libmariadbd-dev
|
|
for removepackages in mysql-client mysql-server mysql-common mysql-server-core-5.5 mysql-client-5.5 mariadb-client mariadb-server mariadb-common;
|
|
do apt-get purge -y $removepackages; done
|
|
fi
|
|
fi
|
|
killall apache2
|
|
dpkg -l |grep apache
|
|
dpkg -P apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2.2-common
|
|
dpkg -l |grep php
|
|
dpkg -P php5 php5-common php5-cli php5-cgi php5-mysql php5-curl php5-gd
|
|
apt-get autoremove -y && apt-get clean
|
|
}
|
|
|
|
Disable_Selinux()
|
|
{
|
|
if [ -s /etc/selinux/config ]; then
|
|
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
|
|
fi
|
|
}
|
|
|
|
Xen_Hwcap_Setting()
|
|
{
|
|
if [ -s /etc/ld.so.conf.d/libc6-xen.conf ]; then
|
|
sed -i 's/hwcap 1 nosegneg/hwcap 0 nosegneg/g' /etc/ld.so.conf.d/libc6-xen.conf
|
|
fi
|
|
}
|
|
|
|
Check_Hosts()
|
|
{
|
|
if grep -Eqi '^127.0.0.1[[:space:]]*localhost' /etc/hosts; then
|
|
echo "Hosts: ok."
|
|
else
|
|
echo "127.0.0.1 localhost.localdomain localhost" >> /etc/hosts
|
|
fi
|
|
pingresult=`ping -c1 lnmp.org 2>&1`
|
|
echo "${pingresult}"
|
|
if echo "${pingresult}" | grep -q "unknown host"; then
|
|
echo "DNS...fail"
|
|
echo "Writing nameserver to /etc/resolv.conf ..."
|
|
echo -e "nameserver 208.67.220.220\nnameserver 114.114.114.114" > /etc/resolv.conf
|
|
else
|
|
echo "DNS...ok"
|
|
fi
|
|
}
|
|
|
|
RHEL_Modify_Source()
|
|
{
|
|
Get_RHEL_Version
|
|
if [ "${RHELRepo}" = "local" ]; then
|
|
echo "DO NOT change RHEL repository, use the repository you set."
|
|
else
|
|
echo "RHEL ${RHEL_Ver} will use aliyun centos repository..."
|
|
if [ ! -s "/etc/yum.repos.d/Centos-${RHEL_Ver}.repo" ]; then
|
|
wget --prefer-family=IPv4 http://mirrors.aliyun.com/repo/Centos-${RHEL_Ver}.repo -O /etc/yum.repos.d/Centos-${RHEL_Ver}.repo
|
|
fi
|
|
if echo "${RHEL_Version}" | grep -Eqi "^6"; then
|
|
sed -i "s#centos/\$releasever#centos-vault/\$releasever#g" /etc/yum.repos.d/Centos-${RHEL_Ver}.repo
|
|
sed -i "s/\$releasever/${RHEL_Version}/g" /etc/yum.repos.d/Centos-${RHEL_Ver}.repo
|
|
else
|
|
sed -i "s/\$releasever/${RHEL_Ver}/g" /etc/yum.repos.d/Centos-${RHEL_Ver}.repo
|
|
fi
|
|
yum clean all
|
|
yum makecache
|
|
fi
|
|
sed -i "s/^enabled[ ]*=[ ]*1/enabled=0/" /etc/yum/pluginconf.d/subscription-manager.conf
|
|
}
|
|
|
|
Ubuntu_Modify_Source()
|
|
{
|
|
if [ "${country}" = "CN" ]; then
|
|
OldReleasesURL='http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/'
|
|
else
|
|
OldReleasesURL='http://old-releases.ubuntu.com/ubuntu/'
|
|
fi
|
|
CodeName=''
|
|
if grep -Eqi "10.10" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^10.10'; then
|
|
CodeName='maverick'
|
|
elif grep -Eqi "11.04" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^11.04'; then
|
|
CodeName='natty'
|
|
elif grep -Eqi "11.10" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^11.10'; then
|
|
CodeName='oneiric'
|
|
elif grep -Eqi "12.10" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^12.10'; then
|
|
CodeName='quantal'
|
|
elif grep -Eqi "13.04" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^13.04'; then
|
|
CodeName='raring'
|
|
elif grep -Eqi "13.10" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^13.10'; then
|
|
CodeName='saucy'
|
|
elif grep -Eqi "10.04" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^10.04'; then
|
|
CodeName='lucid'
|
|
elif grep -Eqi "14.10" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^14.10'; then
|
|
CodeName='utopic'
|
|
elif grep -Eqi "15.04" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^15.04'; then
|
|
CodeName='vivid'
|
|
elif grep -Eqi "12.04" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^12.04'; then
|
|
CodeName='precise'
|
|
elif grep -Eqi "15.10" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^15.10'; then
|
|
CodeName='wily'
|
|
elif grep -Eqi "16.10" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^16.10'; then
|
|
CodeName='yakkety'
|
|
elif grep -Eqi "14.04" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^14.04'; then
|
|
Ubuntu_Deadline trusty
|
|
elif grep -Eqi "17.04" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^17.04'; then
|
|
CodeName='zesty'
|
|
elif grep -Eqi "17.10" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^17.10'; then
|
|
CodeName='artful'
|
|
elif grep -Eqi "16.04" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^16.04'; then
|
|
Ubuntu_Deadline xenial
|
|
elif grep -Eqi "18.10" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^18.10'; then
|
|
CodeName='cosmic'
|
|
elif grep -Eqi "19.04" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^19.04'; then
|
|
CodeName='disco'
|
|
elif grep -Eqi "19.10" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^19.10'; then
|
|
Ubuntu_Deadline eoan
|
|
elif grep -Eqi "20.10" /etc/*-release || echo "${Ubuntu_Version}" | grep -Eqi '^20.10'; then
|
|
Ubuntu_Deadline groovy
|
|
fi
|
|
if [ "${CodeName}" != "" ]; then
|
|
\cp /etc/apt/sources.list /etc/apt/sources.list.$(date +"%Y%m%d")
|
|
cat > /etc/apt/sources.list<<EOF
|
|
deb ${OldReleasesURL} ${CodeName} main restricted universe multiverse
|
|
deb ${OldReleasesURL} ${CodeName}-security main restricted universe multiverse
|
|
deb ${OldReleasesURL} ${CodeName}-updates main restricted universe multiverse
|
|
deb ${OldReleasesURL} ${CodeName}-proposed main restricted universe multiverse
|
|
deb ${OldReleasesURL} ${CodeName}-backports main restricted universe multiverse
|
|
deb-src ${OldReleasesURL} ${CodeName} main restricted universe multiverse
|
|
deb-src ${OldReleasesURL} ${CodeName}-security main restricted universe multiverse
|
|
deb-src ${OldReleasesURL} ${CodeName}-updates main restricted universe multiverse
|
|
deb-src ${OldReleasesURL} ${CodeName}-proposed main restricted universe multiverse
|
|
deb-src ${OldReleasesURL} ${CodeName}-backports main restricted universe multiverse
|
|
EOF
|
|
fi
|
|
}
|
|
|
|
Check_Old_Releases_URL()
|
|
{
|
|
OR_Status=`wget --spider --server-response ${OldReleasesURL}/dists/$1/Release 2>&1 | awk '/^ HTTP/{print $2}'`
|
|
if [ "${OR_Status}" = "200" ]; then
|
|
echo "Ubuntu old-releases status: ${OR_Status}";
|
|
CodeName="$1"
|
|
fi
|
|
}
|
|
|
|
Ubuntu_Deadline()
|
|
{
|
|
trusty_deadline=`date -d "2022-4-30 00:00:00" +%s`
|
|
xenial_deadline=`date -d "2024-4-30 00:00:00" +%s`
|
|
eoan_deadline=`date -d "2020-7-30 00:00:00" +%s`
|
|
groovy_deadline=`date -d "2021-7-30 00:00:00" +%s`
|
|
cur_time=`date +%s`
|
|
case "$1" in
|
|
trusty)
|
|
if [ ${cur_time} -gt ${trusty_deadline} ]; then
|
|
echo "${cur_time} > ${trusty_deadline}"
|
|
Check_Old_Releases_URL trusty
|
|
fi
|
|
;;
|
|
xenial)
|
|
if [ ${cur_time} -gt ${xenial_deadline} ]; then
|
|
echo "${cur_time} > ${xenial_deadline}"
|
|
Check_Old_Releases_URL xenial
|
|
fi
|
|
;;
|
|
eoan)
|
|
if [ ${cur_time} -gt ${eoan_deadline} ]; then
|
|
echo "${cur_time} > ${eoan_deadline}"
|
|
Check_Old_Releases_URL eoan
|
|
fi
|
|
;;
|
|
groovy)
|
|
if [ ${cur_time} -gt ${groovy_deadline} ]; then
|
|
echo "${cur_time} > ${groovy_deadline}"
|
|
Check_Old_Releases_URL groovy
|
|
fi
|
|
;;
|
|
esac
|
|
}
|
|
|
|
CentOS6_Modify_Source()
|
|
{
|
|
if echo "${CentOS_Version}" | grep -Eqi "^6"; then
|
|
Echo_Yellow "CentOS 6 is now end of life, use vault repository."
|
|
\cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
|
|
\cp ${cur_dir}/conf/CentOS6-Base-Vault.repo /etc/yum.repos.d/CentOS-Base.repo
|
|
fi
|
|
}
|
|
|
|
Check_PowerTools()
|
|
{
|
|
if ! yum -v repolist all|grep "PowerTools"; then
|
|
echo "PowerTools repository not found, add PowerTools repository ..."
|
|
cat >/etc/yum.repos.d/CentOS-PowerTools.repo<<EOF
|
|
[PowerTools]
|
|
name=CentOS-\$releasever - PowerTools
|
|
mirrorlist=http://mirrorlist.centos.org/?release=\$releasever&arch=\$basearch&repo=PowerTools&infra=\$infra
|
|
#baseurl=http://mirror.centos.org/\$contentdir/\$releasever/PowerTools/\$basearch/os/
|
|
gpgcheck=1
|
|
enabled=0
|
|
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
|
|
EOF
|
|
if [ "${country}" = "CN" ]; then
|
|
sed -i "s@^mirrorlist=@#mirrorlist=@" /etc/yum.repos.d/CentOS-PowerTools.repo
|
|
sed -i "s@^#baseurl=http://mirror.centos.org@baseurl=http://mirror.centos.org/centos@" /etc/yum.repos.d/CentOS-PowerTools.repo
|
|
fi
|
|
fi
|
|
repo_id=$(yum repolist all|grep -Ei "PowerTools"|head -n 1|awk '{print $1}')
|
|
[ -z "${repo_id}" ] && repo_id="PowerTools"
|
|
}
|
|
|
|
Check_Codeready()
|
|
{
|
|
repo_id=$(yum repolist all|grep -E "CodeReady"|head -n 1|awk '{print $1}')
|
|
[ -z "${repo_id}" ] && repo_id="ol8_codeready_builder"
|
|
}
|
|
|
|
CentOS_Dependent()
|
|
{
|
|
if [ -s /etc/yum.conf ]; then
|
|
\cp /etc/yum.conf /etc/yum.conf.lnmp
|
|
sed -i 's:exclude=.*:exclude=:g' /etc/yum.conf
|
|
fi
|
|
|
|
Echo_Blue "[+] Yum installing dependent packages..."
|
|
for packages in make cmake gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf patch wget crontabs libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel unzip tar bzip2 bzip2-devel libzip-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel libcurl libcurl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel pcre-devel gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap diffutils ca-certificates net-tools libc-client-devel psmisc libXpm-devel git-core c-ares-devel libicu-devel libxslt libxslt-devel xz expat-devel libaio-devel rpcgen libtirpc-devel perl python-devel cyrus-sasl-devel sqlite-devel oniguruma-devel lsof re2c pkg-config;
|
|
do yum -y install $packages; done
|
|
|
|
yum -y update nss
|
|
|
|
if echo "${CentOS_Version}" | grep -Eqi "^8" || echo "${RHEL_Version}" | grep -Eqi "^8"; then
|
|
Check_PowerTools
|
|
dnf --enablerepo=${repo_id} install rpcgen re2c -y
|
|
dnf --enablerepo=${repo_id} install oniguruma-devel -y
|
|
fi
|
|
|
|
if echo "${CentOS_Version}" | grep -Eqi "^8" && cat /etc/centos-release | grep -Eqi "CentOS Stream"; then
|
|
dnf install gcc-toolset-10 -y
|
|
fi
|
|
|
|
if [ "${DISTRO}" = "Oracle" ] && echo "${Oracle_Version}" | grep -Eqi "^8"; then
|
|
Check_Codeready
|
|
dnf --enablerepo=${repo_id} install rpcgen re2c -y
|
|
dnf --enablerepo=${repo_id} install oniguruma-devel -y
|
|
fi
|
|
|
|
if echo "${CentOS_Version}" | grep -Eqi "^7" || echo "${RHEL_Version}" | grep -Eqi "^7"; then
|
|
yum -y install epel-release
|
|
if [ "${country}" = "CN" ]; then
|
|
sed -i "s@^#baseurl=http://download.fedoraproject.org/pub@baseurl=http://mirrors.aliyun.com@g" /etc/yum.repos.d/epel*.repo
|
|
sed -i "s@^metalink@#metalink@g" /etc/yum.repos.d/epel*.repo
|
|
fi
|
|
yum -y install oniguruma oniguruma-devel
|
|
if [ "${CheckMirror}" = "n" ]; then
|
|
cd ${cur_dir}/src/
|
|
yum -y install ./oniguruma-6.8.2-1.el7.x86_64.rpm
|
|
yum -y install ./oniguruma-devel-6.8.2-1.el7.x86_64.rpm
|
|
fi
|
|
fi
|
|
|
|
if [ "${DISTRO}" = "Fedora" ]; then
|
|
dnf install chkconfig -y
|
|
fi
|
|
|
|
if [ -s /etc/yum.conf.lnmp ]; then
|
|
mv -f /etc/yum.conf.lnmp /etc/yum.conf
|
|
fi
|
|
}
|
|
|
|
Deb_Dependent()
|
|
{
|
|
Echo_Blue "[+] Apt-get installing dependent packages..."
|
|
apt-get update -y
|
|
apt-get autoremove -y
|
|
apt-get -fy install
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
apt-get --no-install-recommends install -y build-essential gcc g++ make
|
|
for packages in debian-keyring debian-archive-keyring build-essential gcc g++ make cmake autoconf automake re2c wget cron bzip2 libzip-dev libc6-dev bison file rcconf flex bison m4 gawk less cpp binutils diffutils unzip tar bzip2 libbz2-dev libncurses5 libncurses5-dev libtool libevent-dev openssl libssl-dev zlibc libsasl2-dev libltdl3-dev libltdl-dev zlib1g zlib1g-dev libbz2-1.0 libbz2-dev libglib2.0-0 libglib2.0-dev libpng3 libjpeg-dev libpng-dev libpng12-0 libpng12-dev libkrb5-dev curl libcurl3-gnutls libcurl4-gnutls-dev libcurl4-openssl-dev libpcre3-dev libpq-dev libpq5 gettext libpng12-dev libxml2-dev libcap-dev ca-certificates libc-client2007e-dev psmisc patch git libc-ares-dev libicu-dev e2fsprogs libxslt1.1 libxslt1-dev libc-client-dev xz-utils libexpat1-dev libaio-dev libtirpc-dev python-dev libsqlite3-dev libonig-dev lsof pkg-config;
|
|
do apt-get --no-install-recommends install -y $packages; done
|
|
}
|
|
|
|
Check_Download()
|
|
{
|
|
Echo_Blue "[+] Downloading files..."
|
|
cd ${cur_dir}/src
|
|
Download_Files ${Download_Mirror}/web/libiconv/${Libiconv_Ver}.tar.gz ${Libiconv_Ver}.tar.gz
|
|
Download_Files ${Download_Mirror}/web/libmcrypt/${LibMcrypt_Ver}.tar.gz ${LibMcrypt_Ver}.tar.gz
|
|
Download_Files ${Download_Mirror}/web/mcrypt/${Mcypt_Ver}.tar.gz ${Mcypt_Ver}.tar.gz
|
|
Download_Files ${Download_Mirror}/web/mhash/${Mhash_Ver}.tar.bz2 ${Mhash_Ver}.tar.bz2
|
|
if [ "${SelectMalloc}" = "2" ]; then
|
|
Download_Files ${Download_Mirror}/lib/jemalloc/${Jemalloc_Ver}.tar.bz2 ${Jemalloc_Ver}.tar.bz2
|
|
elif [ "${SelectMalloc}" = "3" ]; then
|
|
Download_Files ${Download_Mirror}/lib/tcmalloc/${TCMalloc_Ver}.tar.gz ${TCMalloc_Ver}.tar.gz
|
|
Download_Files ${Download_Mirror}/lib/libunwind/${Libunwind_Ver}.tar.gz ${Libunwind_Ver}.tar.gz
|
|
fi
|
|
if [ "${Stack}" != "lamp" ]; then
|
|
Download_Files ${Download_Mirror}/web/nginx/${Nginx_Ver}.tar.gz ${Nginx_Ver}.tar.gz
|
|
fi
|
|
if [[ "${DBSelect}" =~ ^[12345]$ ]]; then
|
|
Download_Files ${Download_Mirror}/datebase/mysql/${Mysql_Ver}.tar.gz ${Mysql_Ver}.tar.gz
|
|
elif [[ "${DBSelect}" =~ ^[6789]|10$ ]]; then
|
|
Download_Files ${Download_Mirror}/datebase/mariadb/${Mariadb_Ver}.tar.gz ${Mariadb_Ver}.tar.gz
|
|
fi
|
|
Download_Files ${Download_Mirror}/web/php/${Php_Ver}.tar.bz2 ${Php_Ver}.tar.bz2
|
|
if [ ${PHPSelect} = "1" ]; then
|
|
Download_Files ${Download_Mirror}/web/phpfpm/${Php_Ver}-fpm-0.5.14.diff.gz ${Php_Ver}-fpm-0.5.14.diff.gz
|
|
fi
|
|
Download_Files ${Download_Mirror}/datebase/phpmyadmin/${PhpMyAdmin_Ver}.tar.xz ${PhpMyAdmin_Ver}.tar.xz
|
|
Download_Files ${Download_Mirror}/prober/p.tar.gz p.tar.gz
|
|
if [ "${Stack}" != "lnmp" ]; then
|
|
Download_Files ${Download_Mirror}/web/apache/${Apache_Ver}.tar.bz2 ${Apache_Ver}.tar.bz2
|
|
Download_Files ${Download_Mirror}/web/apache/${APR_Ver}.tar.bz2 ${APR_Ver}.tar.bz2
|
|
Download_Files ${Download_Mirror}/web/apache/${APR_Util_Ver}.tar.bz2 ${APR_Util_Ver}.tar.bz2
|
|
fi
|
|
}
|
|
|
|
Make_Install()
|
|
{
|
|
make -j `grep 'processor' /proc/cpuinfo | wc -l`
|
|
if [ $? -ne 0 ]; then
|
|
make
|
|
fi
|
|
make install
|
|
}
|
|
|
|
PHP_Make_Install()
|
|
{
|
|
make ZEND_EXTRA_LIBS='-liconv' -j `grep 'processor' /proc/cpuinfo | wc -l`
|
|
if [ $? -ne 0 ]; then
|
|
make ZEND_EXTRA_LIBS='-liconv'
|
|
fi
|
|
make install
|
|
}
|
|
|
|
Install_Autoconf()
|
|
{
|
|
Echo_Blue "[+] Installing ${Autoconf_Ver}"
|
|
cd ${cur_dir}/src
|
|
Download_Files ${Download_Mirror}/lib/autoconf/${Autoconf_Ver}.tar.gz ${Autoconf_Ver}.tar.gz
|
|
Tar_Cd ${Autoconf_Ver}.tar.gz ${Autoconf_Ver}
|
|
./configure --prefix=/usr/local/autoconf-2.13
|
|
Make_Install
|
|
cd ${cur_dir}/src/
|
|
rm -rf ${cur_dir}/src/${Autoconf_Ver}
|
|
}
|
|
|
|
Install_Libiconv()
|
|
{
|
|
Echo_Blue "[+] Installing ${Libiconv_Ver}"
|
|
Tar_Cd ${Libiconv_Ver}.tar.gz ${Libiconv_Ver}
|
|
./configure --enable-static
|
|
Make_Install
|
|
cd ${cur_dir}/src/
|
|
rm -rf ${cur_dir}/src/${Libiconv_Ver}
|
|
}
|
|
|
|
Install_Libmcrypt()
|
|
{
|
|
Echo_Blue "[+] Installing ${LibMcrypt_Ver}"
|
|
Tar_Cd ${LibMcrypt_Ver}.tar.gz ${LibMcrypt_Ver}
|
|
./configure
|
|
Make_Install
|
|
/sbin/ldconfig
|
|
cd libltdl/
|
|
./configure --enable-ltdl-install
|
|
Make_Install
|
|
ln -sf /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
|
|
ln -sf /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
|
|
ln -sf /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
|
|
ln -sf /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
|
|
ldconfig
|
|
cd ${cur_dir}/src/
|
|
rm -rf ${cur_dir}/src/${LibMcrypt_Ver}
|
|
}
|
|
|
|
Install_Mcrypt()
|
|
{
|
|
Echo_Blue "[+] Installing ${Mcypt_Ver}"
|
|
Tar_Cd ${Mcypt_Ver}.tar.gz ${Mcypt_Ver}
|
|
./configure
|
|
Make_Install
|
|
cd ${cur_dir}/src/
|
|
rm -rf ${cur_dir}/src/${Mcypt_Ver}
|
|
}
|
|
|
|
Install_Mhash()
|
|
{
|
|
Echo_Blue "[+] Installing ${Mhash_Ver}"
|
|
Tarj_Cd ${Mhash_Ver}.tar.bz2 ${Mhash_Ver}
|
|
./configure
|
|
Make_Install
|
|
ln -sf /usr/local/lib/libmhash.a /usr/lib/libmhash.a
|
|
ln -sf /usr/local/lib/libmhash.la /usr/lib/libmhash.la
|
|
ln -sf /usr/local/lib/libmhash.so /usr/lib/libmhash.so
|
|
ln -sf /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
|
|
ln -sf /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
|
|
ldconfig
|
|
cd ${cur_dir}/src/
|
|
rm -rf ${cur_dir}/src/${Mhash_Ver}
|
|
}
|
|
|
|
Install_Freetype()
|
|
{
|
|
if echo "${Ubuntu_Version}" | grep -Eqi "^1[89]\.|2[0-9]\." || echo "${Mint_Version}" | grep -Eqi "^19|2[0-9]" || echo "${Deepin_Version}" | grep -Eqi "^15\.[7-9]|15.1[0-9]|1[6-9]|2[0-9]" || echo "${Debian_Version}" | grep -Eqi "^9|10" || echo "${Raspbian_Version}" | grep -Eqi "^9|10" || echo "${Kali_Version}" | grep -Eqi "^202[0-9]" || echo "${CentOS_Version}" | grep -Eqi "^8" || echo "${RHEL_Version}" | grep -Eqi "^8" || echo "${Oracle_Version}" | grep -Eqi "^8" || echo "${Fedora_Version}" | grep -Eqi "^3[0-9]|29"; then
|
|
Download_Files ${Download_Mirror}/lib/freetype/${Freetype_New_Ver}.tar.xz ${Freetype_New_Ver}.tar.xz
|
|
Echo_Blue "[+] Installing ${Freetype_New_Ver}"
|
|
TarJ_Cd ${Freetype_New_Ver}.tar.xz ${Freetype_New_Ver}
|
|
./configure --prefix=/usr/local/freetype --enable-freetype-config
|
|
else
|
|
Download_Files ${Download_Mirror}/lib/freetype/${Freetype_Ver}.tar.bz2 ${Freetype_Ver}.tar.bz2
|
|
Echo_Blue "[+] Installing ${Freetype_Ver}"
|
|
Tarj_Cd ${Freetype_Ver}.tar.bz2 ${Freetype_Ver}
|
|
./configure --prefix=/usr/local/freetype
|
|
fi
|
|
Make_Install
|
|
|
|
[[ -d /usr/lib/pkgconfig ]] && \cp /usr/local/freetype/lib/pkgconfig/freetype2.pc /usr/lib/pkgconfig/
|
|
cat > /etc/ld.so.conf.d/freetype.conf<<EOF
|
|
/usr/local/freetype/lib
|
|
EOF
|
|
ldconfig
|
|
ln -sf /usr/local/freetype/include/freetype2/* /usr/include/
|
|
cd ${cur_dir}/src/
|
|
rm -rf ${cur_dir}/src/${Freetype_Ver}
|
|
}
|
|
|
|
Install_Curl()
|
|
{
|
|
if [[ ! -s /usr/local/curl/bin/curl || ! -s /usr/local/curl/lib/libcurl.so || ! -s /usr/local/curl/include/curl/curl.h ]]; then
|
|
Echo_Blue "[+] Installing ${Curl_Ver}"
|
|
cd ${cur_dir}/src
|
|
Download_Files ${Download_Mirror}/lib/curl/${Curl_Ver}.tar.bz2 ${Curl_Ver}.tar.bz2
|
|
Tarj_Cd ${Curl_Ver}.tar.bz2 ${Curl_Ver}
|
|
if [ -s /usr/local/openssl/bin/openssl ] || /usr/local/openssl/bin/openssl version | grep -Eqi 'OpenSSL 1.0.2'; then
|
|
./configure --prefix=/usr/local/curl --enable-ares --without-nss --with-zlib --with-ssl=/usr/local/openssl
|
|
else
|
|
./configure --prefix=/usr/local/curl --enable-ares --without-nss --with-zlib --with-ssl
|
|
fi
|
|
Make_Install
|
|
cd ${cur_dir}/src/
|
|
rm -rf ${cur_dir}/src/${Curl_Ver}
|
|
ldconfig
|
|
fi
|
|
Remove_Error_Libcurl
|
|
}
|
|
|
|
Install_Pcre()
|
|
{
|
|
if ! command -v pcre-config >/dev/null 2>&1 || pcre-config --version | grep -vEqi '^8.'; then
|
|
Echo_Blue "[+] Installing ${Pcre_Ver}"
|
|
cd ${cur_dir}/src
|
|
Download_Files ${Download_Mirror}/web/pcre/${Pcre_Ver}.tar.bz2 ${Pcre_Ver}.tar.bz2
|
|
Tarj_Cd ${Pcre_Ver}.tar.bz2
|
|
Nginx_With_Pcre="--with-pcre=${cur_dir}/src/${Pcre_Ver}"
|
|
fi
|
|
}
|
|
|
|
Install_Jemalloc()
|
|
{
|
|
Echo_Blue "[+] Installing ${Jemalloc_Ver}"
|
|
cd ${cur_dir}/src
|
|
Tarj_Cd ${Jemalloc_Ver}.tar.bz2 ${Jemalloc_Ver}
|
|
./configure
|
|
Make_Install
|
|
ldconfig
|
|
cd ${cur_dir}/src/
|
|
rm -rf ${cur_dir}/src/${Jemalloc_Ver}
|
|
ln -sf /usr/local/lib/libjemalloc* /usr/lib/
|
|
}
|
|
|
|
Install_TCMalloc()
|
|
{
|
|
Echo_Blue "[+] Installing ${TCMalloc_Ver}"
|
|
if [ "${Is_64bit}" = "y" ]; then
|
|
Tar_Cd ${Libunwind_Ver}.tar.gz ${Libunwind_Ver}
|
|
CFLAGS=-fPIC ./configure
|
|
make CFLAGS=-fPIC
|
|
make CFLAGS=-fPIC install
|
|
rm -rf ${cur_dir}/src/${Libunwind_Ver}
|
|
fi
|
|
Tar_Cd ${TCMalloc_Ver}.tar.gz ${TCMalloc_Ver}
|
|
if [ "${Is_64bit}" = "y" ]; then
|
|
./configure
|
|
else
|
|
./configure --enable-frame-pointers
|
|
fi
|
|
Make_Install
|
|
ldconfig
|
|
cd ${cur_dir}/src/
|
|
rm -rf ${cur_dir}/src/${TCMalloc_Ver}
|
|
ln -sf /usr/local/lib/libtcmalloc* /usr/lib/
|
|
}
|
|
|
|
Install_Icu4c()
|
|
{
|
|
if command -v icu-config >/dev/null 2>&1 && icu-config --version | grep -Eq "^3."; then
|
|
Echo_Blue "[+] Installing ${Libicu4c_Ver}"
|
|
cd ${cur_dir}/src
|
|
Download_Files ${Download_Mirror}/lib/icu4c/${Libicu4c_Ver}-src.tgz ${Libicu4c_Ver}-src.tgz
|
|
Tar_Cd ${Libicu4c_Ver}-src.tgz icu/source
|
|
./configure --prefix=/usr
|
|
if [ ! -s /usr/include/xlocale.h ]; then
|
|
ln -s /usr/include/locale.h /usr/include/xlocale.h
|
|
fi
|
|
Make_Install
|
|
cd ${cur_dir}/src/
|
|
rm -rf ${cur_dir}/src/icu
|
|
fi
|
|
}
|
|
|
|
Download_Boost()
|
|
{
|
|
Echo_Blue "[+] Download or use exist boost..."
|
|
if [ "${DBSelect}" = "4" ] || echo "${mysql_version}" | grep -Eqi '^5.7.'; then
|
|
if [ -s "${cur_dir}/src/${Boost_Ver}.tar.bz2" ]; then
|
|
[[ -d "${cur_dir}/src/${Boost_Ver}" ]] && rm -rf "${cur_dir}/src/${Boost_Ver}"
|
|
tar jxf ${cur_dir}/src/${Boost_Ver}.tar.bz2 -C ${cur_dir}/src
|
|
MySQL_WITH_BOOST="-DWITH_BOOST=${cur_dir}/src/${Boost_Ver}"
|
|
else
|
|
cd ${cur_dir}/src/
|
|
Download_Files ${Download_Mirror}/lib/boost/${Boost_Ver}.tar.bz2 ${Boost_Ver}.tar.bz2
|
|
tar jxf ${cur_dir}/src/${Boost_Ver}.tar.bz2
|
|
cd -
|
|
MySQL_WITH_BOOST="-DWITH_BOOST=${cur_dir}/src/${Boost_Ver}"
|
|
fi
|
|
elif [ "${DBSelect}" = "5" ] || echo "${mysql_version}" | grep -Eqi '^8.0.'; then
|
|
Get_Boost_Ver=$(grep 'SET(BOOST_PACKAGE_NAME' cmake/boost.cmake |grep -oP '\d+(\_\d+){2}')
|
|
if [ -s "${cur_dir}/src/boost_${Get_Boost_Ver}.tar.bz2" ]; then
|
|
[[ -d "${cur_dir}/src/boost_${Get_Boost_Ver}" ]] && rm -rf "${cur_dir}/src/boost_${Get_Boost_Ver}"
|
|
tar jxf ${cur_dir}/src/boost_${Get_Boost_Ver}.tar.bz2 -C ${cur_dir}/src
|
|
MySQL_WITH_BOOST="-DWITH_BOOST=${cur_dir}/src/boost_${Get_Boost_Ver}"
|
|
else
|
|
MySQL_WITH_BOOST="-DDOWNLOAD_BOOST=1 -DWITH_BOOST=${cur_dir}/src"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
Install_Boost()
|
|
{
|
|
Echo_Blue "[+] Download or use exist boost..."
|
|
if [ "${DBSelect}" = "4" ] || [ "${DBSelect}" = "5" ]; then
|
|
if [ -d "${cur_dir}/src/${Mysql_Ver}/boost" ]; then
|
|
MySQL_WITH_BOOST="-DWITH_BOOST=${cur_dir}/src/${Mysql_Ver}/boost"
|
|
else
|
|
Download_Boost
|
|
fi
|
|
elif echo "${mysql_version}" | grep -Eqi '^5.7.' || echo "${mysql_version}" | grep -Eqi '^8.0.'; then
|
|
if [ -d "${cur_dir}/src/mysql-${mysql_version}/boost" ]; then
|
|
MySQL_WITH_BOOST="-DWITH_BOOST=${cur_dir}/src/mysql-${mysql_version}/boost"
|
|
else
|
|
Download_Boost
|
|
fi
|
|
fi
|
|
}
|
|
|
|
Install_Openssl()
|
|
{
|
|
if [ ! -s /usr/local/openssl/bin/openssl ] || /usr/local/openssl/bin/openssl version | grep -v 'OpenSSL 1.0.2'; then
|
|
Echo_Blue "[+] Installing ${Openssl_Ver}"
|
|
cd ${cur_dir}/src
|
|
Download_Files ${Download_Mirror}/lib/openssl/${Openssl_Ver}.tar.gz ${Openssl_Ver}.tar.gz
|
|
[[ -d "${Openssl_Ver}" ]] && rm -rf ${Openssl_Ver}
|
|
Tar_Cd ${Openssl_Ver}.tar.gz ${Openssl_Ver}
|
|
./config -fPIC --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
|
|
make depend
|
|
Make_Install
|
|
cd ${cur_dir}/src/
|
|
rm -rf ${cur_dir}/src/${Openssl_Ver}
|
|
fi
|
|
}
|
|
|
|
Install_Openssl_New()
|
|
{
|
|
if openssl version | grep -vEqi "OpenSSL 1.1.1*"; then
|
|
if [ ! -s /usr/local/openssl1.1.1/bin/openssl ] || /usr/local/openssl1.1.1/bin/openssl version | grep -Eqi 'OpenSSL 1.1.1*'; then
|
|
Echo_Blue "[+] Installing ${Openssl_New_Ver}"
|
|
cd ${cur_dir}/src
|
|
Download_Files ${Download_Mirror}/lib/openssl/${Openssl_New_Ver}.tar.gz ${Openssl_New_Ver}.tar.gz
|
|
[[ -d "${Openssl_New_Ver}" ]] && rm -rf ${Openssl_New_Ver}
|
|
Tar_Cd ${Openssl_New_Ver}.tar.gz ${Openssl_New_Ver}
|
|
./config enable-weak-ssl-ciphers -fPIC --prefix=/usr/local/openssl1.1.1 --openssldir=/usr/local/openssl1.1.1
|
|
make depend
|
|
Make_Install
|
|
ln -sf /usr/local/openssl1.1.1/lib/libcrypto.so.1.1 /usr/lib/
|
|
ln -sf /usr/local/openssl1.1.1/lib/libssl.so.1.1 /usr/lib/
|
|
cd ${cur_dir}/src/
|
|
rm -rf ${cur_dir}/src/${Openssl_New_Ver}
|
|
fi
|
|
ldconfig
|
|
apache_with_ssl='--with-ssl=/usr/local/openssl1.1.1'
|
|
else
|
|
apache_with_ssl='--with-ssl'
|
|
fi
|
|
}
|
|
|
|
Install_Nghttp2()
|
|
{
|
|
if [[ ! -s /usr/local/nghttp2/lib/libnghttp2.so || ! -s /usr/local/nghttp2/include/nghttp2/nghttp2.h ]]; then
|
|
Echo_Blue "[+] Installing ${Nghttp2_Ver}"
|
|
cd ${cur_dir}/src
|
|
Download_Files ${Download_Mirror}/lib/nghttp2/${Nghttp2_Ver}.tar.xz ${Nghttp2_Ver}.tar.xz
|
|
[[ -d "${Nghttp2_Ver}" ]] && rm -rf ${Nghttp2_Ver}
|
|
TarJ_Cd ${Nghttp2_Ver}.tar.xz ${Nghttp2_Ver}
|
|
./configure --prefix=/usr/local/nghttp2
|
|
Make_Install
|
|
cd ${cur_dir}/src/
|
|
rm -rf ${cur_dir}/src/${Nghttp2_Ver}
|
|
fi
|
|
}
|
|
|
|
Install_Libzip()
|
|
{
|
|
if echo "${CentOS_Version}" | grep -Eqi "^7" || echo "${RHEL_Version}" | grep -Eqi "^7" || echo "${Aliyun_Version}" | grep -Eqi "^2"; then
|
|
if [ ! -s /usr/local/lib/libzip.so ]; then
|
|
Echo_Blue "[+] Installing ${Libzip_Ver}"
|
|
cd ${cur_dir}/src
|
|
Download_Files ${Download_Mirror}/lib/libzip/${Libzip_Ver}.tar.xz ${Libzip_Ver}.tar.xz
|
|
TarJ_Cd ${Libzip_Ver}.tar.xz ${Libzip_Ver}
|
|
./configure
|
|
Make_Install
|
|
cd ${cur_dir}/src/
|
|
rm -rf ${cur_dir}/src/${Libzip_Ver}
|
|
fi
|
|
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
|
|
ldconfig
|
|
fi
|
|
}
|
|
|
|
CentOS_Lib_Opt()
|
|
{
|
|
if [ "${Is_64bit}" = "y" ] ; then
|
|
ln -sf /usr/lib64/libpng.* /usr/lib/
|
|
ln -sf /usr/lib64/libjpeg.* /usr/lib/
|
|
fi
|
|
|
|
ulimit -v unlimited
|
|
|
|
if [ `grep -L "/lib" '/etc/ld.so.conf'` ]; then
|
|
echo "/lib" >> /etc/ld.so.conf
|
|
fi
|
|
|
|
if [ `grep -L '/usr/lib' '/etc/ld.so.conf'` ]; then
|
|
echo "/usr/lib" >> /etc/ld.so.conf
|
|
#echo "/usr/lib/openssl/engines" >> /etc/ld.so.conf
|
|
fi
|
|
|
|
if [ -d "/usr/lib64" ] && [ `grep -L '/usr/lib64' '/etc/ld.so.conf'` ]; then
|
|
echo "/usr/lib64" >> /etc/ld.so.conf
|
|
#echo "/usr/lib64/openssl/engines" >> /etc/ld.so.conf
|
|
fi
|
|
|
|
if [ `grep -L '/usr/local/lib' '/etc/ld.so.conf'` ]; then
|
|
echo "/usr/local/lib" >> /etc/ld.so.conf
|
|
fi
|
|
|
|
ldconfig
|
|
|
|
if command -v systemd-detect-virt >/dev/null 2>&1 && [[ "$(systemd-detect-virt)" = "lxc" ]]; then
|
|
cat >>/etc/security/limits.conf<<eof
|
|
* soft nofile 65535
|
|
* hard nofile 65535
|
|
eof
|
|
else
|
|
cat >>/etc/security/limits.conf<<eof
|
|
* soft nproc 65535
|
|
* hard nproc 65535
|
|
* soft nofile 65535
|
|
* hard nofile 65535
|
|
eof
|
|
fi
|
|
|
|
echo "fs.file-max=65535" >> /etc/sysctl.conf
|
|
|
|
if echo "${Fedora_Version}" | grep -Eqi "3[0-9]" && [ ! -d "/etc/init.d" ]; then
|
|
ln -sf /etc/rc.d/init.d /etc/init.d
|
|
fi
|
|
}
|
|
|
|
Deb_Lib_Opt()
|
|
{
|
|
if [ "${Is_64bit}" = "y" ]; then
|
|
ln -sf /usr/lib/x86_64-linux-gnu/libpng* /usr/lib/
|
|
ln -sf /usr/lib/x86_64-linux-gnu/libjpeg* /usr/lib/
|
|
else
|
|
ln -sf /usr/lib/i386-linux-gnu/libpng* /usr/lib/
|
|
ln -sf /usr/lib/i386-linux-gnu/libjpeg* /usr/lib/
|
|
ln -sf /usr/include/i386-linux-gnu/asm /usr/include/asm
|
|
fi
|
|
|
|
if [ -d "/usr/lib/arm-linux-gnueabihf" ]; then
|
|
ln -sf /usr/lib/arm-linux-gnueabihf/libpng* /usr/lib/
|
|
ln -sf /usr/lib/arm-linux-gnueabihf/libjpeg* /usr/lib/
|
|
ln -sf /usr/include/arm-linux-gnueabihf/curl /usr/include/
|
|
fi
|
|
|
|
ulimit -v unlimited
|
|
|
|
if [ `grep -L "/lib" '/etc/ld.so.conf'` ]; then
|
|
echo "/lib" >> /etc/ld.so.conf
|
|
fi
|
|
|
|
if [ `grep -L '/usr/lib' '/etc/ld.so.conf'` ]; then
|
|
echo "/usr/lib" >> /etc/ld.so.conf
|
|
fi
|
|
|
|
if [ -d "/usr/lib64" ] && [ `grep -L '/usr/lib64' '/etc/ld.so.conf'` ]; then
|
|
echo "/usr/lib64" >> /etc/ld.so.conf
|
|
fi
|
|
|
|
if [ `grep -L '/usr/local/lib' '/etc/ld.so.conf'` ]; then
|
|
echo "/usr/local/lib" >> /etc/ld.so.conf
|
|
fi
|
|
|
|
if [ -d /usr/include/x86_64-linux-gnu/curl ]; then
|
|
ln -sf /usr/include/x86_64-linux-gnu/curl /usr/include/
|
|
elif [ -d /usr/include/i386-linux-gnu/curl ]; then
|
|
ln -sf /usr/include/i386-linux-gnu/curl /usr/include/
|
|
fi
|
|
|
|
if [ -d /usr/include/arm-linux-gnueabihf/curl ]; then
|
|
ln -sf /usr/include/arm-linux-gnueabihf/curl /usr/include/
|
|
fi
|
|
|
|
if [ -d /usr/include/aarch64-linux-gnu/curl ]; then
|
|
ln -sf /usr/include/aarch64-linux-gnu/curl /usr/include/
|
|
fi
|
|
|
|
ldconfig
|
|
|
|
cat >>/etc/security/limits.conf<<eof
|
|
* soft nproc 65535
|
|
* hard nproc 65535
|
|
* soft nofile 65535
|
|
* hard nofile 65535
|
|
eof
|
|
|
|
echo "fs.file-max=65535" >> /etc/sysctl.conf
|
|
}
|
|
|
|
Remove_Error_Libcurl()
|
|
{
|
|
if [ -s /usr/local/lib/libcurl.so ]; then
|
|
rm -f /usr/local/lib/libcurl*
|
|
fi
|
|
}
|
|
|
|
Add_Swap()
|
|
{
|
|
if ! command -v python >/dev/null 2>&1; then
|
|
if [ "$PM" = "yum" ]; then
|
|
yum -y install python2
|
|
elif [ "$PM" = "apt" ]; then
|
|
apt-get --no-install-recommends install -y python
|
|
fi
|
|
fi
|
|
if command -v python >/dev/null 2>&1; then
|
|
Disk_Avail=$(python ${cur_dir}/include/disk.py)
|
|
elif command -v python3 >/dev/null 2>&1; then
|
|
Disk_Avail=$(python3 ${cur_dir}/include/disk.py)
|
|
elif command -v python2 >/dev/null 2>&1; then
|
|
Disk_Avail=$(python2 ${cur_dir}/include/disk.py)
|
|
fi
|
|
if [ "${MemTotal}" -lt 1024 ]; then
|
|
DD_Count='1024'
|
|
if [ "${Disk_Avail}" -lt 5 ]; then
|
|
Enable_Swap='n'
|
|
fi
|
|
elif [[ "${MemTotal}" -ge 1024 && "${MemTotal}" -le 2048 ]]; then
|
|
DD_Count='2028'
|
|
if [ "${Disk_Avail}" -lt 13 ]; then
|
|
Enable_Swap='n'
|
|
fi
|
|
elif [[ "${MemTotal}" -ge 2048 && "${MemTotal}" -le 4096 ]]; then
|
|
DD_Count='4096'
|
|
if [ "${Disk_Avail}" -lt 17 ]; then
|
|
Enable_Swap='n'
|
|
fi
|
|
elif [[ "${MemTotal}" -ge 4096 && "${MemTotal}" -le 16384 ]]; then
|
|
DD_Count='8192'
|
|
if [ "${Disk_Avail}" -lt 19 ]; then
|
|
Enable_Swap='n'
|
|
fi
|
|
elif [[ "${MemTotal}" -ge 16384 ]]; then
|
|
DD_Count='8192'
|
|
if [ "${Disk_Avail}" -lt 27 ]; then
|
|
Enable_Swap='n'
|
|
fi
|
|
fi
|
|
Swap_Total=$(free -m | grep Swap | awk '{print $2}')
|
|
if [[ "${Enable_Swap}" = "y" && "${Swap_Total}" -le 512 && ! -s /var/swapfile ]]; then
|
|
echo "Add Swap file..."
|
|
[ $(cat /proc/sys/vm/swappiness) -eq 0 ] && sysctl vm.swappiness=10
|
|
dd if=/dev/zero of=/var/swapfile bs=1M count=${DD_Count}
|
|
chmod 0600 /var/swapfile
|
|
echo "Enable Swap..."
|
|
/sbin/mkswap /var/swapfile
|
|
/sbin/swapon /var/swapfile
|
|
if [ $? -eq 0 ]; then
|
|
[ `grep -L '/var/swapfile' '/etc/fstab'` ] && echo "/var/swapfile swap swap defaults 0 0" >>/etc/fstab
|
|
/sbin/swapon -s
|
|
else
|
|
rm -f /var/swapfile
|
|
echo "Add Swap Failed!"
|
|
fi
|
|
fi
|
|
}
|