Java/OracleSDK: различия между версиями

Материал из ALT Linux Wiki
Строка 24: Строка 24:


=== NOSRC In a Nutshell ===
=== NOSRC In a Nutshell ===
Все действия этой инструкции проводим под оператором $.


Скачайте с  
Скачайте с  
Строка 31: Строка 33:
либо с  
либо с  
  http://fly.osdn.org.ua/~mike/packages/java/java-1.6.0-oracle/ (для Oracle JDK 6)
  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


Установите его командой вида  
соответствующий *.nosrc.rpm пакет.
  rpm -i java-1.7.0-oracle-1.7.0.21-alt1.nosrc.rpm
 
Скачайте в папку {{path|SOURCES/}} недостающий исходник для вашей архитектуры с  
Например: 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
сайта Oracle
 
Установите его командой вида:
   
$ rpm -i java-1.7.0-oracle-1.7.0.21-alt1.nosrc.rpm
 
После выполнения команды у вас появится новая директория "{{path|/home/"user_name"/RPM/}}" , в ней будет еще 2 папки: {{path|SOURCES}} и {{path|SPECS}}
 
Скачайте в папку {{path|SOURCES/}} недостающий исходник 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 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.7.0-oracle-1.7.0.3 это будет файл:


(i586) http://download.oracle.com/otn-pub/java/jdk/7u3-b04/jdk-7u3-linux-i586.tar.gz
(i586) http://download.oracle.com/otn-pub/java/jdk/7u3-b04/jdk-7u3-linux-i586.tar.gz
Строка 48: Строка 56:
(x86_64) http://download.oracle.com/otn-pub/java/jdk/7u3-b04/jdk-7u3-linux-x64.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 это будут файлы {{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 доступна более свежая версия,
чем имеющиеся *.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
править нужно следующее:
( "-" - это строка для изменения, "+" - та же строка но уже с внесенными изменениями)


Публикация 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
--- a/java-1.7.0-oracle.spec
Строка 77: Строка 92:
</source>
</source>


Установите в host-систему пакет rpm-build-java.
Далее: установить в host-систему пакет rpm-build-java.
Зайдите в папку {{path|SPECS/}}, поправьте при необходимости версию в spec-файле,
 
и выполните команду (для Oracle JDK 7):
И в папке {{path|SPECS/}} выполнить команду (для Oracle JDK 7):
rpmbuild -bs --nodeps java-1.7.0-oracle.spec
 
  $ rpmbuild -bs --nodeps java-1.7.0-oracle.spec
 
Полученный в результате  java-1.7.0-oracle-1.7.0.21-alt1.src.rpm [[Hasher/Краткое руководство|пересоберите в hasher]].
Полученный в результате  java-1.7.0-oracle-1.7.0.21-alt1.src.rpm [[Hasher/Краткое руководство|пересоберите в hasher]].


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

Версия от 20:00, 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 пакет.

Например: 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

После выполнения команды у вас появится новая директория "/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

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

В последней версии надо запретить сборку 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

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