Java/OracleSDK

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

< Java(Различия между версиями)
Перейти к: навигация, поиск
м (Переключение на Oracle JDK)
 
(31 промежуточная версия не показана)
Строка 1: Строка 1:
[[Категория:Sisyphus]]
[[Категория:Sisyphus]]
-
== Установка Oracle Java 6/7 SDK в ALTLinux ==
+
== Установка Oracle Java 8 SDK в ALT Linux ==
-
 
+
'''Обратите внимание: Java 7/6 доступны [http://www.oracle.com/technetwork/java/javase/documentation/eol-135779.html только по подписке], при наличии архива процедура аналогична'''
__TOC__
__TOC__
Строка 14: Строка 14:
Последующие версии Oracle JDK теперь распространяются под лицензией Oracle Binary Code License,
Последующие версии Oracle JDK теперь распространяются под лицензией Oracle Binary Code License,
в которой есть явное разрешение распространять JDK вместе с java приложениями, например, в составе LiveCD,
в которой есть явное разрешение распространять JDK вместе с java приложениями, например, в составе LiveCD,
-
но нет явного разрешения распространять JDK в одиночку, как отдельный пакет.
+
но нет явного разрешения распространять JDK в одиночку как отдельный пакет.
Поэтому их нет в сизифе.
Поэтому их нет в сизифе.
-
Однако ничто не мещает установить данные пакеты самостоятельно.
+
Однако ничто не мешает установить данные пакеты самостоятельно.
-
Для безболезненной установки Oracle JDK под ALTLinux доступны .nosrc.rpm пакеты.
+
Для безболезненной установки Oracle JDK под ALT Linux доступны nosrc.rpm-пакеты.
-
В эти .nosrc.rpm пакеты собственно Oracle JDK не входит, его нужно отдельно скачать,
+
В них собственно Oracle JDK не входит, его нужно отдельно скачать,
-
после чего их можно пересобрать по инструкции ниже и получить обычные rpm пакеты,
+
после чего их можно пересобрать по инструкции ниже и получить обычные rpm-пакеты,
готовые к установке.
готовые к установке.
=== NOSRC In a Nutshell ===
=== NOSRC In a Nutshell ===
-
Скачайте с
+
{{attention|Все действия этой инструкции проводим под пользователем.}}
-
ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/viy/java-1.7.0-oracle/ (для Oracle JDK 7)
+
-
либо с
+
-
ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/viy/java-1.6.0-oracle/ (для Oracle JDK 6)
+
-
соответствующий .nosrc.rpm пакет.
+
-
Например, ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/viy/java-1.7.0-oracle/java-1.7.0-oracle-1.7.0.21-alt1.nosrc.rpm
+
-
Установите его командой вида  
+
Скачайте [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 -i java-1.7.0-oracle-1.7.0.21-alt1.nosrc.rpm
+
 
-
Скачайте в папку {{path|SOURCES/}} недостающий исходник для вашей архитектуры с  
+
Установите его командой вида:
-
сайта Oracle
+
 
-
[http://www.oracle.com/technetwork/java/javase/downloads/index.html Java SE Downloads],
+
  $ 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],
[http://www.oracle.com/technetwork/java/javase/downloads/index.html download.oracle.com],
-
если ссылки устареют, поищите новые в google.
+
если ссылки устареют, поищите новые в google).
-
Например, для java-1.7.0-oracle-1.7.0.3 это будут файл
+
Например, для java-1.8.0-oracle-1.8.0.102 это будет файл:
-
(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/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
-
(x86_64) http://download.oracle.com/otn-pub/java/jdk/7u3-b04/jdk-7u3-linux-x64.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}}.
+
Для 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}};
 +
править нужно следующее: ( "-" - это строка для изменения, "+" - та же строка, но уже с внесенными изменениями)
-
Публикация nosrc.rpm может отставать от выпуска новых релизов java.
 
-
Если случилось так, что  на сайте Oracle доступна более свежая версия,
 
-
чем имеющиеся nosrc.rpm, тогда можно просто обновить версию пакета в файле java-1.7.0-oracle.spec,
 
-
затем собрать src.rpm по инструкции. Внизу дан пример правки spec файла.
 
<source lang="diff">
<source lang="diff">
-
--- a/java-1.7.0-oracle.spec
+
--- java-1.8.0-oracle.spec~    2016-02-04 17:31:58.832448223 +0300
-
+++ b/java-1.7.0-oracle.spec
+
+++ java-1.8.0-oracle.spec     2016-02-04 17:02:50.865717944 +0300
@@ -38,7 +38,7 @@
@@ -38,7 +38,7 @@
  %define origin          oracle
  %define origin          oracle
-
  %define priority        16040
+
  %define priority        18040
  %define javaver        %major.%minor
  %define javaver        %major.%minor
-
-%define buildver        17
+
-%define buildver        60
-
+%define buildver        21
+
+%define buildver        72
   
   
  %define jppname        java-%{javaver}-%{origin}
  %define jppname        java-%{javaver}-%{origin}
  %define javaws_ver      %{javaver}
  %define javaws_ver      %{javaver}
-
@@ -989,6 +989,9 @@ done
+
@@ -1107,6 +1107,9 @@
   
   
   
   
  %changelog
  %changelog
-
+* Mon Apr 22 2013 Igor Vlasenko <viy@altlinux.ru> 0:1.7.0.21-alt1
+
+* Thu Feb 04 2016 Michael Shigorin <mike@altlinux.org> 0:1.8.0.72-alt1
-
+- nosrc spec file for java sdk 7u21
+
+- nosrc spec file for java sdk 8u72
+
+
-
  * Fri Mar 08 2013 Igor Vlasenko <viy@altlinux.ru> 0:1.7.0.17-alt1
+
  * Fri Oct 09 2015 Igor Vlasenko <viy@altlinux.ru> 0:1.8.0.60-alt1
-
  - nosrc spec file for java sdk 7u17
+
  - nosrc spec file for java sdk 8u60
</source>
</source>
-
Установите в host-систему пакет rpm-build-java.
+
Обновить nosrc.rpm при желании можно подобным образом:
-
Зайдите в папку {{path|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 позволяет выполнить ее без установки
+
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}},
пакетов с макросами, именно, указанных в BuildRequires(pre): {{pkg|rpm-macros-alternatives browser-plugins-npapi-devel}},
то rpmbuild будет выдавать предупреждения, связанные с отсутствием соответствующих макросов.
то rpmbuild будет выдавать предупреждения, связанные с отсутствием соответствующих макросов.
На это можно не обращать внимания, если сборка src.rpm пакета состоялась.
На это можно не обращать внимания, если сборка 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 это будет файл:

Публикация 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

Ссылки

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

Hasher


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

Удалите пакеты java-*-openjdk.

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

Вопрос: как при выполнении rpmbuild -bs --nodeps java-1.8.0-oracle.spec на выходе получить упакованный пакет с сорцами i586 при сборке на платформе x86_64. Упаковывается всё x64.tar.gz

 
Личные инструменты