注意:该脚本是在 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
如果在编译过程中报出关于 perl
的 IPC/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