如何防止 openjdk-6-jre-headless 破坏 Oracle JDK 安装?

如何防止 openjdk-6-jre-headless 破坏 Oracle JDK 安装?

我的自动构建服务器运行一个依赖于阿帕奇蚂蚁。脚本调用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,或者在最坏的情况下,如何在安装过程之前查找该值并在安装后恢复它?

更新:我提交了新的错误报告这里. 我将非常感谢您的支持。

答案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(优先级是最后一个命令行参数)。

相关内容