title: 使用update-alternatives管理多个版本的Python
tags: Python
categories:
- Python
cover: ‘http://qcd9tbwy7.bkt.clouddn.com/qiniuImg/python.jpg‘
abbrlink: 771a7fb1
date: 2020-06-23 16:30:33
查看系统中安装的python版本
vagrant@ubuntu-xenial:~$ whereis python
python: /usr/bin/python /usr/bin/python3.6m /usr/bin/python3.6 /usr/bin/python3.5 /usr/bin/python3.6-config /usr/bin/python3.6m-config /usr/bin/python3.5m /usr/lib/python3.7 /usr/lib/python3.6 /usr/lib/python3.5 /usr/lib/python2.7 /usr/lib/python3.8 /etc/python3.6 /etc/python3.5 /usr/local/lib/python3.6 /usr/local/lib/python3.5 /usr/include/python3.6m /usr/include/python3.6 /usr/share/python
默认python版本选择
- update-alternatives语法 ```shell vagrant@ubuntu-xenial:~$ update-alternatives —help
用法:update-alternatives [<选项> …] <命令> 命令: —install <链接> <名称> <路径> <优先级> [—slave <链接> <名称> <路径>] … 在系统中加入一组候选项。 —remove <名称> <路径> 从 <名称> 替换组中去除 <路径> 项。 —remove-all <名称> 从替换系统中删除 <名称> 替换组。 —auto <名称> 将 <名称> 的主链接切换到自动模式。 —display <名称> 显示关于 <名称> 替换组的信息。 —query <名称> 机器可读版的 —display <名称>. —list <名称> 列出 <名称> 替换组中所有的可用候选项。 —get-selections 列出主要候选项名称以及它们的状态。 —set-selections 从标准输入中读入候选项的状态。 —config <名称> 列出 <名称> 替换组中的可选项,并就使用其中哪一个,征询用户的意见。 —set <名称> <路径> 将 <路径> 设置为 <名称> 的候选项。 —all 对所有可选项一一调用 —config 命令。
2.
更新update-alternatives中python列表
```shell
vagrant@ubuntu-xenial:~$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 1
vagrant@ubuntu-xenial:~$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2
第一个参数:- -install表示向update-alternatives注册服务名。
第二个参数:注册最终地址,成功后将会把命令在这个固定的目的地址做真实命令的软链,以后管理就是管理这个软链;
第三个参数:服务名,以后管理时以它为关联依据。
第四个参数:被管理的命令绝对路径。
第五个参数:在自动模式下,优先级,数字越大优先级越高。
选择适当版本 ```shell vagrant@ubuntu-xenial:~$ sudo update-alternatives —config python There are 2 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
0 /usr/bin/python3.5 2 auto mode 1 /usr/bin/python3.5 2 manual mode
- 2 /usr/bin/python3.6 1 manual mode #当前系统使用的版本 ```
- 查看python版本
vagrant@ubuntu-xenial:~$ python
Python 3.6.9 (default, Apr 18 2020, 01:56:04)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
- 查看命令链接组的所有信息
vagrant@ubuntu-xenial:~$ sudo update-alternatives --display python
python - manual mode
link best version is /usr/bin/python3.5
link currently points to /usr/bin/python3.6
link python is /usr/bin/python
/usr/bin/python3.5 - priority 2
/usr/bin/python3.6 - priority 1