98 votes

Comment installer openjdk-8-jdk sur Debian 10 (Buster) ?

Il semble que Debian ne prend plus en charge openjdk-8-jdk en raison d'un problème de sécurité. Quel est le moyen le plus simple d'installer openjdk-8-jdk pour Debian 10 (Buster)?

5 votes

Probablement adoptopenjdk.net.

0 votes

0 votes

Veuillez lire ce post itzgeek.com/how-tos/linux/debian/…

134voto

Nizarazu Points 1029

Alternativement, vous pouvez utiliser le référentiel 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

0 votes

C'est la seule solution qui semble fonctionner pour moi, étant donné l'état actuel de la version instable de Debian d'opensdk-8.

4 votes

Meilleure réponse, simple et pratique.

3 votes

Incroyable combien de recherches et de défilement étaient nécessaires pour arriver ici. C'est la seule réponse digne de ce nom.

66voto

Hirurg103 Points 1049

AVERTISSEMENT : cette réponse suggère un mélange non pris en charge et dangereux des versions de Debian. Suivez les conseils à vos propres risques, car cela peut casser le système lors des mises à jour, comme expliqué dans http://wiki.debian.org/DontBreakDebian#Don.27t_make_a_FrankenDebian

Étapes de recherche de miroir de paquets :

  1. Dans la recherche dans les répertoires des paquets, recherchez openjdk-8-jdk. Vous verrez deux résultats :

  2. Choisissez le dépôt stretch

  3. Faites défiler jusqu'à la section Télécharger openjdk-8-jdk et choisissez votre architecture. Par exemple amd64

  4. Maintenant, vous verrez une liste de miroirs et des instructions sur comment installer le paquet via apt :

    Vous devriez pouvoir utiliser l'un des miroirs répertoriés en ajoutant une ligne à votre /etc/apt/sources.list comme ceci:

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

Étapes d'installation :

  1. Installer le gestionnaire de sources logicielles

    apt-get update
    apt-get install software-properties-common
  2. Ajouter le miroir avec openjdk-8-jdk

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

    apt-get install openjdk-8-jdk

Note : Vous pouvez utiliser les étapes ci-dessus pour trouver un miroir officiel de Debian avec n'importe quel autre paquet que vous souhaitez installer

1 votes

Les étapes d'installation sont vraiment cool et ont fonctionné en douceur. Merci.

2 votes

Il s'agit d'un conseil dangereux car mélanger les dépôts de différentes versions de Debian peut casser l'installation de Debian. wiki.debian.org/DontBreakDebian#Don.27t_make_a_FrankenDebian Cette réponse est légèrement moins dangereuse que l'autre réponse, car le seul jdk8 disponible est dans stretch (oldstable) et a moins de chances de tirer des versions aléatoires de paquets, mais présenter cela comme une solution générique est trompeur et dangereux. Merci de considérer la suppression de cette réponse.

0 votes

Les étapes d'installation mentionnées ci-dessus ont bien fonctionné.

10voto

oshatrk Points 196

Vous pouvez rechercher le site des packages Debian et découvrir que le paquet openjdk-8-jdk pour Debian 10 est actuellement disponible uniquement dans le dépôt unstable (sid).

Tout d'abord, il est bon de vérifier et d'enregistrer les liens symboliques système actuels des packages Java SDK/JRE déjà installés, le cas échéant :

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

Ensuite, vérifiez si ce paquet peut être installé avec la configuration actuelle :

apt-cache policy openjdk-8-jdk

Si ce n'est pas le cas, vous devez ajouter le dépôt unstable à la liste des sources. Le résultat négatif peut impliquer que vous préférez utiliser les dépôts stables et que ce n'est généralement pas approprié pour vous de mettre à jour tout autre logiciel à partir des dépôts unstable. Avant d'ajouter le dépôt unstable à la liste des sources, assurez-vous que l'option de configuration APT::Default-Release est définie sur "stable" :

grep -r Default-Release /etc/apt/

Si ce n'est pas le cas (par défaut), définissez-le comme recommandé dans cette réponse en créant ce fichier :

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

APT::Default-Release "stable";

Vous êtes maintenant prêt à ajouter le dépôt unstable à la liste des sources. Avant, je préfère vérifier quel miroir a été sélectionné lors de l'installation du système. Il suffit de regarder la liste des sources principales :

cat /etc/apt/sources.list

Dans mon cas, la sortie montre que le serveur mirror.yandex.ru est utilisé comme source du système. Donc j'utilise le même pour les unstable et j'ajoute ce fichier :

/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

(J'ai aussi le fichier 90-debian-testing.list pour le dépôt de tests.)

Ensuite, mettez à jour les listes de packages :

apt update

Et vérifiez que votre système ne se mettra pas à jour à partir de sources unstable :

apt list --upgradable

Revérifiez si le paquet requis peut être installé :

apt-cache policy openjdk-8-jdk

Installez le paquet :

apt install openjdk-8-jdk

Regardez les nouveaux liens symboliques :

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

Perdez juste quelques secondes sur eux (ou continuez avec man 1 update-alternatives).

1 votes

Ceci ne fonctionne plus en raison de la version instable qui est construite contre une version de libc6 en conflit avec la distribution stable.

0 votes

Même lorsque l'intention derrière APT::Default-Release "stable"; est bonne, son utilisation ne permet pas de terminer l'installation de JDK 8 avec apt install openjdk-8-jdk.

1 votes

Ce AntiPattern est communément appelé "FrankenDebian". Il conduit à un certain nombre de problèmes de mise à jour / installation

3voto

Marecky Points 351

Ceci est mon script que j'utilise pour installer OpenJDK 8 sur l'image Docker NodeJS 10.16.2 de Bitbucket Pipelines. Mais maintenant je vois que cette image Docker est basée sur Stretch...

Elle est basée sur https://github.com/docker-library/openjdk/blob/89851f0abc3a83cfad5248102f379d6a0bd3951a/8-jdk/Dockerfile

#!/bin/bash
set -x #echo on
# basé sur 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

# Défaut à l'encodage UTF-8
export LANG=C.UTF-8

# ajoutez un script simple qui peut détecter automatiquement la valeur JAVA_HOME appropriée
# basé sur l'installation du JDK ou du JRE seulement
{ \
    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

# voir https://bugs.debian.org/775775
# et 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)" ]

# voir les notes CA_CERTIFICATES_JAVA_VERSION ci-dessus
/var/lib/dpkg/info/ca-certificates-java.postinst configure

UPDATE

Les choses changent, les versions sont mises à jour. Voici le script le plus récent qui fonctionne pour https://hub.docker.com/layers/node/library/node/10.16.2/images/sha256-8f420c033acee137f9e902092a04d371bdf1f839559cce60614c0d5905d20294?context=explore

#!/bin/bash
set -x #echo on
# basé sur 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

# Défaut à l'encodage UTF-8
export LANG=C.UTF-8

# ajoutez un script simple qui peut détecter automatiquement la valeur JAVA_HOME appropriée
# basé sur l'installation du JDK ou du JRE seulement
{ \
    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

# voir https://bugs.debian.org/775775
# et 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)" ]

# voir les notes CA_CERTIFICATES_JAVA_VERSION ci-dessus
/var/lib/dpkg/info/ca-certificates-java.postinst configure

1voto

Moika Turns Points 81

J'avais besoin d'installer une version 32 bits mais cela n'était pas disponible chez adoptopenjdk autant que je pouvais le voir. J'ai trouvé une copie d'un binaire sur java.com dans leur zone de téléchargement :

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

Tout ce dont j'avais besoin était le JRE (plutôt qu'un JDK, mais le processus devrait être le même pour les deux) et comme c'était aussi pour un usage personnel uniquement, le binaire Oracle était OK (ils ont des limitations à cet égard).

J'ai téléchargé le binaire et l'ai placé dans le dossier personnel (~/) de l'utilisateur qui devait l'exécuter, puis je l'ai décompressé comme ceci :

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

Ensuite, j'ai ajouté l'emplacement au chemin de l'utilisateur qui exécuterait l'application Java en ajoutant cette ligne à ~/.profile :

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

Cela a bien fonctionné dans mon cas mais il existe sans aucun doute de meilleures façons d'installer un binaire. Par exemple pour qu'il soit disponible pour tous les utilisateurs Unix plutôt que pour un seul uniquement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X