使用JavaPackage为JDK8生成.deb

使用JavaPackage为JDK8生成.deb,java,deb,Java,Deb,我正在尝试在Debian Stretch上安装JDK8。推荐的方法是使用 我已经使用以下方法成功打包了JDK6和JDK7: 从下载JDK归档文件 fakeroot制作jpkg-jdk-7u55-linux-x64.tar.gz dpkg-i结果.deb 我可以从JDK8归档文件中成功创建.deb,但是当我使用dpkg安装它时,我缺少很多依赖项 gnome-icon-theme gtk-update-icon-cache java-common libasound2 libasound2-da

我正在尝试在Debian Stretch上安装JDK8。推荐的方法是使用

我已经使用以下方法成功打包了JDK6和JDK7:

  • 从下载JDK归档文件
  • fakeroot制作jpkg-jdk-7u55-linux-x64.tar.gz
  • dpkg-i结果.deb
我可以从JDK8归档文件中成功创建.deb,但是当我使用
dpkg
安装它时,我缺少很多依赖项

gnome-icon-theme gtk-update-icon-cache java-common libasound2 libasound2-data libatk1.0-0 libatk1.0-data libcroco3 libdrm-amdgpu1 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libgail-common libgail18 libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libllvm3.9 libpciaccess0 librsvg2-2 librsvg2-common libtxc-dxtn-s2tc libx11-xcb1 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-sync1 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxi6 libxinerama1 libxrandr2 libxshmfence1 libxtst6 libxxf86vm1 x11-common
我可以手动安装它们,但我不确定为什么早期的JDK没有这种依赖性问题。我正在编写一个安装脚本,如果我只安装一个.deb,而不必单独安装所有额外的依赖项,我会很高兴

makeJPKG
根据其手册页支持JDK8

任何人都可以提供一些见解,说明为什么从早期JDK创建的.deb不需要任何额外的依赖项。或者,这可能只是他们的依赖关系已经存在于一个库存Debian安装中的一个例子

编辑:我找到了这条线索,从某种程度上解释了这一点:

发生这种情况的原因是您正在从二进制发行版(即预编译的JDK)构建一个deb包。通常,Debian包是从源代码构建的,而不是从二进制文件构建的。为此,构建包的人会将源依赖的所有库添加到某个文件(debian/control)中。如果没有安装这些库,则无法编译源代码,因此不会生成包


我只是使用了。@ElliottFrisch谢谢,我知道这个选项,但我希望.deb程序与我正在进行的项目保持一致。
   make-jpkg builds a Debian package from the given Java distribution FILE.
   Supported java binary distributions currently include:
     * Oracle (http://www.oracle.com/technetwork/java/javase/downloads) :
       - The Java Development Kit (JDK), version 6, 7 and 8
       - The Java Runtime Environment (JRE), version 6, 7 and 8
       - The Java API Javadoc, version 6, 7 and 8
     (Choose tar.gz archives or self-extracting archives, do _not_ choose the RPM!)