Alibaba Cloud Linux 3.2104 LTS 64位
自动化部署脚本
wget https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz
#!/bin/bash
# 设置颜色变量,方便输出信息
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # No Color
# 输出带颜色的提示信息
function echo_info() {
echo -e "${GREEN}[INFO] $1${NC}"
}
function echo_error() {
echo -e "${RED}[ERROR] $1${NC}"
}
# 检查是否为 root 用户
if [[ $EUID -ne 0 ]]; then
echo_error "此脚本需要 root 权限,请以 root 用户运行。"
exit 1
fi
# 检查是否传入版本号
if [ -z "$1" ]; then
echo_error "请指定 Python 版本号,例如:$0 3.11.4"
exit 1
fi
# 设置 Python 版本号
PYTHON_VERSION=$1
PYTHON_TGZ="Python-${PYTHON_VERSION}.tgz"
PYTHON_DIR="Python-${PYTHON_VERSION}"
# 卸载旧版本 Python
echo_info "卸载旧版本 Python..."
yum remove -y python3 python3-pip
# 安装编译工具和依赖
echo_info "安装编译工具和依赖..."
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel libffi-devel
# 检查 Python 源码包是否存在
if [ ! -f "$PYTHON_TGZ" ]; then
echo_error "Python 源码包 $PYTHON_TGZ 未找到,请确保文件在当前目录下。"
exit 1
fi
# 解压源码包
echo_info "解压 Python 源码包..."
tar -xvf "$PYTHON_TGZ"
# 创建安装目录
echo_info "创建安装目录..."
mkdir -p /usr/local/python3
# 移动解压后的文件到指定目录
echo_info "移动解压后的文件到指定目录..."
mv "$PYTHON_DIR" /usr/local
# 进入源码目录
echo_info "进入源码目录..."
cd "/usr/local/$PYTHON_DIR"
# 配置 Python
echo_info "配置 Python..."
./configure --prefix=/usr/local/python3
# 编译并安装
echo_info "编译并安装 Python..."
make && make install
# 检查是否安装成功
if [ $? -ne 0 ]; then
echo_error "Python 编译或安装失败,请检查错误信息。"
exit 1
fi
# 创建软链接
echo_info "创建 Python 和 pip 的软链接..."
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
# 验证安装
echo_info "验证 Python 和 pip 是否安装成功..."
python3 --version
pip3 --version
echo_info "Python $PYTHON_VERSION 安装完成!"