如何使用make-jpkg和fakeroot在Debian上安装Oracle Java?
在debian上安装oracle的手册非常清楚,也可以理解:
http://wiki.debian.org/JavaPackage https://blogs.oracle.com/marigan/entry/installation_的_这个_jdk_在……上面 http://www.debian-administration.org/articles/142
作为根运行:
make-jpkg jdk-7u21-linux-x64.tar.gz fakeroot make-jpkg jdk-7u21-linux-x64.tar.gz
结果出现以下错误:
您是真正的根用户--不幸的是,一些Java发行版有直接操作/etc的安装脚本,并且可能会导致系统上的一些不一致。相反,您应该成为一个非根用户并运行: fakeroot make 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.debjava版本:
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)这个错误可以忽略吗?
发布于 2016-07-14 19:37:03
首先,您可以忽略dpkg-shlibdeps发出的警告。这些错误应该提示您需要安装哪个包才能满足JDK的所有库依赖关系。
发生这种情况的原因是,您正在从二进制发行版(即预编译JDK )构建一个deb包。通常,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预先打包的,可以通过apt-get install openjdk-7-jdk轻松安装。
https://serverfault.com/questions/511346
复制相似问题