我的自动构建服务器运行一个依赖于阿帕奇蚂蚁。脚本调用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(优先级是最后一个命令行参数)。