Как предотвратить 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 (приоритет - последний аргумент командной строки).