Не так давно Oracle объявила об отзыве лицензии, согласно которой
дистрибьютеры ранее могли самостоятельно пакетировать бинарные сборки
Oracle Java и распространять их со своим продуктом (например так делали
все ведущие дистрибутивы, включая Debian и Ubuntu).
Ну они-то отозвали, а пользоваться (и обновляться) всё-равно хочется. Когда-то давно в Debian был пакет java-package который содержал утилиту make-jpkg которая занималалсь тем, что превращала .bin пакет распространяемы Oracle в .deb пакет распознаваемый dpkg.
Однако со временем она потеряла актуальность (SUN разрешил всем класть
свои сборки и всех это устраивало) и поддержку мантейнера, в итоге
современные версии Oracle Java таким макаром не переконвертить. В общем
пока умные люди думают как сделать всё красиво я предлагаю способ того,
как сделать всё хотя бы удобно (с точки зрения управления
«альтернативами» в Debian).
Качаем последнюю Java c http://www.oracle.com/technetwork/java/index.html (чуть не написал http://java.sun.com/, хотя URL сейчас работает — неизвестно что будет с ним в будущем).
Переходим в /opt (это место по hier (7) предназначено
как раз для сторонних программных комплексов — как раз подходит для
нашего случая) и распаковываем архив с java (на примере java SE 6 Update
30):
sudo -i
cd /opt
/bin/bash /место/куда/скачали/пакет/jdk-6u30-linux-x64.bin
Теперь позаботимся о том, чтобы все программы написанные на java знали где её искать. Для этого создаём /etc/profile.d/oracle-java.sh с, примерно, следующим содержимым:
JAVA_HOME=/opt/project/jdk1.6.0_30
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH
Далее прописываем нашу JDK в системе alternatives чтобы установленные debian пакеты тоже знали где её искать:
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/project/jdk1.6.0_30/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/opt/project/jdk1.6.0_30/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/opt/project/jdk1.6.0_30/bin/javaws" 1
И выбираем правильную версию для работы по-умолчанию:
sudo update-alternatives --set java /opt/project/jdk1.6.0_30/bin/java
sudo update-alternatives --set javac /opt/project/jdk1.6.0_30/bin/javac
sudo update-alternatives --set javaws /opt/project/jdk1.6.0_30/bin/javaws
После всех манипуляций стоит перезагрузить машину, особенно если ПО
написанное на java вышло сравнительно давно (ему потребуется чтобы
переменная JAVA_HOME была обязательно определена).
В заключении проверьте что всё работает корректно: java -version. Источник:http://digital-activity.org/2012/01/25/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-oracle-java-se-%D0%B2-debianubuntu/
|