首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用make-jpkg和fakeroot在Debian上安装Oracle Java而没有错误?

如何使用make-jpkg和fakeroot在Debian上安装Oracle Java而没有错误?
EN

Server Fault用户
提问于 2013-05-28 11:25:20
回答 1查看 7.6K关注 0票数 5

如何使用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

  • 从oracle下载jdk-7u21-linux-x64.tar.gz
  • 安装java包
  • 使用jdk-7u21-linux-x64.tar.gz运行make-jpkg

作为根运行:

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

结果都在警告/错误墙中。

其中一些错误:

代码语言:javascript
复制
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

安装工作良好:

代码语言:javascript
复制
dpkg -i oracle-j2sdk1.7_1.7.0+update21_amd64.deb

java版本:

代码语言:javascript
复制
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)

这个错误可以忽略吗?

EN

回答 1

Server Fault用户

发布于 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.0libgdk-x11-2.0.so.0libatk-1.0.so.0、.)把它们全部安装好。

或者您可以使用OpenJDK,它是为Debian预先打包的,可以通过apt-get install openjdk-7-jdk轻松安装。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/511346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档