Como evitar que o openjdk-6-jre-headless bloqueie a instalação do Oracle JDK?

7

Meu servidor de compilação automatizado executa um trabalho que depende do Apache Ant . O script chama apt-get install ant . O Ant depende de openjdk-6-jre-headless , que executa update-alternatives , tornando-se o JDK padrão (reescrevendo meus links simbólicos no processo). Eu já tinha o Oracle JDK (manualmente) instalado e não queria que o update-alternatives fosse executado. Não consigo restaurar manualmente update-alternatives sempre que isso acontece.

Alguém tentou corrigir isso no ano passado, mas foi abatido: link

Como evito que openjdk-6-jre-headless chame update-alternatives ou, pior ainda, o cenário, como faço para procurar o valor antes do processo de instalação e restaurá-lo depois do fato?

UPDATE : apresentei um novo relatório de bug aqui . Eu apreciaria seu apoio.

    
por Gili 11.09.2013 / 03:02

1 resposta

10

Respondendo minha própria pergunta:

Eu usei o link para instalar o Oracle JDK. Como você pode ver, estas instruções invocam update-alternatives com uma prioridade de 1. Quando openjdk-6-jre-headless se instala, ela define uma prioridade de 1061 (onde uma prioridade mais alta substitui as mais baixas).

Para corrigir esse problema, eu simplesmente dei prioridade ao Oracle JDK em relação a 1061. Quando o openjdk-6-jre-headless se instalou, não mais confirmou o Oracle JDK como padrão.

UPDATE : Para atualizar as prioridades do OpenJDK, simplesmente executei novamente:

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

com uma prioridade de 2000 em vez de 1 (a prioridade é o último argumento de linha de comando).

    
por Gili 11.09.2013 / 18:35