update-alternatives

Linux 发展到今天,可用的软件已经很是多了。这样天然会有一些软件的功能大体上相同。例如,一样是编辑器,就有 nvi、vim、emacs、nano,并且我说的这些还只是一部分。大多数状况下,这样的功能类似的软件都是同时安装在系统里的,能够用它们的名称来执行。例如,要执行 vim,只要在终端下输入 vim 并按回车就能够了。不过,有些状况下咱们须要用一个相对固定的命令调用这些程序中的一个。例如,当咱们写一个脚本程序时,只要写下 editor,而不但愿要为“编辑器是哪一个”而操心。Debian 提供了一种机制来解决这个问题,而 update-alternatives 就是用来实现这种机制的。

1)首先要介绍的参数是 --display。它使咱们能够看到一个命令的全部可选命令。执行:
update-alternatives --display editor
能够看到个人机器上的全部能够用来被 editor 连接的命令。

2)--config。这个选项使咱们能够选择其中一个命令程序来做为editor,执行:
update-alternatives --config editor

首先,update-alternatives 在通常状况下是由postinst 和 prerm 这样的安装脚本自动调用的,因此一个 alternative 的状态有两种:自动和手动。每一个 alternative 的初始状态都是自动。若是系统发现管理员手动修改了一个 alternative,它的状态就从自动变成了手动,这样安装脚本就不会更新它了。若是你但愿将一个 alternative 变回自动,只要执行代码:
update-alternatives --auto editor

general name -- 这是指一系列功能类似的程序的“公用”名字(包括绝对路径),好比 /usr/bin/editor。
link -- 这是指一个 alternative 在 /etc/alternative 中的名字,好比 editor。
alternative -- 顾名思义,这是指一个可选的程序所在的路径(包括绝对路径),好比 /usr/bin/vim。

-auto,--display 和 --config 跟的都是 link。咱们要说的第三个概念是优先级。这个比较简单,固然优先级越高的程序越好啦。最后一个概念是主和从的 alternative。想一想看,你将 /usr/bin/editor 连接到了 vim,但是当你执行 man editor 时看到的倒是 emacs 的 manpage,你会作何感想呢?这就引出了主和从 alternative 的概念了:当更新主的 alternative 时,从的 alternative 也会被更新。

另外两个选项:
第一个是 --install。它的格式是:  代码:

update-alternatives --install gen link alt pri [--slave sgen slink salt] ...

gen,link,alt,pri 分别是咱们上面说过的。若是须要从的 alternative,你能够用--slave 加在后面。若是你在向一个已经存在的 alternative 组中添加新的 alternatives,该命令会把这些 alternatives 加入到这个已经存在的 alternative 组的列表中,并用新的可选命令做为新的命令;不然,将会创建一个新的自动的 alternative组。

呜呼!我加入了一个错误的 alternative。我不想要这个 alternative 了。在这种状况
下,能够执行下面的命令:代码:

update-alternatives --remove name path java


设置默认的java环境 vim

sudo update-alternatives --install /usr/bin/java java /data/soft/jdk/bin/java 10000 编辑器

本站公众号
   欢迎关注本站公众号,获取更多信息