update-alternatives 命令用于处理linux系统中软件版本的切换,在各个linux发行版中均提供了该命令,命令参数略有区别,但大致是一样的。
这里只介绍几个常用参数说明。
注册
# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 999
- 第一个参数–install表示向update-alternatives注册服务名。
- 第二个参数是注册最终地址,成功后将会把命令在这个固定的目的地址做真实命令的软链,以后管理就是管理这个软链;( –install link name path priority)
其中link为系统中功能相同软件的公共链接目录,比如/usr/bin/java(需绝对目录);name为命令链接符名称,如java path为你所要使用新命令、新软件的所在目录 priority为优先级,当命令链接已存在时,需高于当前值,因为当alternative为自动模式时,系统默认启用priority高的链接;# 整数 根据版本号设置的优先级(更改的优先级需要大于当前的)
- 第三个参数:服务名,以后管理时以它为关联依据。
- 第四个参数,被管理的命令绝对路径。
- 第五个参数,优先级,数字越大优先级越高。
–get-selections
查看当前所有状态
- 第一列名称
- 第二列类型 auto 和 manual
- 第三列是路径
# update-alternatives --get-selections
awk auto /usr/bin/mawk
c++ auto /usr/bin/g++
c89 auto /usr/bin/c89-gcc
c99 auto /usr/bin/c99-gcc
cc auto /usr/bin/gcc
cpp auto /usr/bin/cpp
editor auto /usr/bin/vim.basic
ex auto /usr/bin/vim.basic
fakeroot auto /usr/bin/fakeroot-sysv
gcc auto /usr/bin/gcc-4.8
–display \<name>
# update-alternatives --display gcc
gcc - auto mode
link best version is /usr/bin/gcc-4.8
link currently points to /usr/bin/gcc-4.8
link gcc is /usr/bin/gcc
/usr/bin/gcc-4.8 - priority 999
/usr/bin/gcc-7 - priority 90
当前 gcc 是 auto, 也就是说 谁的 priority 高就使用谁
manual 手动选择
# update-alternatives --config gcc
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-4.8 999 auto mode
1 /usr/bin/gcc-7 90 manual mode
Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/gcc-7 to provide /usr/bin/gcc (gcc) in manual mode
选择 1 使用 gcc-7 作为默认版本
auto 自动选择
update-alternatives --auto gcc
转载请注明:爱开源 » update-alternatives 管理软件版本