Как предотвратить openjdk-6-jre-headless от забивания установки Oracle JDK?

Мой автоматизированный сервер сборки выполняет задание, которое зависит от Apache Ant. Скрипт вызывает apt-get install 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://Ask-ubuntu.ru/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 (приоритет - последний аргумент командной строки).

Другие вопросы по тегам