纯Shell脚本实现CentOS7一键安装Python3及pip3并与Python2共存
众所周知,在 Linux 系统中均默认安装了Python2 的版本,但是有时候做开发需要用到 Python3,并需要通过 pip 来安装一些依赖和扩展,但是 Linux 安装 Python3 比较麻烦,并不能通过 命令 yum install python3 来实现一键安装,所以本人写了一个简单的 Shell 脚本来实现一键安装。
先来讲一下实现思路:(成品脚本见文末)
首先安装编译环境
sudo yum -y groupinstall "Development tools"
再安装依赖包,以下罗列依赖包缺一不可。
sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
然后获取 Python3 的安装包(本例使用 Python 3.7.3)
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
如需安装其他版本,请移步这里 https://www.python.org/ftp/python/ 获取所需版本,然后替换上面 wget 后面的链接即可,后续步骤同时替换代码中的版本号。
解压安装包
tar -zxvf Python-3.7.3.tgz
切换到安装文件目录
cd Python-3.7.3
配置 Python 3.7.3 的安装目录
./configure --prefix=/usr/local/bin/python3
编译安装 Python3
sudo make && make install
创建 Python3 软链接
ln -s /usr/local/bin/python3/bin/python3 /usr/bin/python3
创建 pip3 软链接
ln -s /usr/local/bin/python3/bin/pip3 /usr/bin/pip3
最后在命令行中输入 python3,能够进入 python3 终端即成功安装
[root@VM_135_138_centos ~]# python3
Python 3.7.3 (default, May 15 2019, 17:07:20)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
可以输入 exit() 退出 python3 终端。
手动一步一步的安装就需要这么多步骤,写成一键安装脚本之后只需要将安装脚本 Git 到目标系统然后赋权执行即可自动安装完成。
首先切换到 root 用户,然后下载安装脚本
git clone https://github.com/Tespera/AutoInstallPython3.git
赋予脚本执行权限
chmod +x AutoInstallPython3.sh
开始自动安装
./AutoInstallPython3.sh
当命令行显示如下信息时即表示安装成功
Installed Python and pip version is ...
Python 3.7.3
pip 19.0.3 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
Your Python and pip have been installed in follows directory...
/usr/local/bin/python3
/usr/local/bin/pip3
Install Successfully! Enjoy!
[root@VM_135_138_centos ~]#
可以看到 Python 3.7.3 被安装到 /usr/local/bin/python3 目录下,pip3 被安装到 /usr/local/bin/pip3 目录下。
现在在命令行输入 python3,可以看到能成功进入 python3 的终端,大功告成。就是如此简单。
这样安装完成之后,Python3 可以正常使用,且 Python2 也同时存在
可以输入以下命令查看
python3 -V && python -V
python3 -V 版本3(3.7.3)
python -V 版本2(2.7.x)
各自对应的安装目录
which python3 && which python
/usr/bin/python3 版本3(3.7.3)
/usr/bin/python 版本2(2.7.x)
附脚本源码:
#!/bin/bash
#coding:utf-8
#判断当前登录的用户是否为root
if [ `whoami` != "root" ]
then
echo -e "\033[31m Current user is not root! Please switch root to try again! \033[0m"
else
#实现Press any key to continue ...
get_char(){
SAVEDSTTY=`stty -g`
#隐藏终端输入显示
stty -echo
stty cbreak
#dd等待用户按键 bs(block size)块大小=1,count总数=1,作用只取一个字符, 2> /dev/null 不显示任何信息
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
#恢复终端显示
stty echo
stty $SAVEDSTTY
}
echo "Beginning install Python3.7.3, Press any key to continue ..."
char=`get_char`
#安装编译环境
echo "Start Install Development tools and Dependency package..."
sudo yum -y groupinstall "Development tools"
#安装依赖包
sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
echo -e "\033[32m Development tools and Dependency package Install Successfully! \033[0m"
#获取Python3.7.3安装包
echo "Start Download Python-3.7.3 install package..."
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
echo -e "\033[32m Download Python-3.7.3 install package Successfully! \033[0m"
#解压安装包
echo "Start Untar the Python-3.7.3 install package..."
tar -zxvf Python-3.7.3.tgz
echo -e "\033[32m Untar the Python-3.7.3 install package Successfully! \033[0m"
#切换到安装包目录
cd Python-3.7.3
#配置Python3的安装目录
./configure --prefix=/usr/local/bin/python3
#编译安装 Python3
echo "Start make install Python-3.7.3..."
sudo make && make install
echo -e "\033[32m Make install Python-3.7.3 Successfully! \033[0m"
#创建Python3软链接
ln -s /usr/local/bin/python3/bin/python3 /usr/bin/python3
#创建pip3软链接
ln -s /usr/local/bin/python3/bin/pip3 /usr/bin/pip3
#输出 Python3 及 pip3 的版本
echo -e "\nInstalled Python and pip version is ... "
python3 -V && pip3 -V
#输出 Python3 及 pip3 的安装目录
echo -e "\nYour Python and pip have been installed in follows directory... "
which python3 && which pip3
echo -e "\033[32m \nInstall Successfully! Enjoy!\n \033[0m"
fi
刚学的 Shell ,不喜勿喷;初级 Shell 脚本,高手忽略。
上一篇 : Shell 脚本实现网站及数据库定时自动备份 下一篇 : 多吃苹果有利于身体健康,但“黑苹果”除外