来自https://stackoverflow.com/a/48374564/156458
update-alternatives --config java
通过将符号链接安装到命令来工作/usr/bin/java
,/usr/bin/javac
等等。
如何update-alternatives --config somecommand
找到符号链接somecommand
?
例如,它是否依赖于$PATH
,因此其工作方式与直接在 bash 中somecommand
运行时bash 查找文件的方式相同吗?somecommand
如果文件somecommand
不是符号链接,会update-alternative --config somecommand
起作用吗?
谢谢。
工作方式
update-alternatives
在其手册页中进行了描述。给定命令的可用替代列表(或文件,通常 - 替代不限于命令)存储在/var/lib/dpkg/alternatives
Debian 及其衍生版本的文件中;因此 的替代品java
存储在/var/lib/dpkg/alternatives/java
. 在 Fedora、RHEL 和衍生产品上,文件存储在/var/lib/alternatives
.当一个包希望提供替代方案时,它会使用
update-alternatives --install
(和适当的参数)安装它;当它希望删除替代项时,它会使用update-alternatives --remove
. 如有必要,您可以使用这些来提供自己的替代方案。请注意,特别是在 Java 的情况下,在 Debian 和衍生产品上,替代处理稍微复杂一些,您应该使用
update-java-alternatives
而不是手动操作所有替代。如果由于某种原因替代管理的文件不是符号链接,
update-alternatives
则将认为替代已损坏并拒绝触摸它。