`update-alternatives`究竟做了什么?

什么是命令update-alternatives用于?

举个例子:

 sudo update-alternatives --install /usr/bin/java java /usr/local/java/jre1.7.0_09/bin/java 1 

它有什么作用? 如何将jdk添加到路径中呢?

假设我已经运行了命令。 我怎样才能恢复原状?

它更新/etc/alternatives的链接以指向程序用于此目的。 有许多例子,如x-www-browsereditor等,它们将链接到你喜欢的浏览器或编辑器。 某些脚本或系统工具可能希望您手动编辑文件(例如dpkg配置冲突),并且他们会查看替代方案以便为您提供所选的编辑器。 对于java ,这是Java运行时环境 – Oracle,OpenJRE等。

/etc/alternatives中的链接只是符号链接。 例如,你可以看到它们

 ls -l /etc/alternatives 

而且,常规的/usr/bin二进制文件也是符号链接。 例如:

 ls -l /usr/bin/java lrwxrwxrwx 1 root root 22 Aug 14 10:33 /usr/bin/java -> /etc/alternatives/java ls -l /etc/alternatives/java lrwxrwxrwx 1 root root 46 Aug 14 10:33 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 

因此,不需要修改PATH 。 它只使用符号链接。