Есть ли способ указать место, где будут находиться все установленные файлы при установке Java JDK на Red Hat Linux 6? В настоящее время, когда я выполняю шаги, указанные в Инструкция по установке, по умолчанию /usr/java/
и я хотел бы, чтобы все файлы были установлены в отдельном месте.
Вы можете выполнить самораспаковывающийся *.bin
во временном каталоге и переместите полученные файлы в любое место назначения.
Мне действительно не нравится, как установщик создает случайные символические ссылки, нарушающие систему альтернатив.
Лично я не вижу реальной ценности в том, чтобы JDK располагался в нестандартных местах.
Чтобы иметь дело с обновлениями Oracle JDK, мое решение - создать RPM, используя fpm. Он устанавливается в расположение по умолчанию, и к нему добавлен сценарий после установки для запуска update-alternatives
крючок, чтобы последняя версия была доступна сразу. Конечно, приложения, использующие старую версию java, по-прежнему требуют перезапуска.
Вы можете адаптировать мое решение под свои нужды, изменив --prefix
параметр.
fpm -s dir -t rpm \
--prefix /usr/lib/jvm \
--force \
--name java-1.7.0-oraclejdk \
--version 1.7.0.25 \
--iteration 1 \
--epoch 20130621 \
--license 'Oracle Binary Code License Agreement for the Java SE Platform Products and JavaFX' \
--vendor 'Oracle' \
--category 'java' \
--architecture x86_64 \
--maintainer '' \
--exclude src.zip \
--description 'The Oracle JDK runtime environment.' \
--url http://www.oracle.com/ \
--after-install java-alternatives.sh \
--template-scripts \
--template-value priority=1725 \
--rpm-os el6 \
jdk1.7.0_25
alternatives --install /usr/bin/java java /usr/java/jdk<%= version >/jre/bin/java <%= priority > \
--slave /usr/bin/appletviewer appletviewer /usr/java/jdk<%= version >/bin/appletviewer \
--slave /usr/bin/apt apt /usr/java/jdk<%= version >/bin/apt \
--slave /usr/bin/ControlPanel ControlPanel /usr/java/jdk<%= version >/bin/ControlPanel \
--slave /usr/bin/extcheck extcheck /usr/java/jdk<%= version >/bin/extcheck \
--slave /usr/bin/idlj idlj /usr/java/jdk<%= version >/bin/idlj \
--slave /usr/bin/jar jar /usr/java/jdk<%= version >/bin/jar \
--slave /usr/bin/jarsigner jarsigner /usr/java/jdk<%= version >/bin/jarsigner \
--slave /usr/bin/javac javac /usr/java/jdk<%= version >/bin/javac \
--slave /usr/bin/javadoc javadoc /usr/java/jdk<%= version >/bin/javadoc \
--slave /usr/bin/javafxpackager javafxpackager /usr/java/jdk<%= version >/bin/javafxpackager \
--slave /usr/bin/javah javah /usr/java/jdk<%= version >/bin/javah \
--slave /usr/bin/javap javap /usr/java/jdk<%= version >/bin/javap \
--slave /usr/bin/java_vm java_vm /usr/java/jdk<%= version >/jre/bin/java_vm \
--slave /usr/bin/javaws javaws /usr/java/jdk<%= version >/bin/javaws \
--slave /usr/bin/jcmd jcmd /usr/java/jdk<%= version >/bin/jcmd \
--slave /usr/bin/jconsole jconsole /usr/java/jdk<%= version >/bin/jconsole \
--slave /usr/bin/jcontrol jcontrol /usr/java/jdk<%= version >/bin/jcontrol \
--slave /usr/bin/jdb jdb /usr/java/jdk<%= version >/bin/jdb \
--slave /usr/bin/jhat jhat /usr/java/jdk<%= version >/bin/jhat \
--slave /usr/bin/jinfo jinfo /usr/java/jdk<%= version >/bin/jinfo \
--slave /usr/bin/jmap jmap /usr/java/jdk<%= version >/bin/jmap \
--slave /usr/bin/jps jps /usr/java/jdk<%= version >/bin/jps \
--slave /usr/bin/jrunscript jrunscript /usr/java/jdk<%= version >/bin/jrunscript \
--slave /usr/bin/jsadebugd jsadebugd /usr/java/jdk<%= version >/bin/jsadebugd \
--slave /usr/bin/jstack jstack /usr/java/jdk<%= version >/bin/jstack \
--slave /usr/bin/jstat jstat /usr/java/jdk<%= version >/bin/jstat \
--slave /usr/bin/jstatd jstatd /usr/java/jdk<%= version >/bin/jstatd \
--slave /usr/bin/jvisualvm jvisualvm /usr/java/jdk<%= version >/bin/jvisualvm \
--slave /usr/bin/keytool keytool /usr/java/jdk<%= version >/bin/keytool \
--slave /usr/bin/native2ascii native2ascii /usr/java/jdk<%= version >/bin/native2ascii \
--slave /usr/bin/orbd orbd /usr/java/jdk<%= version >/bin/orbd \
--slave /usr/bin/pack200 pack200 /usr/java/jdk<%= version >/bin/pack200 \
--slave /usr/bin/policytool policytool /usr/java/jdk<%= version >/bin/policytool \
--slave /usr/bin/rmic rmic /usr/java/jdk<%= version >/bin/rmic \
--slave /usr/bin/rmid rmid /usr/java/jdk<%= version >/bin/rmid \
--slave /usr/bin/rmiregistry rmiregistry /usr/java/jdk<%= version >/bin/rmiregistry \
--slave /usr/bin/schemagen schemagen /usr/java/jdk<%= version >/bin/schemagen \
--slave /usr/bin/serialver serialver /usr/java/jdk<%= version >/bin/serialver \
--slave /usr/bin/servertool servertool /usr/java/jdk<%= version >/bin/servertool \
--slave /usr/bin/tnameserv tnameserv /usr/java/jdk<%= version >/bin/tnameserv \
--slave /usr/bin/unpack200 unpack200 /usr/java/jdk<%= version >/bin/unpack200 \
--slave /usr/bin/wsgen wsgen /usr/java/jdk<%= version >/bin/wsgen \
--slave /usr/bin/wsimport wsimport /usr/java/jdk<%= version >/bin/wsimport \
--slave /usr/bin/xjc xjc /usr/java/jdk<%= version >/bin/xjc