Linux系列讲解 —— 【update-alternatives】本地软件版本管理工具(以配置python为例)

有时候在电脑上安装了某个程序的多个版本,比如python,常见的有python2.7和python3.5。在不同情况下需要使用不同版本的软件包,此时就可以使用update-alternatives进行切换。本文以配置python为例,进行讲解。

1. 查看都安装了哪些版本

使用whereis或者ls查看一下,可以看到我的电脑上安装了python2.7和python3.5两个版本的程序包(默认执行程序都在/usr/bin中)

sun@ubuntu:~$ whereis python
python: /usr/bin/python3.5m 
/usr/bin/python3.5 
/usr/bin/python2.7 
/usr/bin/python 
/usr/bin/python3.5m-config 
/usr/bin/python3.5-config 
/usr/lib/python3.5 
/usr/lib/python2.7 
/etc/python3.5 
/etc/python2.7 
/etc/python 
/usr/local/lib/python3.5 
/usr/local/lib/python2.7 
/usr/include/python3.5m 
/usr/include/python3.5 
/usr/share/python 
/usr/share/man/man1/python.1.gz

2. 将这几个版本都加入候选列表中

用法:update-alternatives --install <链接> <名称> <路径> <优先级>

//登录root账户
sun@ubuntu:~$ su root

//添加python2.7到候选列表
root@ubuntu:/home/sun# update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
update-alternatives --install /usr/bin/python python /usr/bin/python2.7

//添加python3.5到候选列表
root@ubuntu:/home/sun# update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2
update-alternatives --install /usr/bin/python python /usr/bin/python3.5

3. 切换到不同版本

#查看python的候选项
sun@ubuntu:~$ update-alternatives --list python
/usr/bin/python2.7
/usr/bin/python3.5

#查看当前的python版本
sun@ubuntu:~$ python --version
Python 2.7.12

#将python2.7切换版本到python3.5
sun@ubuntu:/root$ sudo update-alternatives --config python 
有 2 个候选项可用于替换 python (提供 /usr/bin/python)。

  选择       路径              优先级  状态
------------------------------------------------------------
  0            /usr/bin/python3.5   2         自动模式
* 1            /usr/bin/python2.7   1         手动模式
  2            /usr/bin/python3.5   2         手动模式

要维持当前值[*]请按<回车键>,或者键入选择的编号:2  #在这里输入编号,回车即可
update-alternatives: 使用 /usr/bin/python3.5 来在手动模式中提供 /usr/bin/python (python)

#再次查看python的当前版本
sun@ubuntu:~$ python --version
Python 3.5.2

4. 移除update-alternatives候选项

#update-alternatives 名字 路径
update-alternatives python /usr/bin/python2.7

5. 查看update-alternatives都配置了哪些程序

sudo update-alternatives --get-selections

猜你喜欢

转载自blog.csdn.net/In_engineer/article/details/122471981