linux 中 alternatives 和 update-alternative
linux 中有很多类似的软件,比如编辑器,有 vim, vi, nano 。如果再细分不同的软件还有不同的版本,抛开版本不说。比如 vim 中有 vim 还有 vim.tiny。这样,就会产生一个问题,程序自动运行的时候,会调用那个程序。
比如使用 git 提交代码的时候,可能会自动调用一个编辑器,来提交一些输入。这个编辑器是 vim 还是 Emacs 。当然可以在 git 中配置调用那个编辑器,如果没有配置呢,或者是其他的程序调用呢?
这个时候就可以用 alternatives 来设置一个默认的调用程序。
alternatives 和 update-alternative 的区别
其实两个是同一个程序,alternatives 可以再centos中使用, update-alternative 可以在 debian ubuntu 系统中使用。
alternatives 的中文意思是 ,可供选择的事物。
# centos
alternatives --version
alternatives version 1.7.6
# debian
update-alternatives --version
Debian update-alternatives version 1.19.7.
This is free software; see the GNU General Public License version 2 or
later for copying conditions. There is NO warranty.
使用 update-alternative --list 查看可选的软件
update-alternatives --list editor
/bin/ed
/bin/nano
/usr/bin/vim.tiny
使用 update-alternatives --config editor 配置默认的编辑器
update-alternatives --config editor
There are 3 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.tiny 15 manual mode
Press <enter> to keep the current choice[*], or type selection number:
可以看到上面,列出了 4 个编辑器,想添加一个怎么办呢? 使用 update-alternatives: --install
使用 update-alternatives: --install 添加一个可选的软件
# update-alternatives: --install needs <link> <name> <path> <priority>
# which vim
# /usr/local/vim/bin/vim (软件的真实路径)
update-alternatives --install /usr/bin/vim editor /usr/local/vim/bin/vim 4
update-alternatives: renaming editor link from /usr/bin/editor to /usr/bin/vim
# 查看
update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/vim).
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.tiny 15 manual mode
4 /usr/local/vim/bin/vim 4 manual mode
可以看到 vim 已经成功添加。