update-alternatives(维护系统命令链接符)
可用来管理多版本的JDK,python等
管理多版本的Python和pip
一、分别安装Python2和python3,pip和pip3
[email protected]:~$ sudo apt-get install python
[sudo] sparrow 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
python 已经是最新版 (2.7.14-2ubuntu1)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 198 个软件包未被升级。
[email protected]:~$ sudo apt-get install python3
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
python3 已经是最新版 (3.6.3-0ubuntu2)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 198 个软件包未被升级。
[email protected]:~$ sudo apt-get install python-pip
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
python-pip 已经是最新版 (9.0.1-2)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 198 个软件包未被升级。
[email protected]:~$ sudo apt-get install python3-pip
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
python3-pip 已经是最新版 (9.0.1-2)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 198 个软件包未被升级。
二、管理多版本的Python
- 找到python命令的位置
[email protected]:~$ which python
/usr/bin/python
[email protected]:~$ ls /usr/bin/python
/usr/bin/python
[email protected]:~$ ls /usr/bin/python*
/usr/bin/python /usr/bin/python2.7-config /usr/bin/python3.6 /usr/bin/python3.6m-config /usr/bin/python3m-config
/usr/bin/python2 /usr/bin/python2-config /usr/bin/python3.6-config /usr/bin/python3-config /usr/bin/python-config
/usr/bin/python2.7 /usr/bin/python3 /usr/bin/python3.6m /usr/bin/python3m
[email protected]:~$
可以看到,/usr/bin下有Python2和Python3
2. 维护系统命令链接符
[email protected]:~$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1000
[email protected]:~$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1500
[email protected]:~$ sudo update-alternatives --list python
/usr/bin/python2
/usr/bin/python3
[email protected]:~$ sudo update-alternatives --config python
有 2 个候选项可用于替换 python (提供 /usr/bin/python)。
选择 路径 优先级 状态
------------------------------------------------------------
0 /usr/bin/python3 1500 自动模式
1 /usr/bin/python2 1000 手动模式
* 2 /usr/bin/python3 1500 手动模式
要维持当前值[*]请按<回车键>,或者键入选择的编号:
[email protected]:~$
- update-alternatives --install <命令地址> <命令名称(自己随意指定)> <需要链接的命令地址> <优先级,在auto模式下,数字较大的选项有较高的优先级>
- update-alternatives --list python 查看已经维护起来的Python的列表
- update-alternatives --config python 配置Python
二、管理多版本的pip
[email protected]:~$ which pip
/usr/bin/pip
[email protected]:~$ ls /usr/bin/pip*
/usr/bin/pip /usr/bin/pip2 /usr/bin/pip3
[email protected]:~$ sudo vim /usr/bin/pip2
#!/usr/bin/python2
# GENERATED BY DEBIAN
import sys
# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip import main
if __name__ == '__main__':
sys.exit(main())
~
~
~
[email protected]:~$ sudo vim /usr/bin/pip3
[email protected]:~$
类似上面的操作,但是要注意修改 /usr/bin/pip2 ,因为文件默认使用**/usr/bin/python**,要修改为**/usr/bin/python2**,pip3 中也看下是不是也需要修改
注:配置过程中如果出现问题
- 删除 /usr/bin/pip
- 新建软连接 /usr/bin/pip 指向 /etc/alternatives/pip
- 然后按照上面的步骤将多版本的pip管理起来就行了
我的个人博客,有空来坐坐