如何防止openjdk-6-jre-headless覆盖Oracle JDK安装?

我的自动化构建服务器运行一个依赖于Apache Ant的任务。脚本调用apt-get install ant。Ant依赖于openjdk-6-jre-headless,它运行update-alternatives将自己设置为默认的JDK(在此过程中重写了我的符号链接)。我已经手动安装了Oracle JDK,并且不希望运行update-alternatives。每次发生这种情况时,我无法手动恢复update-alternatives
去年有人试图纠正这个问题,但被拒绝了:http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=678195 我该如何阻止openjdk-6-jre-headless调用update-alternatives,或者在安装过程之前如何查找该值并在事后恢复? 更新:我提交了一个新的错误报告here。我希望得到您的支持。
1个回答

回答我自己的问题:
我使用https://askubuntu.com/a/55960/23678来安装Oracle JDK。正如你所看到的,这些说明将update-alternatives与优先级1一起使用。当openjdk-6-jre-headless自动安装时,它会设置一个优先级为1061(较高的优先级会替换较低的优先级)。
为了解决这个问题,我只需要给Oracle JDK设置一个比1061更高的优先级。当openjdk-6-jre-headless安装完成后,它就不再覆盖Oracle JDK成为默认选项。 更新:要更新OpenJDK的优先级,我只需重新运行:
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0/bin/java" 2000
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0/bin/javac" 2000
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0/bin/javaws" 2000

以优先级2000而不是1(优先级是最后一个命令行参数)。


@Braiam,我已经更新了答案。 - Gili
在我的系统上,Oracle JDK安装在/usr/java/jdk1.7.0_80目录下,可执行文件位于该目录下的bin文件夹中。 - Michael