我需要帮助来理解以下参数
"/usr/bin/java" "java" ""/usr/java/latest/bin/java" 1
在以下命令中。
update-alternatives --install "/usr/bin/java" "java" ""/usr/java/latest/bin/java" 1
我知道您正在告诉系统可以使用另一个 Java 版本。
但:
为什么引号里有一个“java”,并且这个1有什么用?
答案1
为什么引号里有一个“java”
引用Ubuntu 手册页此文本是“名称”,即“替代目录中的符号链接的名称”。换句话说,当您在终端中键入 java(或您选择的任何文本)时,它知道您正在寻找这个特定的链接。
1 的目的是什么?
再次从手册页中可以看出,这是用于以下目的的“优先级” - “当链接组处于自动模式时,备选系统确保组中的链接指向适合该组的最高优先级备选。”换句话说,如果需要决定使用哪个链接,则数值较高的链接胜出。然而,我怀疑它可能无关紧要,通过使用update-alternatives
您将默认设置从“自动”切换到“手动”,在这种情况下,我认为它不适用。但我不是专家。
有一个William DeMeo 的有用帖子作为背景。
答案2
从http://linux.die.net/man/8/update-alternatives:
update-alternatives --install link name path priority
稍后将更新答案,解释 Linux 中的“替代方案”。
答案3
如果你运行命令:
$man update-alternatives
输出:
alternatives [options] --install link name path priority [--slave link name path]... [--initscript service]
这java
意味着想要优先更新 java 1
,2
,3
等。
您需要按照上面给出的顺序提及路径和所有参数。
答案4
先前的答案缺少的是对参数的实际解释,这也包括在 man 中:
man update-alternatives
--install link name path priority [--slave link name path]...
向系统添加一组替代方案。link 是主链接的通用名称,name 是其在替代方案目录中的符号链接名称,path 是引入主链接的替代方案。--slave 后的参数是通用名称、替代方案目录中的符号链接名称和从属链接的替代路径。可以指定零个或多个 --slave 选项,每个选项后跟三个参数。请注意,主替代方案必须存在,否则调用将失败。但是,如果不存在从属替代方案,则不会安装相应的从属替代链接(仍会显示警告)。如果在必须安装替代链接的地方安装了某个实际文件,则除非使用 --force,否则将保留该文件。
如果指定的替代名称已存在于替代系统的记录中,则提供的信息将作为该组的一组新替代添加。否则,将使用此信息添加一个设置为自动模式的新组。如果该组处于自动模式,并且新添加的替代的优先级高于该组的任何其他已安装的替代,则符号链接将更新为指向新添加的替代。