在Linux中,"update-alternatives"命令是什么?它有什么用途?

7

在Linux中安装Java时,会使用到update-alternatives命令。由于我是初次接触Linux环境,希望了解这个命令的作用是什么。

>>sudo update-alternatives --install /usr/bin/java java /usr/lib/java/JDk.../bin/java
2个回答

9
基本上,它告诉您的机器使用这个替代的Jave JDK而不是默认的JDK,在Linux系统中,默认的JDK是OpenJDK。
从man页面中简要摘录比我写的任何答案都更好: update-alternatives 创建、删除、维护和显示 Debian alternatives 系统中符号链接的信息。可能会在同一系统上安装多个执行相同或类似功能的程序,例如,许多系统同时安装了几个文本编辑器。这使得系统用户可以选择使用不同的编辑器,但如果用户没有指定特定的首选项,那么对于一个程序来说,要选择调用哪个编辑器就变得困难了。Debian 的 alternatives 系统旨在解决这个问题。文件系统中的通用名称由提供可互换功能的所有文件共享。alternatives 系统和系统管理员共同确定此通用名称引用的实际文件。例如,如果系统上安装了文本编辑器 ed(1) 和 nvi(1),则 alternatives 系统将默认使通用名称 /usr/bin/editor 引用 /usr/bin/nvi。系统管理员可以覆盖此设置,并使其引用 /usr/bin/ed,alternatives 系统在明确请求之前不会更改此设置。
使用 --install 命令,您指定了一个链接“/usr/bin/java”,一个名称“java”和一个路径“/usr/lib/java/JDK....”,并向系统添加了一组备选项。 链接是主链接的通用名称,名称是其在备选目录中的符号链接名称,路径是为主链接引入的备选项。
我希望足够清楚,在这里有一个关于Java备选项的文章
对于完整的使用列表,建议查看同一手册页,在操作系统 shell 中键入 man update-alternatives;

1
我希望从头开始为您解释它...如果您在Linux上有两个或更多以相同命令开头的程序版本,则可以使用update-alternatives命令来确定该程序的默认版本,您还可以轻松更改该命令的默认版本..假设您的系统上有2个Python版本。 Python 2和Python 3.默认情况下,Linux上的python命令在shell上启动python2解释器。 您认为python 2已经过时了,想要使用python3代替python2。其中一个解决方案是在shell上输入python3命令并启动其版本大于3的Python解释器...但您想输入python命令并让shell认识到您想运行python3解释器。在这里,update-alternatives命令起作用并确定您要为特定命令使用的程序的默认版本和版本。

我告诉您,默认情况下,python命令在linux上启动python 2解释器。 您想要更改它。按照以下示例操作:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1.

当您在Linux上执行此命令时,您告诉shell,在此之后,两个不同程序的两个链接链接到Linux上的python命令..实际上,您在python命令上安装了python3程序,并且有1个命令中存在两个程序,您可以更改这些程序的默认值并运行其中之一,通过更改命令中的优先级或手动配置来设置默认程序..

希望这对您有用!


欢迎!顺便提一下,您正在回答一个超过3年的问题,并且已经有一个相当高赞的答案。您的回答似乎全部关于Python的示例,但是原帖是在问Java(而现有的答案特别涉及Java)。 - David Makogon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接