0x00 背景
工作中会遇到服务器没有网络的情况,也需要使用python,这个时候提前打包并写好安装脚本就显得尤为重要。
0x01 实践
编写install.sh
function compile_py36(){
rm -fr /usr/local/python36
mkdir /usr/local/python36
tar -xvf Python-3.6.8.tar.xz -C /usr/local/python36/
cd /usr/local/python36/Python-3.6.8
./configure --with-ssl --prefix=/usr/local/python36
make && make install
ln -s /usr/local/python36/bin/python3 /usr/bin/python3.6
ln -s /usr/local/python36/bin/python3 /usr/bin/python3
}
RED="echo -en \\E[4;31m"
GREEN="echo -en \\E[7;32m"
RESET="echo -en \\E[0;39m"
dir=`pwd`
s=`python3.6 -V`; if [[ $s == '' ]]
then
compile_py36
else
s1=`python3.6 -m pip -V`;
if [[ $s1 == '' ]]
then
$RED && echo "检测到系统自带python3不可用,即将卸载系统自带python3" && $RESET
yum remove python36 -y
compile_py36
else $RED && echo "检测到系统有python3.6环境,先尝试使用系统自带的python3.6,如果不可用请先执行yum remove python36 -y卸载再重新执行本脚本" && $RESET
fi
fi
cd $dir ## 安装包上传的目录
rpm -ivh libtirpc-0.2.4-0.16.el7.x86_64.rpm
rpm -ivh python3-3.6.8-18.el7.x86_64.rpm python3-libs-3.6.8-18.el7.x86_64.rpm python3-setuptools-39.2.0-10.el7.noarch.rpm python3-pip-9.0.3-8.el7.noarch.rpm
rpm -ivh python3-devel-3.6.8-18.el7.x86_64.rpm
s2=`python3.6 -m pip`; if [[ $s2 == '' ]]
then
python3.6 -m ensurepip
else echo "已安装pip"
fi
我喜欢把安装脚本和离线包打包到一个压缩包,并用另一个脚本insallpy36.sh启动
unzip -o install_py.zip
cd install_py
chmod 550 install.sh
./install.sh