Назад | Перейти на главную страницу

Как без ошибок установить Oracle Java на Debian Wheezy с помощью make-jpkg и fakeroot?

Как установить Oracle Java на Debian Wheezy с помощью make-jpkg и fakeroot?

инструкция по установке oracle java на debian wheezy довольно ясна и понятна:

http://wiki.debian.org/JavaPackage https://blogs.oracle.com/marigan/entry/installation_of_the_jdk_on http://www.debian-administration.org/articles/142

как root работает:

make-jpkg jdk-7u21-linux-x64.tar.gz fakeroot make-jpkg jdk-7u21-linux-x64.tar.gz

приводит к следующей ошибке:

Вы настоящий root - к сожалению, в некоторых дистрибутивах Java есть сценарии установки, которые напрямую управляют / etc и могут вызвать некоторые несоответствия в вашей системе. Вместо этого вы должны стать пользователем без полномочий root и запустить:

fakeroot make-jpkg jdk-7u21-linux-x64.tar.gz

что позволит не причинить вреда вашим системным файлам и по-прежнему позволит успешно извлечь дистрибутив Java.

Прерывание.

как обычный пользователь работает:

make-jpkg jdk-7u21-linux-x64.tar.gz fakeroot make-jpkg jdk-7u21-linux-x64.tar.gz

приводит как к стене предупреждения / ошибки.

некоторые из ошибок:

dpkg-shlibdeps: warning: Can't extract name and version from library name `libverify.so'
error: couldn't find library libxslt.so.1 needed by /tmp/make-jpkg.MxvYKHyE3L/install/usr/lib/jvm/j2sdk1.7-oracle/jre/lib/amd64/libjfxwebkit.so (ELF format: 'elf64-x86-64'; RPATH: '')
dpkg-gencontrol: warning: Depends field of package oracle-j2sdk1.7: unknown substitution variable ${shlibs:Depends}
dpkg-shlibdeps: error: cannot continue due to the errors listed above

полный вывод: без fakeroot http://pastie.org/private/r2llqa2pubqzh8krhbymw

с fakeroot http://pastie.org/private/kigrgcsam9pvdazbex1fa

установка работает нормально:

dpkg -i oracle-j2sdk1.7_1.7.0+update21_amd64.deb

версия Java:

java -version
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)

можно ли игнорировать ошибку?

Прежде всего, вы можете игнорировать предупреждения, выдаваемые dpkg-shlibdeps. Ошибки должны подсказать вам, какие пакеты необходимо установить, чтобы удовлетворить все зависимости библиотеки для JDK.

Причина этого в том, что вы создаете пакет deb из двоичного дистрибутива, то есть предварительно скомпилированного JDK. Обычно пакеты Debian собираются из исходного кода, а не из двоичных файлов. Для этого человек, создающий пакет, должен добавить все библиотеки, от которых зависит исходный код, в определенный файл (debian/control). Без установленных библиотек исходный код не может быть скомпилирован и, следовательно, не приведет к созданию пакета.

В вашем случае весь JDK уже был скомпилирован Oracle и make-jpkg только имитирует процесс сборки пакета из исходного кода. Поэтому вам не нужно заранее устанавливать все необходимые библиотеки.

Чтобы заглушить ошибки, вы можете использовать apt-file чтобы узнать, какие пакеты содержат недостающие файлы (libgtk-x11-2.0.so.0, libgdk-x11-2.0.so.0, libatk-1.0.so.0, ...) и установите их все.

Или вы можете просто использовать OpenJDK, который поставляется в комплекте с Debian Wheezy и может быть легко установлен через apt-get install openjdk-7-jdk.