我试图在debian:jessie docker容器上通过oracle-java8-installer安装java 8.以下是我的Dockerfile:
FROM debian:jessie
ENV JAVA_VERSION 1.8.0
RUN echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" > /etc/apt/sources.list.d/webupd8team-java.list
RUN echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" >> /etc/apt/sources.list.d/webupd8team-java.list
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
RUN echo "debconf shared/accepted-oracle-license-v1-1 select true" | /usr/bin/debconf-set-selections
RUN apt-get update
RUN apt-get install -y --force-yes vim
RUN apt-get install -y --force-yes oracle-java8-installer
然而,这给了:
Connecting to download.oracle.com (download.oracle.com)|23.63.224.171|:80... connected.
HTTP request sent,awaiting response... 404 Not Found
2018-01-17 12:31:05 ERROR 404: Not Found.
download Failed
Oracle JDK 8 is NOT installed.
dpkg: error processing package oracle-java8-installer (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
oracle-java8-installer
E: Sub-process /usr/bin/dpkg returned an error code (1)
The command '/bin/sh -c apt-get install -y --force-yes oracle-java8-installer' returned a non-zero code: 100
我发现在线描述了许多类似的问题,但没有一个提出的解决方案适合我.任何的想法?
最佳答案
您正在从webupd8 PPA repo进行安装.如果你注意到,那个repo中的Java 8软件包指向Java 8版本151.该软件包从Oracle服务器中提取151的二进制文件(因为Java Oracle许可证不允许任何其他人托管二进制文件). Oracle几天前发布了版本161,显然已经从他们的服务器移动或删除了151.所以基本上webupd8 PPA repo中的包试图下载151二进制文件,它不再存在于webupd8包所期望的位置(因此你得到的是404). webupd8 PPA repo维护者必须发布一个新的包,指向Oracle的新161二进制文件. Docker或Debian在这个问题上没有任何作用,它基本上只是一个破碎的链接问题.
在此之前,您可以应用像此处提到的“解决方法”:JDK 8 is NOT installed – ERROR 404: Not Found
这是webupd8 repo中的Java包列表:
https://launchpad.net/~webupd8team/+archive/ubuntu/java/+packages