Python3.x一键安装脚本(Linux)
此脚本支持在Linux环境中一件安装Python。
如果脚本所在目录中有Python-xxx.tgz的安装包,则会跳过下载直接进行安装。
如果没有则会先下载Python-xxx.tgz安装包,然后进行安装。
(xxx为指定的版本号,如3.2.12)
默认直接执行脚本就行。
具体操作如下:
1、新建install_python.sh文件
#!/bin/bash
# 检查参数个数
if [ "$#" -eq 0 ]; then
echo -e "\033[31m未提供版本号,脚本结束执行。。。\033[0m"
exit 0
fi
if [ "$#" -eq 1 ]; then
echo -e "\033[31m未提供安装路径,脚本结束执行。。。\033[0m"
exit 0
fi
version=$1
install_path=$2
filename="Python-${version}.tgz"
echo -e "\033[32m开始安装开发库,请稍等......\033[0m"
yum -y groupinstall "Development tools" &> /dev/null
echo ' '
echo -e "\033[32m开始安装依赖环境,请稍等......\033[0m"
yum -y install zlib zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel wget &> /dev/null
echo ' '
echo -e "\033[32m开始安装zlib zlib-devel bzip2-devel openssl-devel等依赖包,请稍等......\033[0m"
yum -y install libffi-devel &> /dev/null
echo ' '
mkdir -p ${install_path}
# 判断当前目录是否存在安装包,不存在则去下载
if [ -f "$filename" ]; then
echo -e "\033[32m当前目录存在安装包,跳过下载。。。\033[0m"
else
echo -e "\033[32m开始下载 python${version} 源码包,请稍等......\033[0m"
wget https://www.python.org/ftp/python/${version}/${filename} -P ./ &> /dev/null
if [ -f "$filename" ]; then
echo -e "\033[31m安装包下载失败,结束安装。。。\033[0m"
exit 0
fi
fi
echo ' '
echo -e "\033[32m开始解压源码包,请稍等......\033[0m"
tar xf ./${filename} -C ${install_path} &> /dev/null
echo ' '
echo -e "\033[32m开始编译安装,请稍等......\033[0m"
cd ${install_path}/Python-${version}
./configure prefix=${install_path} --with-ensurepip=install &> /dev/null
sleep 5
make &> /dev/null
make install &> /dev/null
sleep 5
echo ' '
echo -e "\033[31m开始删除原文件,请稍等......\033[0m"
rm -rf ${install_path}/Python-${version}
echo -e "\033[33m开始备份软连接,请稍等......\033[0m"
mv /usr/bin/python /usr/bin/python.bak
echo -e "\033[32m开始创建软连接,请稍等......\033[0m"
# 注意这里的软连接只适合3.x版本,如果是2.x版本需要将下面的python3改成python2
ln -s ${install_path}/bin/python3 /usr/bin/python
echo ' '
echo -e "\033[32m更改 yum 脚本的 python 依赖,请稍等......\033[0m"
sed -i 's/\#\!\/usr\/bin\/python/\#\!\/usr\/bin\/python2/' /usr/bin/yum
sed -i 's/\#\! \/usr\/bin\/python/\#\! \/usr\/bin\/python2/' /usr/libexec/urlgrabber-ext-down
echo ' '
echo -e "\033[33mPython${version} 安装成功\033[0m"
echo -e "\033[32m执行【python -V】命令查询版本号\033[0m"
eval "python -V"
2、给文件赋权限
chown -R 755 install_python.sh
3、执行脚本
# 参数一:版本号
# 参数二:安装路径
./install_python.sh 3.12.2 /usr/local/python3
执行时间较长,需等待执行完毕。