Библиотека сайта rus-linux.net
Beyond Linux From Scratch. Version 2011-12-30 | ||
Назад | 12. Программирование | Вперед |
Пакет IcedTea6-1.9.7
Знакомимся с пакетом IcedTea6
В Icedtea6 предоставляются средства работы с пакетом OpenJDK, недавно предложенной фирмой Oracle средой разработки с открытым исходным кодом. Чтобы предоставить полностью свободную среду времени исполнения, аналогичную той, что есть в закрытом дистрибутиве фирмы Oracle, в пакете Icedtea6 также предоставляются бесплатные версии Java-плагина для браузеров и приложения Java Web Start, которые к настоящему времени не являются приложениями с открытым исходным кодом. Icedtea6 используется для разработки Java-программ и предоставляет полную среду времени исполнения для запуска Java-программ.
ЗамечаниеПлагин для браузера и реализация WebStart были выделены в отдельный проект. Чтобы обеспечить полную реализацию в исходных кодах, вам нужно установить последнюю версию IcedTea-Web-1.0.1. В откомпилированном коде имеются компоненты проекта IcedTea-Web. |
OpenJDK (и IcedTea6) является кодом с лицензией GPL, однако, следует объяснить, что есть специальное исключение для несвободных проектов, в которых эти классы используются в собственных продуктах. Точно также, как и для лицензии LGPL, под которой несвободные программы могут компоноваться с библиотеками, предоставляемыми свободными проектами, лицензия GNU General Public License, version 2, with the Classpath Exception позволяет сторонним программам использовать классы, предоставляемые свободным программным обеспечением, не требуя, чтобы стороннее программное обеспечение также было свободным. Как и в случае с LGPL, любая модификация, которая осуществляется над свободными частями программного обеспечения сторонних приложений, также должно быть свободным.
ЗамечаниеВ архив с исходными кодами OpenJDK включен очень тщательно подобранный открытый набор тестов под названием JTreg. JTreg предназначен для проверки только что собранного JDK на разумную совместимость с закрытым Oracle JDK. Однако, для того, чтобы независимую реализацию объявить совместимой, в том числе и проект OpenJDK, спонсируемый фирмой Oracle, эта реализация должна пройти проверку с помощью закрытого набора тестов JCK/TCK. Если совместимость не требуется, даже частичная, то проверку можно выполнить без прохождения утвержденных тестов. Oracle предоставил для сообщества свободный доступ, каждому члену сообщества — индивидуальный, к закрытому инструментальному средству, которое обеспечивает 100% совместимость с проприетарным JDK. Двоичная версия, представляемая здесь, не была проверена с помощью TCK. Любая версия, которая собирается по инструкциям, представленным здесь, не может претендовать на совместимость с проприетарным JDK без утверждения пользователя и самих тестов, с помощью которых проверяется совместимость. Исходя из всего этого двоичный код, созданный с помощью данного метода сборки, регулярно проверяется с помощью TCK членами сайта, который был указан выше. Кроме лицензии для сообщества, предложенной выше, имеется образовательная некоммерческая лицензия для TCK, которую можно получить здесь. |
Информация об исходных кодах пакета
- Исходный код IcedTea6
http://icedtea.classpath.org/download/source/icedtea6-1.9.7.tar.gz
54a327a9591dab15049b81ec3c0af724
6,3 MB - Исходный код OpenJDK
http://download.java.net/openjdk/jdk6/promoted/b20/openjdk-6-src-b20-21_jun_2010.tar.gz
0b36adbf67e4f261e1b827ed4be4f447
43 MB - Исходный код JAF
http://icedtea.classpath.org/builds/icedtea6/src/drops/jdk6-jaf-b20.zip
bc95c133620bd68c161cac9891592901
70 KB - Исходный код JAXP
http://icedtea.classpath.org/builds/icedtea6/src/drops/jdk6-jaxp-b20.zip
22e95fbdb9fb7d8b6b6fc0a1d76d1fbd
5,8 MB - Исходный код JAXWS
http://icedtea.classpath.org/builds/icedtea6/src/drops/jdk6-jaxws-b20.zip
91adfd41e6f001add4f92ae31216b1e3
5,3 MB - Оценочный размер требуемого дискового пространства: 6,6 GB
- Оценочное время сборки: 23 SBU (дополнительные 83 SBU для тестового набора)
Информация о двоичных модулях пакета
- Загружаемый двоичный код (x86): http://anduin.linuxfromscratch.org/files/BLFS/icedtea6-1.9.7-1-x86-bin.tar.xz
- Контрольная сумма MD5: 616f3841562b2787ce101a85378029d1
- Размер загружаемого пакета (двоичный): 100 MB
- Оценочный размер требуемого дискового пространства: 846 MB
- Загружаемый двоичный код (x86_64): http://anduin.linuxfromscratch.org/files/BLFS/icedtea6-1.9.7-1-x86_64-bin.tar.xz
- Контрольная сумма MD5: 98cf8a009c63cb2b32a94dd23b828fca
- Размер загружаемого пакета (двоичный): 77 MB
- Оценочный размер требуемого дискового пространства: 564 MB
Дополнительные загрузки
- http://www.linuxfromscratch.org/patches/blfs/svn/icedtea6-1.9.7-upstream_fixes-1.patch
- http://www.linuxfromscratch.org/patches/blfs/svn/icedtea6-1.9.7-generate_cacerts-1.patch
- http://www.linuxfromscratch.org/patches/blfs/svn/icedtea6-1.9.7-xerces2_10-1.patch
- http://www.linuxfromscratch.org/patches/blfs/svn/icedtea6-1.9.7-fixed_paths-1.patch
Требуемые файлы Jars
- Eclipse Java Complier
http://ftp.osuosl.org/pub/eclipse/eclipse/downloads/drops/R-3.6.1-201009090800/ecj-3.6.1.jar
448c6e65234fc61624e14b0964d75bd9
1,6 MB - Rhino Java Script
ftp://ftp.mozilla.org/pub/mozilla.org/js/rhino1_7R2.zip
40d0a9abec8169e42920214b37fa8e0e
2,9 MB - Xalan
http://apache.osuosl.org/xml/xalan-j/xalan-j_2_7_1-bin.zip
99d049717c9d37a930450e630d8a6531
16,8 MB - Xerces
http://apache.osuosl.org/xerces/j/Xerces-J-bin.2.11.0.zip
408500aaaf1ff9f1e03e79defe90facc
7,0 MB
Зависимости пакета IcedTea6
Необязательные зависимости времени исполнения (требуются для установки исходного кода)
ALSA Library-1.0.24.1, CUPS-1.5.0, gtk+-2.24.8, Xorg Libraries и Xulrunner-9.0.1
Дополнительные требования (для сборки из исходного кода, в том числе необязательные требования)
Apache Ant-1.8.1, UnZip-6.0, Which-2.20 и Zip-3.0
Замечания для пользователей: http://wiki.linuxfromscratch.org/blfs/wiki/icedtea6
Установка пакета IcedTea6
Инструкции, приведенные ниже, устанавливают как двоичную версию пакета, так так и версию пакета с исходным кодом. Вы можете остановиться после установки двоичной версии или продолжать устанавливать исходный код. Вы можете выбрать установку либо одного пакета, либо обоих пакетов.
Установка двоичного пакета IcedTea6
Начните с распаковки соответствующего двоичного архива и перехода в распакованный директорий. В роли пользователя root
установите двоичный пакет IcedTea6 с помощью следующих команд:
cp -R j2sdk-image /opt/icedtea6-1.9.7-bin && chown -R root:root /opt/icedtea6-1.9.7-bin
Сконфигурируйте временную инсталляцию IcedTea6 с помощью следующих команд:
export PATH_HOLD="${PATH}" && export JAVA_HOME="/opt/icedtea6-1.9.7-bin" && export CLASSPATH=".:/usr/share/java" && export PATH="${PATH}:${JAVA_HOME}/bin"
Теперь двоичная версия пакета установлена. Если вы не хотите компилировать исходные коды, то переходите к разделу, в котором описывается конфигурирование.
Установка исходного кода пакета IcedTea6
ЗамечаниеДля сборки пакета IcedTea6 из исходного кода требуется пакет Apache Ant-1.8.1. Вам нужно сначала собрать этот пакет с тем, чтобы разрешить взаимную зависимость, а затем вернуться в этот раздел с тем, чтобы собрать пакет IcedTea6. |
Как и в случае с другими пакетами в BLFS, начните с распаковки пакета с исходным кодом IcedTea6 и перейдите в распакованный директорий.
Для Icedtea6 требуется несколько свободно доступных файлов jar, необходимых для самораскрутки компилятора. После того, как сборка будет завершена, вы можете оставить эти файлы там где они есть, поскольку они потребуются другим программам, либо, если захотите, удалите их. Если желаете, вы можете вообще выбрать не устанавливать эти файлы, и указать необходимые конфигурационные параметры для поиска файлов. В роли пользователя root установите необходимые инструментальные средства с помощью следующих команд:
mkdir jarfiles && cd jarfiles && unzip ../../rhino1_7R2.zip && unzip ../../xalan-j_2_7_1-bin.zip && unzip ../../Xerces-J-bin.2.11.0.zip && install -v -d -m755 /usr/share/java && install -v -m755 rhino1_7R2/*.jar /usr/share/java && install -v -m755 xalan-j_2_7_1/*.jar /usr/share/java && install -v -m755 xerces-2_11_0/*.jar /usr/share/java && install -v -m755 ../../ecj-3.6.1.jar /usr/share/java && ln -s ecj-3.6.1.jar /usr/share/java/ecj.jar && ln -s xalan.jar /usr/share/java/xalan2.jar && cd .. && rm -r jarfiles
Icedtea6 состоит из нескольких отдельных компонентов проприетарного JDK, которые были перелицензированы под открытой лицензией. Поместите все отдельные компоненты в дерево исходных текстов с помощью следующих команд:
mkdir drops && cp -v ../jdk6-jaf-b20.zip drops/ && cp -v ../jdk6-jaxp-b20.zip drops/ && cp -v ../jdk6-jaxws-b20.zip drops/ && cp -v ../openjdk-6-src-b20-21_jun_2010.tar.gz .
Примените патч, который позволит использовать установленный IcedTea6 для самораскрутки JDK:
patch -Np1 -i ../icedtea6-1.9.7-upstream_fixes-1.patch
Примените патч для генерации надлежащих файлов cacerts, используемых системными сертификатами CA:
patch -Np1 -i ../icedtea6-1.9.7-generate_cacerts-1.patch
Примените патч для устранения проблемы со сборкой, связанной с использованием последней версии Xerces2:
patch -Np1 -i ../icedtea6-1.9.7-xerces2_10-1.patch
Примените патч для замены фиксированных путей теми, которые будут использоваться в проекте BLFS:
patch -Np1 -i ../icedtea6-1.9.7-fixed_paths-1.patch
Сконфигурируйте и соберите пакет при помощи следующих команд:
unset JAVA_HOME && ./autogen.sh && ./configure --with-jdk-home=/opt/icedtea6-1.9.7-bin \ --enable-cacerts \ --disable-plugin \ --disable-webstart && make
Чтобы проверить результаты, выполните команду make check. Имеющаяся версия jtreg является старой, а тестовый набор очень сильно зависит от хост-системы. Предполагается, что вы получите 6 или 7 неудач и 1 ошибку при выполнении тестов langtools и от 20 до 23 неудач и до 3-х ошибок при тестировании jdk. Остальные более 4700 тестов должны пройти. Причина непостоянных результатов обусловлена различием в архитектуре, версиями библиотек, от которых зависит пакет, и даже сертификатами CA, используемыми для генерации файла cacerts
.
Теперь в роли пользователя root
установите пакет с помощью следующих команд:
cp -R openjdk.build/j2sdk-image /opt/icedtea6-1.9.7 && chown -R root:root /opt/icedtea6-1.9.7
Пояснение команд
./autogen.sh: Эта команда указывает, что нужно пересобрать автоматически генерируемые файлы в соответствие с новыми параметрами, добавленными в configure
.
--with-jdk-home
: Этот переключатель указывает место, где расположен временный JDK.
--enable-cacerts
: Этот переключатель указывает при сборке пакета генерировать файл cacerts; для этого следует использовать установленные системные сертификаты CA, предназначенные для использования в IcedTea6.
--disable-plugin
: Этот параметр отключает сборку имеющегося Java-плагина, предназначенного для браузеров. Имеющийся плагин и реализация webstart были выделены в отдельный проект IcedTea-Web-1.0.1. Не указывайте этот переключатель, если вы не хотите собирать IcedTea-Web отдельно.
--disable-webstart
: Этот параметр отключает сборку
имеющейся реализации webstart . Как отмечалось выше, webstart был выделен в отдельный проект IcedTea-Web-1.0.1. Не указывайте этот переключатель, если вы не хотите собирать IcedTea-Web отдельно.
Конфигурирование пакета IcedTea6
Подробнее о конфигурировании
Теперь есть два IcedTea6 SDK, установленных в /opt
. Вы должны решить, какой из них вы хотели бы использовать по умолчанию. Например, если вы решили использовать предварительно скомпилированный icedtea6, выполните в роли пользователя root следующую команду:
ln -v -nsf icedtea6-1.9.7-bin /opt/icedtea
В информации, приводимой ниже предполагается, что ваша система настроена в соответствии с инструкциями, приведенными в Файлы запуска командной оболочки Bash. Если у вас система настроена по-другому, то вам, возможно, придется найти информацию, соответствующую той, что приведена ниже, и включите ее в файлы запуска вашей системы.
В роли пользователя root
добавьте файл запуска командной оболочки icedtea.sh
в директорий /etc/profile.d
с помощью следующих командам:
cat > /etc/profile.d/icedtea.sh << "EOF" # Начало файла /etc/profile.d/icedtea.sh # Установите директорий JAVA_HOME JAVA_HOME=/opt/icedtea # Настройте PATH pathappend ${JAVA_HOME}/bin PATH # Auto Java CLASSPATH # Скопируйте файлы jar в этот директорий или создайте символические ссылки AUTO_CLASSPATH_DIR=/usr/share/java pathprepend . CLASSPATH for dir in `find ${AUTO_CLASSPATH_DIR} -type d 2>/dev/null`; do pathappend $dir CLASSPATH done export JAVA_HOME CLASSPATH unset AUTO_CLASSPATH_DIR unset dir # Окончание файла /etc/profile.d/icedtea.sh EOF
Если вы установили только двоичный дистрибутив, то Java-плагин
находится в $JAVA_HOME/jre/lib/
<arch>/IcedTeaPlugin.so
. Создайте символическую ссылку на файл в этом директории из директория плагинов вашего браузера. Если вы выполняли сборку из исходного кода, то переходите к инструкциям пакета IcedTea-Web-1.0.1 и соберите плагин для браузеров.
ВажноДля того, чтобы плагин работал, на него должна быть сделана символическая ссылка. Если ссылки нет, то любой браузер "вылетит" при попытке загрузить приложение Java. |
Описание пакета
Установленные программы: apt, extcheck, idlj, HtmlConverter, jar, jarsigner, java, javac, javadoc, javah, javap, java-rmi.cgi, jconsole, jdb, jhat, jinfo, jmap, jps, jrunscript, jsadebugd, jstack, jstat, jstatd, keytool, native2ascii, orbd, pack200, policytool, rmic, rmid, rmiregistry, schemagen, serialver, servertool, tnameserv, unpack200, wsgen, wsimport и xjc
Установленные библиотеки: $JAVA_HOME
/lib/* и $JAVA_HOME
/jre/lib/*
Установленные директории: /opt/icedtea6-1.9.7
Краткое описание
apt | является инструментальным средством обработки аннотаций |
extcheck | проверяет, конфликтует ли заголовок и версия указанного файла jar с какими-либо расширениями, установленными в пакете IcedTea |
idlj | генерирует Java-сборку из указанного файла IDL |
jar | объединяет несколько файлов в одном архив jar |
jarsigner | подписывает файлы jar и проверяет сигнатуры и целостность подписанного файла jar |
java | запускает Java-приложение с помощью среды времени исполнения Java Runtime, загружая для этого указанный класс и вызывая его метод main |
javac | читает определения класса и интерфейса, написанные на языке программирования Java, и компилирует их в файлы классов с байт-кодом |
javadoc | анализирует декларации и комментарии с документацией в наборе файлов с исходным кодом Java и создает соответствующий набор страниц HTML, описывающий классы, интерфейсы, конструкторы, методы и поля |
javah | строит заголовки С и файлы с исходным кодом, которые необходимы для реализации нативных методов |
javap | дизассемблирует файл с классом Java |
java-rmi.cgi | является Java RMI клиентом |
jconsole | является графической консолью, предназначенной мониторинга и управления как локальными, так и удаленными Java-приложениями и виртуальными машинами |
jdb | простой отладчик командной строки для классов Java |
jhat | анализирует дамп-файл Java-кучи и позволяет просматривать результат в браузере |
jinfo | выдает информацию о конфигурации для данного процесса Java, основном файле или удаленном сервере отладки |
jmap | выдает для данного процесса подробную информацию об отображении объектов в памяти и о памяти типа куча, основном файле или удаленном сервере отладки |
jps | выдает список инструментальных виртуальных машин JVM на целевой системе |
jrunscript | командная оболочка, предназначенная для выполнения команд командной строки |
jsadebugd | подключается к процессу Java или к основному файлу и выступает в качестве сервера отладки |
jstack | печатает Java трассировку стека потоков Java для заданного Java-процесса, основного файла или удаленного сервера отладки |
jstat | отображает статистику производительности для инструментальной JVM |
jstatd | серверное приложение RMI, которое отслеживает создание и завершение инструментальных JVM |
keytool | утилита управления ключами и сертификатами |
native2ascii | преобразует файлы, в которых есть символы неподдерживаемой кодировку в файлы, содержащие символами кодировок Latin-1 или Unicode |
orbd | используется, чтобы позволить клиентам на серверах в среде CORBA прозрачно находить и вызывать постоянно существующие (persistent) объекты |
pack200 | представляет собой приложение Java, которое с помощью компрессора Java gzip преобразует файл jar в сжатый файл pack200 |
pluginappletviewer | вспомогательная программа для IcedTeaPlugin.so |
policytool | в графическом режиме создает и управляет политикой файла |
rmic | по именам скомпилированных классов Java, в которых находятся реализации объектов удаленного доступа, создает файлы классов с заглушками и заготовками, предназначенных для доступа к удаленным объектам |
rmid | запускает демон активации системы |
rmiregistry | создает и запускает реестр удаленных объектов на указанном порту текущего хоста |
schemagen | является Java-генератором схем на XML |
serialver | возвращает serialVersionUID для одного или нескольких классов в виде, пригодном для копирования в разворачиваемом классе |
servertool | предоставляет простой в использовании интерфейс для прикладных программистов, используемый для регистрации, отмены регистрации, запуска и завершения работы сервера |
tnameserv | запускает сервер имен IDL языка Java |
unpack200 | является нативной реализацией, с помощью которой осуществляется преобразование упакованного файла, созданного с помощью pack200 в файл jar |
wsgen | создает портируемые варианты JAX-WS, используемый в веб сервисах |
wsimport | создает портируемые варианты JAX-WS |
xjc | является Java-компилятором, осуществляющим привязку XML |
Перевод сделан с варианта оригинала, датированного 2011-10-26 21:29:54 +0000
Предыдущий раздел: | Оглавление | Следующий раздел: |
Пакет Guile-2.0.3 | Пакет JDK-6 Update 18 |