`update-alternatives --config somecommand` 如何找到 `somecommand` 的符号链接?

`update-alternatives --config somecommand` 如何找到 `somecommand` 的符号链接?

https://stackoverflow.com/a/48374564/156458

update-alternatives --config java/usr/bin/java通过将符号链接安装到命令as /usr/bin/javac等来工作。

如何update-alternatives --config somecommand找到 的符号链接somecommand

例如,它是否依赖于,因此其工作方式与直接在 bash 中运行时$PATHbash 查找文件的方式相同?somecommandsomecommand

如果文件somecommand不是符号链接,可以update-alternative --config somecommand工作吗?

谢谢。

答案1

工作方式update-alternatives在其描述联机帮助页。给定命令(或文件,一般来说,替代方案不限于命令)的可用替代列表存储在/var/lib/dpkg/alternativesDebian 及其衍生版本的文件中;因此 的替代方案java存储在 中/var/lib/dpkg/alternatives/java。在 Fedora、RHEL 及其衍生产品上,文件存储在/var/lib/alternatives.

当一个包希望提供替代方案时,它会使用update-alternatives --install(和适当的参数)来安装它;当它希望删除替代项时,它会使用update-alternatives --remove.如有必要,您可以使用这些来提供您自己的替代方案。

请注意,在 Java 的具体情况下,在 Debian 及其衍生版本上,替代方案处理稍微复杂一些,您应该使用update-java-alternatives而不是手动操作所有替代方案。

如果由于某种原因替代管理的文件不是符号链接,update-alternatives则将认为替代已损坏并拒绝触及它。

相关内容