在 CentOS 7.6 下编译 python3.6.6 的一键式脚本

注意:该脚本是在 root 下运行,如不在该用户下执行需要自行进行适当的修改,比如某些操作可能需要 sudo

首先编译 openssl ,选择 openssl-1.1.1d 版本

#!/bin/bash
version='1.1.1d'
download_url="https://www.openssl.org/source/openssl-${version}.tar.gz"
if [[ `ldconfig -p | grep libssl.so.1.1` ]];then
    echo "=================== 编译安装已完成 ==================="
else
	echo "==================== 检测依赖工具 ===================="
	yum install gcc zlib-devel openssl-devel gcc curl make -y > /dev/null 2>&1
	echo "================== 检测依赖工具完成==================="
	if [[ ! -f "openssl-${version}.tar.gz" ]]; then
		echo "=================== 开始下载源码包 ==================="
		echo "downloading: openssl-${version}.tar.gz..." && curl --progress-bar --remote-name --location "${download_url}"
		if [[ -f "openssl-${version}.tar.gz" ]]; then
			echo "=================== 下载源码包完成 ==================="
		else
			echo "=================== 下载源码包失败 ==================="
			echo "=================== 请检查网络连接 ==================="
			exit
		fi
	else
    	echo "================== 源码包存在,跳过 =================="
	fi
	if [[ -d "./openssl-${version}" ]];then
		echo "=================== 初始化编译位置 ==================="
		rm -rf openssl-${version}
	fi
	echo "=================== 开始解压源码包 ==================="
	tar -zxf openssl-${version}.tar.gz
	echo "=================== 解压源码包完成 ==================="
	echo "=================== 初始化安装位置 ==================="
	if [[ ! -d "/usr/local/ssl" ]];then
		mkdir /usr/local/ssl
	else
		rm -rf /usr/local/ssl
		mkdir /usr/local/ssl
	fi
	echo "=================== 开始配置编译项 ==================="
	cd openssl-${version}/
	./config  --prefix=/usr/local/ssl shared zlib
	make -j8 && make install
	echo "=================== 开始设置库文件 ==================="
	echo /usr/local/ssl/lib > /etc/ld.so.conf.d/ssl.conf
	ldconfig
	if [[ `ldconfig -p | grep libssl.so.1.1` ]];then
    	echo "=================== 编译安装已完成 ==================="
	fi
fi

如果在编译过程中报出关于 perlIPC/Cmd.pm 错误,则按下述操作进行配置:

yum install -y perl-CPAN
perl -MCPAN -e shell
cpan[1]> install IPC/Cmd.pm

编译 python3.6.6 版本
关于编译选项 --enable-optimizations,附加此参数会在一定程度上加快 python 代码的执行速度,但也会在编译时进行大量耗时的测试工作,可根据实际需求进行取舍

#!/bin/bash
echo "==================== 检测依赖工具 ===================="
yum install bzip2-devel ncurses-devel sqlite-devel readline-devel tk-devel curl make -y > /dev/null 2>&1
echo "================== 检测依赖工具完成==================="

if [[ ! -f "/usr/local/python3.6/bin/python3" ]];then
	if [[ ! -f Python-3.6.6.tgz ]];then
		echo "=================== 开始下载源码包 ==================="
		echo "downloading: Python-3.6.6.tgz..." && curl --progress-bar --remote-name --location "https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz"
		if [[ -f Python-3.6.6.tgz ]];then
			echo "=================== 下载源码包完成 ==================="
		else
			echo "=================== 下载源码包失败 ==================="
			echo "=================== 请检查网络连接 ==================="
			exit
		fi
	else
		echo "================== 源码包存在,跳过 =================="
	fi
	if [[ -d "./Python-3.6.6" ]];then
		echo "=================== 初始化编译位置 ==================="
		rm -rf Python-3.6.6
	fi
	echo "=================== 开始解压源码包 ==================="
	tar -zxf Python-3.6.6.tgz
	echo "=================== 解压源码包完成 ==================="
	echo "=================== 初始化安装位置 ==================="
	if [[ ! -d "/usr/local/python3.6" ]];then
		mkdir /usr/local/python3.6
	else
		rm -rf /usr/local/python3.6
		mkdir /usr/local/python3.6
	fi
	echo "=================== 开始配置编译项 ==================="
	cd Python-3.6.6
	sed -i '209,212s/.//' Modules/Setup.dist
	sed -e "s,@EXENAME@,/usr/local/python3/bin/python3.6m," < ./Misc/python-config.in >python-config.py
	./configure prefix=/usr/local/python3.6 
	echo "=================== 开始编译并安装 ==================="
	make -j8 && make install
	echo "=================== 开始创建软链接 ==================="
	ln -s /usr/local/python3.6/bin/python3 /usr/bin/python3
	ln -s /usr/local/python3.6/bin/pip3 /usr/bin/pip3
	chmod +x /usr/bin/python3
	chmod +x /usr/bin/pip3
	echo "=================== 正在版本验证中 ==================="
	pip3 -V
	python3 -V
	echo "=================== 创建软链接完成 ==================="
	echo "=================== 编译安装已完成 ==================="
	echo -e "export PYTHONPATH=/usr/local/python3.6\nexport PATH=\$PYTHONPATH/lib/python3.6/site-packages:\$PYTHONPATH/bin:\$PATH" >> ~/.bashrc
	source ~/.bashrc
	echo "====================已完成配置环境 ==================="
fi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值