zoukankan      html  css  js  c++  java
  • ubuntu下安装多个jdk的切换命令update-alternatives

      update-alternatives  以前叫alternatives

    下面的介绍,直接引用了,其中必须安装了才会在候选里面出现。

    usage: update-alternatives --install <link> <name> <path> <priority>
      [--initscript <service>]
      [--slave <link> <name> <path>]*
      update-alternatives --remove <name> <path>
      update-alternatives --auto <name>
      update-alternatives --config <name>
      update-alternatives --display <name>
      update-alternatives --set <name> <path>

    common options: --verbose --test --help --usage --version
      --altdir <directory> --admindir <directory>

    说明:
    update-alternatives --install <link> <name> <path> <priority>
    其中,
    install表示安装
    link是符号链接
    name则是标识符
    path是执行文件的路径
    priority则表示优先级

    以java的安装为例,我的Fedora 8下自带了两种java版本,分别如下:

      Selection Command
    -----------------------------------------------
    * 1 /usr/lib/jvm/jre-1.7.0-icedtea/bin/java
      2 /usr/lib/jvm/jre-1.5.0-gcj/bin/java


    我在目录/tools/jdk安装了java version "1.4.2_19"
    [root@localhost test]# update-alternatives --install /usr/bin/java java /tools/jdk/bin/java 3
    [root@localhost test]# update-alternatives --config java

    There are 3 programs which provide 'java'.

      Selection Command
    -----------------------------------------------
    *+ 1 /usr/lib/jvm/jre-1.7.0-icedtea/bin/java
      2 /usr/lib/jvm/jre-1.5.0-gcj/bin/java
      3 /tools/jdk/bin/java

    Enter to keep the current selection[+], or type selection number: 3


    我还在目录/tools/jdk6下安装了java version "1.6.0_12"
    [root@localhost test]# update-alternatives --install /usr/bin/java java /tools/jdk6/bin/java 4
    [root@localhost test]# update-alternatives --config java

    There are 4 programs which provide 'java'.

      Selection Command
    -----------------------------------------------
    * 1 /usr/lib/jvm/jre-1.7.0-icedtea/bin/java
      2 /usr/lib/jvm/jre-1.5.0-gcj/bin/java
     + 3 /tools/jdk/bin/java
      4 /tools/jdk6/bin/java

    Enter to keep the current selection[+], or type selection number: 4

    用update-alternatives --config java就可以选择你想要的Java版本。

    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实现 LeetCode 740 删除与获得点数(递推 || 动态规划?打家劫舍Ⅳ)
    Python oct() 函数
    Python hex() 函数
    Python ord() 函数
    Python unichr() 函数
    Python chr() 函数
    arm,asic,dsp,fpga,mcu,soc各自的特点
    摄像头标定技术
    自主泊车技术分析
    畸变的单目摄像机标定
  • 原文地址:https://www.cnblogs.com/luolizhi/p/5708844.html
Copyright © 2011-2022 走看看