工作中会遇到服务器没有网络的情况,也需要使用python,这个时候提前打包并写好安装脚本就显得尤为重要。
编写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