ubutu18.04 使用update-alternatives 对python和python3进行版本管理
1. update-alternatives
1.1 何为update-alternatives? update-alternatives:用于处理linux系统中软件版本的切换,如python、java软件版本较多的软件。 update-alternatives的管理目录:/etc/alternatives 。
1.2. 具体用法:
china@ubuntu:~$ update-alternatives --help
用法:update-alternatives [<选项> ...] <命令>
命令:
--install <链接> <名称> <路径> <优先级>
[--slave <链接> <名称> <路径>] ...
在系统中加入一组候选项。
--remove <名称> <路径> 从 <名称> 替换组中去除 <路径> 项。
--remove-all <名称> 从替换系统中删除 <名称> 替换组。
--auto <名称> 将 <名称> 的主链接切换到自动模式。
--display <名称> 显示关于 <名称> 替换组的信息。
--query <名称> 机器可读版的 --display <名称>.
--list <名称> 列出 <名称> 替换组中所有的可用候选项。
--get-selections 列出主要候选项名称以及它们的状态。
--set-selections 从标准输入中读入候选项的状态。
--config <名称> 列出 <名称> 替换组中的可选项,并就使用其中
哪一个,征询用户的意见。
--set <名称> <路径> 将 <路径> 设置为 <名称> 的候选项。
--all 对所有可选项一一调用 --config 命令。
<链接> 是指向 /etc/alternatives/<名称> 的符号链接。
(如 /usr/bin/pager)
<名称> 是该链接替换组的主控名。
(如 pager)
<路径> 是候选项目标文件的位置。
(如 /usr/bin/less)
<优先级> 是一个整数,在自动模式下,这个数字越高的选项,其优先级也就越高。
2. python或者在Ubuntu中是如何实现的对python各个版本的调用的。
2.1 ubuntu18.04.4中python默认版本为python2.7、python3的默认版本为python3.6.
2.2 python软件的可执行程序在 /usr/bin 目录下。
2.3 在终端输入python或者python3后为什么可以调用Python2.7或者3.6?因为在 /usr/bin 目录下的python软链接上Python2.7、python3软链接上python3.6,何为软链接?可以理解为windows系统下在快捷方式。
查看 /uer/bin 目录下的 python和python3软链接。
cd /usr/bin
ll | grep python
2.4 软链接和硬链接:简单理解软链接就是类似于windows的一种快捷方式,硬链接就是原始文件的镜像(复制品),当原始文件被删除时,软链接会失效而硬链接却不会受其影响。
命令格式如下
例:对python2.7建立软链接和硬链接:
软链接:sudo ln -s python2.7 python
硬链接:sudo ln python2.7 python
3. 言归正传,使用update-alternatives 对python和python3进行版本管理
3.1 update-alternatives实际上是对 /usr/bin 目录下的python和python3 再套一层软链接,多一层中间层,利用该中间层去修改当前的python版本。
未使用update-alternatives时,在终端输入python系统执行路径为:
/usr/bin/python --> python2.7(对应链接的python版本)
使用update-alternatives时,在终端输入python系统执行路径为:
/usr/bin/python --> /etc/alternatives/python --> python2.7(对应链接的python版本)
关键就是设置/etc/alternatives/python所链接的python版本。
3.2 以 python3为例 利用update-alternatives进行版本管理与切换。
3.2.1 向update-alternatives注册服务名,以及设置优先级
--install <链接> <名称> <路径> <优先级>
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python2.7 1
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 3
3.2.2 查看注册名python3,以及python3 对应的python版本为3.6 –display <名称> 显示关于 <名称> 替换组的信息。 –auto <名称> 将 <名称> 的主链接切换到自动模式。
3.2.3 切换python3 对应的python版本为3.8 –config <名称>
sudo update-alternatives --config python3
输入编号:3
至此完结撒花,python3所对应的python版本已由python3.6切换至python3.8。
|