为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

摇曳的蔷薇 2023-03-23 16:19:50
由于安全问题,Debian 似乎不再支持 openjdk-8-jdk。为 Debian 10 (Buster) 安装 openjdk-8-jdk 的最简单方法是什么?
查看完整描述

5 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

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


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

https://adoptopenjdk.net/installation.html


查看完整回答
反对 回复 2023-03-23
?
炎炎设计

TA贡献1808条经验 获得超4个赞

警告:这个答案表明 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 主要

安装步骤:

  1. 安装软件源管理器

    apt-get update
    apt-get install software-properties-common
  2. 用openjdk-8-jdk添加镜像

    apt-add-repository 'deb http://security.debian.org/debian-security stretch/updates main'
    apt-get update
  3. 安装 openjdk 8

    apt-get install openjdk-8-jdk

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


查看完整回答
反对 回复 2023-03-23
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

您可以搜索Debian 软件包站点,发现openjdk-8-jdkDebian 10 的软件包目前只能从不稳定的 (sid) 存储库中获得。

首先最好检查并保存已安装的 Java SDK/JRE 包的当前系统范围符号链接(如果有):

ls -la /etc/alternatives | grep java > previous-java-alternatives.txt

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

apt-cache policy openjdk-8-jdk

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

grep -r Default-Release /etc/apt/

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

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

APT::Default-Release "stable";

现在您已准备好将不稳定的存储库添加到源列表中。之前我比较喜欢在安装系统时查看我选择的镜像。只需查看主要来源列表:

cat /etc/apt/sources.list

在我的例子中,输出显示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

(我也有90-debian-testing.list测试回购的文件。)

然后更新包列表:

apt update

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

apt list --upgradable

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

apt-cache policy openjdk-8-jdk

安装包:

apt install openjdk-8-jdk

查看新的符号链接:

ls -la /etc/alternatives | grep java-8

只需在他们身上浪费几秒钟(或继续man 1 update-alternatives)。


查看完整回答
反对 回复 2023-03-23
?
阿晨1998

TA贡献2037条经验 获得超6个赞

这是我用来在 Bitbucket 的 Pipelines Docker 映像 NodeJS 10.16.2 上安装 OpenJDK 8 的脚本。但是现在我看到这个 docker 镜像是基于 Stretch 的……


它基于https://github.com/docker-library/openjdk/blob/89851f0abc3a83cfad5248102f379d6a0bd3951a/8-jdk/Dockerfile


#!/bin/bash

set -x #echo on

# based on https://github.com/docker-library/openjdk/blob/89851f0abc3a83cfad5248102f379d6a0bd3951a/8-jdk/Dockerfile


apt-get update && apt-get install -y --no-install-recommends \

  bzip2 \

  unzip \

  xz-utils &&

  rm -rf /var/lib/apt/lists/*


echo 'deb http://httpredir.debian.org/debian-security stretch/updates main' >/etc/apt/sources.list.d/jessie-backports.list


# Default to UTF-8 file.encoding

export.UTF-8


# add a simple script that can auto-detect the appropriate JAVA_HOME value

# based on whether the JDK or only the JRE is installed

{ \

    echo '#!/bin/sh'; \

    echo 'set -e'; \

    echo; \

    echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; \

} > /usr/local/bin/docker-java-home \

&& chmod +x /usr/local/bin/docker-java-home


export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

export JAVA_VERSION=8u252

export JAVA_DEBIAN_VERSION=8u252-b09-1~deb9u1


# see https://bugs.debian.org/775775

# and https://github.com/docker-library/java/issues/19#issuecomment-70546872

export CA_CERTIFICATES_JAVA_VERSION=20170929~deb9u3


set -x \

    && apt-get update \

    && apt-get install -y \

        openjdk-8-jdk="$JAVA_DEBIAN_VERSION" \

        ca-certificates-java="$CA_CERTIFICATES_JAVA_VERSION" \

    && rm -rf /var/lib/apt/lists/* \

    && [ "$JAVA_HOME" = "$(docker-java-home)" ]


# see CA_CERTIFICATES_JAVA_VERSION notes above

/var/lib/dpkg/info/ca-certificates-java.postinst configure


更新

事情发生了变化,版本升级了。这是适用于https://hub.docker.com/layers/node/library/node/10.16.2/images/sha256-8f420c033acee137f9e902092a04d371bdf1f839559cce60614c0d5905d20294?context=explore的最新脚本


#!/bin/bash

set -x #echo on

# based on https://github.com/docker-library/openjdk/blob/89851f0abc3a83cfad5248102f379d6a0bd3951a/8-jdk/Dockerfile


apt-get update && apt-get install -y --no-install-recommends \

  bzip2 \

  unzip \

  xz-utils &&

  rm -rf /var/lib/apt/lists/*


echo 'deb http://httpredir.debian.org/debian-security stretch/updates main' >/etc/apt/sources.list.d/jessie-backports.list


# Default to UTF-8 file.encoding

export.UTF-8


# add a simple script that can auto-detect the appropriate JAVA_HOME value

# based on whether the JDK or only the JRE is installed

{ \

    echo '#!/bin/sh'; \

    echo 'set -e'; \

    echo; \

    echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; \

} > /usr/local/bin/docker-java-home \

&& chmod +x /usr/local/bin/docker-java-home


export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

export JAVA_VERSION=8u265

export JAVA_DEBIAN_VERSION=8u265-b01-0+deb9u1


# see https://bugs.debian.org/775775

# and https://github.com/docker-library/java/issues/19#issuecomment-70546872

export CA_CERTIFICATES_JAVA_VERSION=20170929~deb9u3


set -x \

    && apt-get update \

    && apt-get install -y \

        openjdk-8-jdk="$JAVA_DEBIAN_VERSION" \

        ca-certificates-java="$CA_CERTIFICATES_JAVA_VERSION" \

    && rm -rf /var/lib/apt/lists/* \

    && [ "$JAVA_HOME" = "$(docker-java-home)" ]


# see CA_CERTIFICATES_JAVA_VERSION notes above

/var/lib/dpkg/info/ca-certificates-java.postinst configure



查看完整回答
反对 回复 2023-03-23
?
慕森王

TA贡献1777条经验 获得超3个赞

我需要安装一个 32 位版本,但据我所知,这在 adoptopenjdk 上不可用。我在 java.com 的下载区找到了一个二进制文件的副本:

jre-8u241-linux-i586.tar.gz

我所需要的只是 JRE(而不是 JDK,但两者的过程应该相同)并且由于它也仅供个人使用,因此 Oracle 二进制文件还可以(它们在这方面有限制)。

我下载了二进制文件并将其放在需要运行它的用户的主文件夹 (~/) 中,然后像这样解压缩它:

mkdir ~/java && cd ~/java && tar -xf jre-8u241-linux-i586.tar.gz

然后通过将此行附加到 ~/.profile 来将位置添加到将运行 Java 应用程序的用户的路径中:

export PATH=$PATH:/home/youruserid/java/jre1.8.0_241/bin

这对我的情况很有效,但毫无疑问有更好的方法来安装二进制文件。例如,所有 Unix 用户都可以使用它,而不仅仅是一个。


查看完整回答
反对 回复 2023-03-23
  • 5 回答
  • 0 关注
  • 701 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号