Java/OracleSDK
Материал из ALT Linux Wiki
Blackp (обсуждение | вклад) м (→Переключение на Oracle JDK) |
|||
(40 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
[[Категория:Sisyphus]] | [[Категория:Sisyphus]] | ||
- | == Установка Oracle Java | + | == Установка Oracle Java 8 SDK в ALT Linux == |
- | + | '''Обратите внимание: Java 7/6 доступны [http://www.oracle.com/technetwork/java/javase/documentation/eol-135779.html только по подписке], при наличии архива процедура аналогична''' | |
__TOC__ | __TOC__ | ||
- | == | + | === Лицензионные ограничения === |
jdk-6u26-linux является последним фирменным JDK, распространяемым под лицензией | jdk-6u26-linux является последним фирменным JDK, распространяемым под лицензией | ||
- | [http://download.java.net/dlj/DLJ-v1.1.txt DLJ (Operating System Distributor License for Java version 1.1)] | + | [http://download.java.net/dlj/DLJ-v1.1.txt DLJ (Operating System Distributor License for Java version 1.1)]. |
Эта лицензия явно разрешает распространять JDK в составе дистрибутива. | Эта лицензия явно разрешает распространять JDK в составе дистрибутива. | ||
Таким образом, java-1.6.0-sun-1.6.0.26 является последним JDK от Sun/Oracle, входящим в состав [[Sisyphus]]. | Таким образом, java-1.6.0-sun-1.6.0.26 является последним JDK от Sun/Oracle, входящим в состав [[Sisyphus]]. | ||
- | Последующие версии Oracle JDK теперь распространяются под | + | Последующие версии Oracle JDK теперь распространяются под лицензией Oracle Binary Code License, |
в которой есть явное разрешение распространять JDK вместе с java приложениями, например, в составе LiveCD, | в которой есть явное разрешение распространять JDK вместе с java приложениями, например, в составе LiveCD, | ||
- | но нет явного разрешения распространять JDK в одиночку | + | но нет явного разрешения распространять JDK в одиночку как отдельный пакет. |
+ | Поэтому их нет в сизифе. | ||
- | + | Однако ничто не мешает установить данные пакеты самостоятельно. | |
- | В | + | Для безболезненной установки Oracle JDK под ALT Linux доступны nosrc.rpm-пакеты. |
- | после чего их можно пересобрать по инструкции ниже и получить обычные rpm пакеты, | + | В них собственно Oracle JDK не входит, его нужно отдельно скачать, |
+ | после чего их можно пересобрать по инструкции ниже и получить обычные rpm-пакеты, | ||
готовые к установке. | готовые к установке. | ||
- | == NOSRC In a Nutshell == | + | === NOSRC In a Nutshell === |
+ | |||
+ | {{attention|Все действия этой инструкции проводим под пользователем.}} | ||
+ | |||
+ | Скачайте [http://ftp.altlinux.org/pub/people/mike/packages/java/ соответствующий пакет] {{path|*.nosrc.rpm}}; например: [http://ftp.altlinux.org/pub/people/mike/packages/java/java-1.8.0-oracle-1.8.0.102-alt1.nosrc.rpm java-1.8.0-oracle-1.8.0.102-alt1.nosrc.rpm]. | ||
+ | |||
+ | Установите его командой вида: | ||
+ | |||
+ | $ rpm -Uhv java-1.8.0-oracle-1.8.0.102-alt1.nosrc.rpm | ||
+ | |||
+ | После выполнения команды у вас появится новый каталог {{path|/home/''UserName''/RPM/}}, в нём будет еще два каталога: {{path|SOURCES}} и {{path|SPECS}} | ||
+ | |||
+ | Скачайте в каталог {{path|SOURCES/}} недостающий исходник {{path|jdk*.tar.gz}} для вашей архитектуры с сайта Oracle ([http://www.oracle.com/technetwork/java/javase/downloads/index.html Java SE Downloads], | ||
+ | [http://www.oracle.com/technetwork/java/javase/downloads/index.html download.oracle.com], | ||
+ | если ссылки устареют, поищите новые в google). | ||
+ | |||
+ | Например, для java-1.8.0-oracle-1.8.0.102 это будет файл: | ||
+ | |||
+ | * (x86_64) http://download.oracle.com/otn-pub/java/jdk/8u102-b14/jdk-8u102-linux-x64.tar.gz | ||
+ | * (i586) http://download.oracle.com/otn-pub/java/jdk/8u102-b14/jdk-8u102-linux-i586.tar.gz | ||
+ | |||
+ | <!-- | ||
+ | * (i586) http://download.oracle.com/otn-pub/java/jdk/7u21-b11/jdk-7u21-linux-i586.tar.gz | ||
+ | * (x86_64) http://download.oracle.com/otn-pub/java/jdk/7u21-b11/jdk-7u21-linux-x64.tar.gz | ||
+ | |||
+ | Для java-1.7.0-oracle-1.7.0.21 это будут файлы {{pkg|jdk-7u21-linux-i586.tar.gz}} и {{pkg|jdk-7u21-linux-x64.tar.gz}} соответственно. | ||
+ | --> | ||
+ | Публикация nosrc.rpm может отставать от выпуска новых релизов java. | ||
+ | |||
+ | Если на сайте Oracle доступна более свежая версия, | ||
+ | чем имеющиеся {{path|*.nosrc.rpm}}, необходимо внести поправки в файле {{path|java-1.8.0-oracle.spec}} | ||
+ | и только после этого приступать к сборке {{path|*.src.rpm}}. | ||
+ | |||
+ | К примеру: У вас в файле {{path|java-1.8.0-oracle.nosrc.rpm}} в строке <tt>%define buildver</tt> указана версия 60, а на оф.сайте уже доступна версия {{path|jdk-8u72-linux-**.tar.gz}}; | ||
+ | править нужно следующее: ( "-" - это строка для изменения, "+" - та же строка, но уже с внесенными изменениями) | ||
+ | |||
+ | <source lang="diff"> | ||
+ | --- java-1.8.0-oracle.spec~ 2016-02-04 17:31:58.832448223 +0300 | ||
+ | +++ java-1.8.0-oracle.spec 2016-02-04 17:02:50.865717944 +0300 | ||
+ | @@ -38,7 +38,7 @@ | ||
+ | %define origin oracle | ||
+ | %define priority 18040 | ||
+ | %define javaver %major.%minor | ||
+ | -%define buildver 60 | ||
+ | +%define buildver 72 | ||
+ | |||
+ | %define jppname java-%{javaver}-%{origin} | ||
+ | %define javaws_ver %{javaver} | ||
+ | @@ -1107,6 +1107,9 @@ | ||
+ | |||
+ | |||
+ | %changelog | ||
+ | +* Thu Feb 04 2016 Michael Shigorin <mike@altlinux.org> 0:1.8.0.72-alt1 | ||
+ | +- nosrc spec file for java sdk 8u72 | ||
+ | + | ||
+ | * Fri Oct 09 2015 Igor Vlasenko <viy@altlinux.ru> 0:1.8.0.60-alt1 | ||
+ | - nosrc spec file for java sdk 8u60 | ||
+ | </source> | ||
+ | |||
+ | Обновить nosrc.rpm при желании можно подобным образом: | ||
+ | |||
+ | rpmbuild -bs --nosource 0 --nosource 1 --nodeps java-1.8.0-oracle.spec | ||
+ | |||
+ | Далее установите в host-систему пакеты {{pkg|rpm-build-java}} {{pkg|browser-plugins-npapi-devel}} и в каталоге {{path|SPECS/}} выполните команду (для Oracle JDK 8): | ||
+ | |||
+ | $ rpmbuild -bs --nodeps java-1.8.0-oracle.spec | ||
+ | |||
+ | Полученный в результате {{path|java-1.8.0-oracle-1.8.0.102-alt1.src.rpm}} [[Hasher/Краткое руководство|пересоберите в hasher]]. | ||
+ | |||
+ | === Примечания === | ||
+ | |||
+ | ; ключ " --nodeps " команды "rpmbuild -bs" позволяет выполнить ее без установки лишних зависимостей в хост-систему. | ||
+ | При этом, если в хост-системе не будет некоторых дополнительных | ||
+ | пакетов с макросами, именно, указанных в BuildRequires(pre): {{pkg|rpm-macros-alternatives browser-plugins-npapi-devel}}, | ||
+ | то rpmbuild будет выдавать предупреждения, связанные с отсутствием соответствующих макросов. | ||
+ | На это можно не обращать внимания, если сборка src.rpm пакета состоялась. | ||
+ | |||
+ | ; Если вы не осилили сборку в hasher, то надо делать так: | ||
+ | |||
+ | <source lang=text> | ||
+ | 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 java-1.8.0-oracle.spec | ||
+ | |||
+ | </source> | ||
+ | При этом в систему установятся пакеты, необходимые для сборки пакета. После сборки, их можно удалить из системы. | ||
+ | |||
+ | ; В последней версии java-1.8.0-oracle.spec для JDK 8u45 (arch type i586), надо запретить сборку moz_plugin_classiс для 32-битной архитектуры (как уже сделано для 64-бит) | ||
+ | |||
+ | |||
+ | <source lang=diff> | ||
+ | @@ -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 | ||
+ | </source> | ||
+ | |||
+ | === Ссылки === | ||
+ | |||
+ | [[Сборка_пакета_с_нуля]] | ||
+ | |||
+ | [[Hasher]] | ||
+ | |||
- | + | === Переключение на Oracle JDK === | |
- | + | Удалите пакеты java-*-openjdk. | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | '''TODO:''' использование alternatives | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | Вопрос: как при выполнении rpmbuild -bs --nodeps java-1.8.0-oracle.spec на выходе получить упакованный пакет с сорцами i586 при сборке на платформе x86_64. | |
- | + | Упаковывается всё x64.tar.gz | |
- | + |
Текущая версия на 10:02, 29 марта 2017
Установка Oracle Java 8 SDK в ALT Linux
Обратите внимание: Java 7/6 доступны только по подписке, при наличии архива процедура аналогична
Содержание |
Лицензионные ограничения
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 под ALT Linux доступны nosrc.rpm-пакеты. В них собственно Oracle JDK не входит, его нужно отдельно скачать, после чего их можно пересобрать по инструкции ниже и получить обычные rpm-пакеты, готовые к установке.
NOSRC In a Nutshell
Скачайте соответствующий пакет *.nosrc.rpm; например: java-1.8.0-oracle-1.8.0.102-alt1.nosrc.rpm.
Установите его командой вида:
$ rpm -Uhv java-1.8.0-oracle-1.8.0.102-alt1.nosrc.rpm
После выполнения команды у вас появится новый каталог /home/UserName/RPM/, в нём будет еще два каталога: SOURCES и SPECS
Скачайте в каталог SOURCES/ недостающий исходник jdk*.tar.gz для вашей архитектуры с сайта Oracle (Java SE Downloads, download.oracle.com, если ссылки устареют, поищите новые в google).
Например, для java-1.8.0-oracle-1.8.0.102 это будет файл:
- (x86_64) http://download.oracle.com/otn-pub/java/jdk/8u102-b14/jdk-8u102-linux-x64.tar.gz
- (i586) http://download.oracle.com/otn-pub/java/jdk/8u102-b14/jdk-8u102-linux-i586.tar.gz
Публикация nosrc.rpm может отставать от выпуска новых релизов java.
Если на сайте Oracle доступна более свежая версия, чем имеющиеся *.nosrc.rpm, необходимо внести поправки в файле java-1.8.0-oracle.spec и только после этого приступать к сборке *.src.rpm.
К примеру: У вас в файле java-1.8.0-oracle.nosrc.rpm в строке %define buildver указана версия 60, а на оф.сайте уже доступна версия jdk-8u72-linux-**.tar.gz; править нужно следующее: ( "-" - это строка для изменения, "+" - та же строка, но уже с внесенными изменениями)
--- java-1.8.0-oracle.spec~ 2016-02-04 17:31:58.832448223 +0300 +++ java-1.8.0-oracle.spec 2016-02-04 17:02:50.865717944 +0300 @@ -38,7 +38,7 @@ %define origin oracle %define priority 18040 %define javaver %major.%minor -%define buildver 60 +%define buildver 72 %define jppname java-%{javaver}-%{origin} %define javaws_ver %{javaver} @@ -1107,6 +1107,9 @@ %changelog +* Thu Feb 04 2016 Michael Shigorin <mike@altlinux.org> 0:1.8.0.72-alt1 +- nosrc spec file for java sdk 8u72 + * Fri Oct 09 2015 Igor Vlasenko <viy@altlinux.ru> 0:1.8.0.60-alt1 - nosrc spec file for java sdk 8u60
Обновить nosrc.rpm при желании можно подобным образом:
rpmbuild -bs --nosource 0 --nosource 1 --nodeps java-1.8.0-oracle.spec
Далее установите в host-систему пакеты rpm-build-java browser-plugins-npapi-devel и в каталоге SPECS/ выполните команду (для Oracle JDK 8):
$ rpmbuild -bs --nodeps java-1.8.0-oracle.spec
Полученный в результате java-1.8.0-oracle-1.8.0.102-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 java-1.8.0-oracle.spec
При этом в систему установятся пакеты, необходимые для сборки пакета. После сборки, их можно удалить из системы.
- В последней версии java-1.8.0-oracle.spec для JDK 8u45 (arch 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
Удалите пакеты java-*-openjdk.
TODO: использование alternatives
Вопрос: как при выполнении rpmbuild -bs --nodeps java-1.8.0-oracle.spec на выходе получить упакованный пакет с сорцами i586 при сборке на платформе x86_64. Упаковывается всё x64.tar.gz