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

Как установить 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

  • скачать jdk-7u21-linux-x64.tar.gz с oracle
  • установить пакет java
  • запустите make-jpkg с jdk-7u21-linux-x64.tar.gz

как root, запущенный:

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

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

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

поддельный root 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

с поддельным рутом 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)

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

решение1

Прежде всего, вы можете игнорировать предупреждения, выдаваемые 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.

Связанный контент