• ubutu18.04 使用update-alternatives 对python和python3进行版本管理


    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)
    <优先级> 是一个整数,在自动模式下,这个数字越高的选项,其优先级也就越高。
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    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 
    
    • 1
    • 2
    • 3

    2.4 软链接和硬链接:简单理解软链接就是类似于windows的一种快捷方式,硬链接就是原始文件的镜像(复制品),当原始文件被删除时,软链接会失效而硬链接却不会受其影响。

    命令格式如下
    	例:对python2.7建立软链接和硬链接:
    	软链接:sudo ln -s python2.7 python
    	硬链接:sudo ln python2.7 python
    
    • 1
    • 2
    • 3
    • 4

    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版本。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    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
    
    # 第一个参数: --install 表示向update-alternatives注册服务名。
    # 第二个参数: 注册最终地址,成功后将会把命令在这个固定的目的地址做真实命令的软链,以后管理就是管理这个软链;
    # 第三个参数: 服务名,以后管理时以它为关联依据。
    # 第四个参数: 被管理的命令绝对路径。
    # 第五个参数: 优先级,数字越大优先级越高。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    3.2.2 查看注册名python3,以及python3 对应的python版本为3.6
    –display <名称> 显示关于 <名称> 替换组的信息。
    –auto <名称> 将 <名称> 的主链接切换到自动模式。

    在这里插入图片描述在这里插入图片描述

    3.2.3 切换python3 对应的python版本为3.8
    –config <名称>

    sudo  update-alternatives --config  python3
    
    • 1

    在这里插入图片描述

    输入编号:3
    
    • 1

    在这里插入图片描述
    在这里插入图片描述
    至此完结撒花,python3所对应的python版本已由python3.6切换至python3.8。

  • 相关阅读:
    CocosCreator3.8研究笔记(十一)CocosCreator Prefab(预制件)理解
    【Java SE】数组
    29.精讲JavaScript字符串,常见的基础方法以及特殊字符、emoji内部表示方式
    电源硬件设计----升压(Boost)变换器基础
    前缀和与差分
    关于vue2回显表格数据忽略中间空格补全
    linux--进度条
    【汇总】nltk相关资源包无法下载报错问题
    Jmeter关联操作
    SpringBoot借助hutool生成图片二维码
  • 原文地址:https://blog.csdn.net/qq_38393271/article/details/126904166