在运行最新 Debian 镜像的 Docker 容器中,我无法安装该openjdk-8-jdk
软件包。为什么突然就不行了?
$ apt-get install openjdk-8-jdk
E: Unable to locate package openjdk-8-jdk
为什么不呢,就是这样:https://packages.debian.org/stretch/openjdk-8-jdk
Debian 版本:
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
搜索 openjdk-8-jdk 包:
apt-cache search --names-only '^openjdk-8*'
openjdk-11-dbg - Java runtime based on OpenJDK (debugging symbols)
openjdk-11-demo - Java runtime based on OpenJDK (demos and examples)
openjdk-11-doc - OpenJDK Development Kit (JDK) documentation
openjdk-11-jdk - OpenJDK Development Kit (JDK)
openjdk-11-jdk-headless - OpenJDK Development Kit (JDK) (headless)
openjdk-11-jre - OpenJDK Java runtime, using Hotspot JIT
openjdk-11-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)
openjdk-11-jre-zero - Alternative JVM for OpenJDK, using Zero
openjdk-11-source - OpenJDK Development Kit (JDK) source files
openjdk-11-jre-dcevm - Alternative VM for OpenJDK 11 with enhanced class redefinition
答案1
您使用的是 Debian 10(buster),但您显示的链接适用于 Debian 9(stretch)。
Buster 的 OpenJDK 版本为 11,并且 OpenJDK 8 不可用。
https://packages.debian.org/buster/openjdk-11-jdk
如果需要这个,请使用基于 Stretch 的 docker 镜像。
答案2
显然,Debian 10 别名 Buster 仅提供 openjdk 11 软件包。
对我来说,这意味着改用 debian 9 别名 stretch。我必须承认,一开始使用 latest 作为版本就不是很明智。
前:
FROM debian:latest
后:
FROM debian:stretch
Debian 延伸是支持至 2022 年 6 月的 LTS 版本
答案3
我知道它不是 Java 8,而是适用于 Debian v 10 的 Java 11:
sudo apt-get install openjdk-11-jre
答案4
我在构建时遇到此错误Dockerfile
。解决方案是安装default-jre
:
sudo apt-get install -y default-jre