Java/OracleSDK: различия между версиями
Строка 123: | Строка 123: | ||
При этом в систему установятся пакеты, необходимые для сборки пакета. После сборки, их можно удалить из системы. | При этом в систему установятся пакеты, необходимые для сборки пакета. После сборки, их можно удалить из системы. | ||
; В последней версии надо запретить сборку moz_plugin_classiс для 32-битной архитектуры (как уже сделано для 64-бит) | ; В последней версии java-1.8.0-oracle.spec для JDK 8u45 (arh type i586), надо запретить сборку moz_plugin_classiс для 32-битной архитектуры (как уже сделано для 64-бит) | ||
Версия от 23:09, 26 апреля 2015
Установка 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 пакет.
Установите его командой вида:
$ rpm -i java-1.7.0-oracle-1.7.0.21-alt1.nosrc.rpm
После выполнения команды у вас появится новая директория "/home/"user_name"/RPM/" , в ней будет еще 2 папки: SOURCES и SPECS
Скачайте в папку SOURCES/ недостающий исходник JDK*.tar.gz для вашей архитектуры с сайта 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
К примеру: У вас в файле java-1.7.0-oracle.nosrc.rpm в строке "define buildver" указана версия 17, а на оф.сайте уже доступна версия jdk-7u21-linux-**.tar.gz править нужно следующее: ( "-" - это строка для изменения, "+" - та же строка но уже с внесенными изменениями)
--- 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/ выполнить команду (для 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
При этом в систему установятся пакеты, необходимые для сборки пакета. После сборки, их можно удалить из системы.
- В последней версии java-1.8.0-oracle.spec для JDK 8u45 (arh type i586), надо запретить сборку moz_plugin_classiс для 32-битной архитектуры (как уже сделано для 64-бит)
@@ -84,7 +84,7
%else
%def_enable javaws
%def_enable moz_plugin
-%def_enable moz_plugin_classic
+%def_disable moz_plugin_classic
%def_enable desktop
%endif
%def_with gcc32_abi
Ссылки
Переключение на Oracle JDK
TODO: использование alternatives