Ubuntu Alternatives 管理机制
Ubuntu Alternatives 管理机制
‘update-alternatives’ 命令是Debian系统包管理器dpkg的一个命令,可以用来解决系统中工具多个版本的问题。
原理上,alternatives会创建’/usr/bin/’下的软连接,指向 ‘/etc/alternatives/’ 目录下对应的命令, 而该目录下也是链接,指向最终的命令。
例如,通过alternatives修改editor为vim之后,软连接就是这样:
zpz@nuc6i3:~$ ls -l /usr/bin/editor
lrwxrwxrwx 1 root root 24 4月 6 12:32 /usr/bin/editor -> /etc/alternatives/editor
zpz@nuc6i3:~$ ls -l /etc/alternatives/editor
lrwxrwxrwx 1 root root 18 4月 9 22:47 /etc/alternatives/editor -> /usr/bin/vim.basic
通过命令 update-alternatives --config editor
就能修改:
zpz@nuc6i3:~$ update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
* 3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 15 manual mode
Press <enter> to keep the current choice[*], or type selection number:
通过命令 update-alternatives --list editor
可以快速列出备选项(对比config而言)。
通过命令 update-alternatives --install ...
可以安装备选项,以gcc为例:
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 10
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 20
‘–install’ 参数中:
- 第一个为 目标链接路径,用户界面路径
- 第二个为 类别名字,该备选项名字
- 第三个为 真实路径
- 第四个为 优先级,越大优先级越高
安装之后就可以通过 ‘–config’ 来进行配置。
Refer
- update-alternatives Linux中的默认程序修改器
- linux版本管理工具update-alternatives
- ubuntu 20.04如何切换gcc/g++/python的版本
- Linux Manual:
man update-alternatives