Wie kann verhindert werden, dass openjdk-6-jre-headless die Oracle JDK-Installation blockiert?

7

Mein automatisierter Build-Server führt einen Job aus, der von Apache Ant abhängt . Das Skript wird aufgerufen apt-get install ant. Ant hängt davon ab, openjdk-6-jre-headlesswelche Läufe sich update-alternativesselbst zum Standard-JDK machen (wobei meine symbolischen Links neu geschrieben werden). Ich hatte Oracle JDK bereits (manuell) installiert und möchte nicht update-alternativesausgeführt werden. Ich kann nicht update-alternativesjedes Mal manuell wiederherstellen .

Jemand hat letztes Jahr versucht, dies zu korrigieren, wurde jedoch abgeschossen: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=678195

Wie verhindere ich das openjdk-6-jre-headlessAufrufen update-alternativesoder, im schlimmsten Fall, das Nachschlagen des Werts vor dem Installationsvorgang und das anschließende Wiederherstellen?

UPDATE : Ich legte einen neuen Bug - Report hier . Ich würde mich über Ihre Unterstützung freuen.

Gili
quelle

Antworten:

10

Beantwortung meiner eigenen Frage:

Ich habe https://askubuntu.com/a/55960/23678 verwendet , um Oracle JDK zu installieren. Wie Sie sehen können, werden diese Anweisungen update-alternativesmit einer Priorität von 1 openjdk-6-jre-headlessaufgerufen. Bei der Installation wird eine Priorität von 1061 festgelegt (wobei eine höhere Priorität die niedrigere ersetzt).

Um dieses Problem zu beheben, habe ich Oracle JDK einfach eine höhere Priorität als 1061 openjdk-6-jre-headlesszugewiesen. Bei der Installation selbst wurde Oracle JDK nicht mehr standardmäßig überlastet.

UPDATE : Um die Prioritäten von OpenJDK zu aktualisieren, habe ich einfach erneut ausgeführt:

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

mit einer Priorität von 2000 anstelle von 1 (die Priorität ist das letzte Befehlszeilenargument).

Gili
quelle
@Braiam, ich habe die Antwort aktualisiert.
Gili
Auf meinem System wurde das Oracle JDK unter /usr/java/jdk1.7.0_80 installiert, und die ausführbaren Dateien befanden sich im bin-Verzeichnis darunter.
Michael