web-dev-qa-db-fra.com

Comment empêcher openjdk-6-jre-headless d'empêcher l'installation du JDK Oracle?

Mon serveur de construction automatisé exécute un travail qui dépend de Apache Ant . Le script appelle apt-get install ant. Ant dépend de openjdk-6-jre-headless qui exécute update-alternatives en devenant le JDK par défaut (réécrivant mes liens symboliques dans le processus). JDK Oracle (manuellement) est déjà installé sur mon ordinateur et je ne souhaite pas que update-alternatives soit exécuté. Je ne peux pas restaurer manuellement update-alternatives chaque fois que cela se produit.

Quelqu'un a essayé de corriger cela l'année dernière mais a été abattu: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=678195

Comment empêcher openjdk-6-jre-headless d'appeler update-alternatives ou, pire scénario, comment puis-je rechercher la valeur avant le processus d'installation et la restaurer après coup?

UPDATE: J'ai déposé un nouveau rapport de bogue ici . J'apprécierais votre soutien.

7
Gili

Répondant à ma propre question:

J'ai utilisé https://askubuntu.com/a/55960/23678 pour installer Oracle JDK. Comme vous pouvez le constater, ces instructions appellent update-alternatives avec une priorité de 1. Lorsque openjdk-6-jre-headless s’installe lui-même, il définit une priorité de 1061 (où une priorité supérieure remplace les priorités inférieures).

Afin de résoudre ce problème, j'ai simplement attribué à Oracle JDK une priorité supérieure à 1061. Lorsque openjdk-6-jre-headless s'est installé, il ne supprimait plus le JDK Oracle par défaut.

UPDATE: Pour mettre à jour les priorités d'OpenJDK, j'ai simplement relancé:

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

avec une priorité de 2000 au lieu de 1 (la priorité est le dernier argument de la ligne de commande).

10
Gili