如何在Debian 10(Buster)上安装openjdk-8-jdk?

Gra*_*Lee 6 java debian java-8

由于安全问题,Debian似乎不再支持openjdk-8-jdk。为Debian 10(Buster)安装openjdk-8-jdk的最简单方法是什么?

小智 111

或者,您可以使用takenopenjdk 存储库:

wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -

sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/

sudo apt-get update && sudo apt-get install adoptopenjdk-8-hotspot
Run Code Online (Sandbox Code Playgroud)

https://adoptopenjdk.net/installation.html

  • 对于那些在第二个命令“add-apt-repository:命令未找到”上出现错误的人,请在第一个 sudo apt-get install software-properties-common 之后尝试这个额外的步骤 (23认同)
  • 更好的答案,简单实用。 (4认同)
  • 如果您在 `python:3.7-buster` Docker 映像中安装 `openjdk-8`,则必须添加命令 `mkdir -p /usr/share/man/man1/` (4认同)
  • 按照帖子说明进行操作后,JAVA_HOME var 为 /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/jre/,对于任何寻找... (3认同)
  • 令人难以置信的是需要多少谷歌搜索和滚动才能到达这里。这是唯一有价值的答案。 (2认同)

Hir*_*103 49

警告:这个答案暗示了 Debian 版本不受支持和危险的混合。遵循风险自负的建议,因为它可能会在升级时破坏系统,如 http://wiki.debian.org/DontBreakDebian#Don.27t_make_a_FrankenDebian 中所述

包镜像搜索步骤:

  1. 搜索包目录中搜索openjdk-8-jdk。您可以看到两个结果:

  2. 选择拉伸存储库

  3. 滚动到下载 openjdk-8-jdk部分并选择您的架构。例如amd64

  4. 现在你可以看到镜像列表和如何通过 apt 安装包的说明:

    您应该能够通过在 /etc/apt/sources.list 中添加一行来使用任何列出的镜像,如下所示:

    deb http://security.debian.org/debian-security stretch/updates main

安装步骤:

  1. 安装软件源管理器

    apt-get update
    apt-get install software-properties-common
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用 openjdk-8-jdk 添加镜像

    apt-add-repository 'deb http://security.debian.org/debian-security stretch/updates main'
    apt-get update
    
    Run Code Online (Sandbox Code Playgroud)
  3. 安装 openjdk 8

    apt-get install openjdk-8-jdk
    
    Run Code Online (Sandbox Code Playgroud)

注意:您可以使用上述步骤查找包含要安装的任何其他软件包的官方 Debian 镜像

  • 这是一个危险的建议,因为混合不同的 Debian 版本的存储库可能会破坏 Debian 安装。http://wiki.debian.org/DontBreakDebian#Don.27t_make_a_FrankenDebian 这个答案比其他答案稍微危险一些,因为唯一可用的 jdk8 处于拉伸(oldstable)状态,并且提取随机版本的软件包的机会较小,但呈现作为通用解决方案,这是具有误导性且危险的。请考虑删除此答案。 (4认同)

osh*_*trk 6

您可以搜索Debian软件包站点,并找到openjdk-8-jdkDebian 10 的软件包当前仅可从不稳定的(sid)存储库中获得。

首先,最好检查并保存当前已安装的Java SDK / JRE程序包的当前系统范围的符号链接:

ls -la /etc/alternatives | grep java > previous-java-alternatives.txt
Run Code Online (Sandbox Code Playgroud)

然后检查是否可以使用当前配置安装此软件包:

apt-cache policy openjdk-8-jdk
Run Code Online (Sandbox Code Playgroud)

如果否,则需要将不稳定的存储库添加到源列表。负输出可能意味着您更喜欢使用稳定的存储库,通常不适合从不稳定的存储库更新所有其他软件。因此,在将不稳定的存储库添加到源列表之前,请确保将APT::Default-Release配置选项设置为"stable"

grep -r Default-Release /etc/apt/
Run Code Online (Sandbox Code Playgroud)

如果没有(默认情况下),则通过创建此文件按照该答案中的建议进行设置:

/etc/apt/apt.conf.d/99defaultrelease

APT::Default-Release "stable";
Run Code Online (Sandbox Code Playgroud)

现在,您可以将不稳定的存储库添加到源列表中。在我更喜欢检查安装系统时我选择了哪个镜像之前。只需查看主要来源列表:

cat /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)

在我的情况下,输出显示mirror.yandex.ru服务器用作系统源。因此,我对不稳定对象使用相同的方法,并添加以下文件:

/etc/apt/sources.list.d/91-debian-unstable.list

deb http://mirror.yandex.ru/debian/ unstable main
deb-src http://mirror.yandex.ru/debian/ unstable main
Run Code Online (Sandbox Code Playgroud)

(我还有90-debian-testing.list测试仓库的文件。)

然后更新软件包列表:

apt update
Run Code Online (Sandbox Code Playgroud)

并检查您的系统不会从不稳定的来源进行更新:

apt list --upgradable
Run Code Online (Sandbox Code Playgroud)

并重新检查是否需要安装软件包:

apt-cache policy openjdk-8-jdk
Run Code Online (Sandbox Code Playgroud)

请安装软件包:

apt install openjdk-8-jdk
Run Code Online (Sandbox Code Playgroud)

查看新的符号链接:

ls -la /etc/alternatives | grep java-8
Run Code Online (Sandbox Code Playgroud)

只需对它们浪费几秒钟(或继续进行man 1 update-alternatives)。