Java/OracleSDK

Материал из ALT Linux Wiki

Установка Oracle Java 6/7 SDK в ALTLinux

Лицензионные ограничения

jdk-6u26-linux является последним фирменным JDK, распространяемым под лицензией DLJ (Operating System Distributor License for Java version 1.1). Эта лицензия явно разрешает распространять JDK в составе дистрибутива. Таким образом, java-1.6.0-sun-1.6.0.26 является последним JDK от Sun/Oracle, входящим в состав Sisyphus.

Последующие версии Oracle JDK теперь распространяются под лицензией Oracle Binary Code License, в которой есть явное разрешение распространять JDK вместе с java приложениями, например, в составе LiveCD, но нет явного разрешения распространять JDK в одиночку, как отдельный пакет. Поэтому их нет в сизифе.

Однако ничто не мещает установить данные пакеты самостоятельно. Для безболезненной установки Oracle JDK под ALTLinux доступны .nosrc.rpm пакеты. В эти .nosrc.rpm пакеты собственно Oracle JDK не входит, его нужно отдельно скачать, после чего их можно пересобрать по инструкции ниже и получить обычные rpm пакеты, готовые к установке.

NOSRC In a Nutshell

Скачайте с

http://fly.osdn.org.ua/~mike/packages/java/java-1.8.0-oracle/ (для Oracle JDK 8)

с

http://fly.osdn.org.ua/~mike/packages/java/java-1.7.0-oracle/ (для Oracle JDK 7)

либо с

http://fly.osdn.org.ua/~mike/packages/java/java-1.6.0-oracle/ (для Oracle JDK 6)

соответствующий .nosrc.rpm пакет. Например, http://fly.osdn.org.ua/~mike/packages/java/java-1.7.0-oracle/java-1.7.0-oracle-1.7.0.21-alt1.nosrc.rpm

Установите его командой вида

rpm -i java-1.7.0-oracle-1.7.0.21-alt1.nosrc.rpm

Скачайте в папку SOURCES/ недостающий исходник для вашей архитектуры с сайта Oracle Java SE Downloads, download.oracle.com, если ссылки устареют, поищите новые в google.

Например, для java-1.7.0-oracle-1.7.0.3 это будут файл

(i586) http://download.oracle.com/otn-pub/java/jdk/7u3-b04/jdk-7u3-linux-i586.tar.gz

(x86_64) http://download.oracle.com/otn-pub/java/jdk/7u3-b04/jdk-7u3-linux-x64.tar.gz

Для java-1.7.0-oracle-1.7.0.21 это будут файлы jdk-7u21-linux-i586.tar.gz и jdk-7u21-linux-x64.tar.gz.

Публикация nosrc.rpm может отставать от выпуска новых релизов java. Если случилось так, что на сайте Oracle доступна более свежая версия, чем имеющиеся nosrc.rpm, тогда можно просто обновить версию пакета в файле java-1.7.0-oracle.spec, затем собрать src.rpm по инструкции. Внизу дан пример правки spec файла.

--- a/java-1.7.0-oracle.spec
+++ b/java-1.7.0-oracle.spec
@@ -38,7 +38,7 @@
 %define origin          oracle
 %define priority        16040
 %define javaver         %major.%minor
-%define buildver        17
+%define buildver        21
 
 %define jppname         java-%{javaver}-%{origin}
 %define javaws_ver      %{javaver}
@@ -989,6 +989,9 @@ done
 
 
 %changelog
+* Mon Apr 22 2013 Igor Vlasenko <viy@altlinux.ru> 0:1.7.0.21-alt1
+- nosrc spec file for java sdk 7u21
+
 * Fri Mar 08 2013 Igor Vlasenko <viy@altlinux.ru> 0:1.7.0.17-alt1
 - nosrc spec file for java sdk 7u17

Установите в host-систему пакет rpm-build-java. Зайдите в папку SPECS/, поправьте при необходимости версию в spec-файле, и выполните команду (для Oracle JDK 7):

rpmbuild -bs --nodeps java-1.7.0-oracle.spec

Полученный в результате java-1.7.0-oracle-1.7.0.21-alt1.src.rpm пересоберите в hasher.

Примечание: ключ --nodeps команды rpmbuild -bs позволяет выполнить ее без установки лишних зависимостей в хост-систему. При этом, если в хост-системе не будет некоторых дополнительных пакетов с макросами, именно, указанных в BuildRequires(pre): rpm-macros-alternatives browser-plugins-npapi-devel, то rpmbuild будет выдавать предупреждения, связанные с отсутствием соответствующих макросов. На это можно не обращать внимания, если сборка src.rpm пакета состоялась.

Примечания

Если вы не осилили сборку в hasher, то надо делать так:

cd  /home/user/RPM/SPEC
rpmbuild -bs --nodeps java-1.8.0-oracle.spec

cd  /home/user/RPM/SRPMS
apt-get build-dep java-1.8.0-oracle-1.8.0.31-alt1.src.rpm

cd  /home/user/RPM/SPEC
rpmbuild -bs --nodeps java-1.8.0-oracle.spec

При этом в систему установятся пакеты, необходимые для сборки пакета. После сборки, их можно удалить из системы.

Ссылки

Сборка_пакета_с_нуля

Hasher


Переключение на Oracle JDK

TODO: использование alternatives