一、update-alternatives是什么?
update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令、哪个软件的版本。
二、update-alternatives的选项--install用法
比如,我们在系统中同时安装了open jdk和sun jdk两个版本,而我们又希望系统默认使用的是sun jdk,那怎么办呢?
通过update-alternatives就可以很方便的实现了。命令如下:
sudo update-alternatives --install /usr/bin/java java /opt/java/jdk1.6.0_27/bin/java 1062 设置系统使用jdk1.6中的java命令。
其中1062 为alternative更改后的优先级,新更改的优先级需要大于open jdk当前的优先级。
通过update-alternatives --display java 可以查看系统使用的是哪个路径下的java命令的详细信息如下:
java - auto mode
link currently points to /opt/java/jdk1.6.0_27/bin/java
/opt/java/jdk1.6.0_27/bin/java - priority 1062
/usr/lib/jvm/java-6-openjdk/jre/bin/java - priority 1061
slave java.1.gz: /usr/lib/jvm/java-6-openjdk/jre/man/man1/java.1.gz
Current 'best' version is '/opt/java/jdk1.6.0_27/bin/java'.
三、update-alternatives其他几个主要选项的用法
现在开始分别介绍一下 update-alternatives 命令中的几个主要选项,diplay、install、remove、config。
1、display选项:查看一个命令链接组的所有信息,包括链接命令的模式(自动还是手动)、链接命令priority(优先级)值、所有可 用的链接命令等等。
使用语法如下:
update-alternatives --display name
其中name为命令链接命令名称,如editor。
例如:update-alternatives --display editor 查看系统默认使用的是哪个路径下的编辑器:
editor - auto mode
link currently points to /bin/nano
/bin/ed - priority -100
slave editor.1.gz: /usr/share/man/man1/ed.1.gz
/bin/nano - priority 40
slave editor.1.gz: /usr/share/man/man1/nano.1.gz
/usr/bin/vim.tiny - priority 10
slave editor.1.gz: /usr/share/man/man1/vim.1.gz
slave editor.fr.1.gz: /usr/share/man/fr/man1/vim.1.gz
slave editor.it.1.gz: /usr/share/man/it/man1/vim.1.gz
slave editor.pl.1.gz: /usr/share/man/pl/man1/vim.1.gz
slave editor.ru.1.gz: /usr/share/man/ru/man1/vim.1.gz
Current 'best' version is '/bin/nano'.
2、remove选项:删除一个alternative及相关从alternative。
使用语法如下:
update-alternatives --remove name path
其中name与path与install中的一致。
如果所删除的链接组中还有其他链接的话,系统将会自动从其他中选择一个priority高的链接作为默认为链接。
例如:sudo update-alternatives --remove editor /bin/nano 删除链接组中的某一个链接。
验证是否被删除:update-alternatives --display editor 显示详细信息如下:
editor - auto mode link currently points to /usr/bin/vim.tiny /bin/ed - priority -100 slave editor.1.gz: /usr/share/man/man1/ed.1.gz /usr/bin/vim.tiny - priority 10 slave editor.1.gz: /usr/share/man/man1/vim.1.gz slave editor.fr.1.gz: /usr/share/man/fr/man1/vim.1.gz slave editor.it.1.gz: /usr/share/man/it/man1/vim.1.gz slave editor.pl.1.gz: /usr/share/man/pl/man1/vim.1.gz slave editor.ru.1.gz: /usr/share/man/ru/man1/vim.1.gz Current 'best' version is '/usr/bin/vim.tiny'.
3、install选项:增加一组新的系统命令链接符。
使用语法如下:
update-alternatives --install link name path priority [--slave link name path]...
其中link为系统中功能相同软件的公共链接目录,比如/usr/bin/java(需绝对目录)。
name为命令链接符名称,如editor。
path为你所要使用新命令、新软件的所在目录,如/bin/nano。
priority为优先级,当默认命令链接已存在时,指定新的默认链接命令符需高于当前值。
因为当alternative为自动模式时,系统默认启用priority高的链接; --slave为从alternative。
例如: sudo update-alternatives --install /usr/bin/editor editor /bin/nano 40 执行命令后会自动启用priority高的链接。
若没有自动启用,则可以执行sudoupdate-alternatives --config editor 从链接组中启用priority高的链接。
验证新增的链接符是否成功:update-alternatives --display editor
editor - auto mode
link currently points to /bin/nano
/bin/ed - priority -100
slave editor.1.gz: /usr/share/man/man1/ed.1.gz
/bin/nano - priority 40
slave editor.1.gz: /usr/share/man/man1/nano.1.gz
/usr/bin/vim.tiny - priority 10
slave editor.1.gz: /usr/share/man/man1/vim.1.gz
slave editor.fr.1.gz: /usr/share/man/fr/man1/vim.1.gz
slave editor.it.1.gz: /usr/share/man/it/man1/vim.1.gz
slave editor.pl.1.gz: /usr/share/man/pl/man1/vim.1.gz
slave editor.ru.1.gz: /usr/share/man/ru/man1/vim.1.gz
Current 'best' version is '/bin/nano'.
4、config选项:为在现有的命令链接符选择一个作为系统默认的。
使用语法如下:
update-alternatives --config name
其中name与install中的一致。
例如:执行sudo 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 10 manual mode
Press enter to keep the current choice[*], or type selection number: 1 update-alternatives: using /bin/ed to provide /usr/bin/editor (editor) in manual mode. 说明执行命令成功。
注意: alternative有两种模式:auto和manual,默认都为auto模式,因为大多数情况下update-alternatives命令都被postinst (configure)
or prerm (install)调用的,如果将其更改成手动的话安装脚本将不会更新它了。
若是某个链接组的模式为manual,则想改为自动的模式的话,执行命令: update-alternatives --auto name即可,如 update-alternatives --auto editor
几种主要的选项就将这几个了,若想看其他选项的用法,可使用update-alternatives --help 或 man update-alternatives .