Il semble que Debian ne prend plus en charge openjdk-8-jdk en raison d'un problème de sécurité. Quelle est la manière la plus simple d'installer openjdk-8-jdk pour Debian 10 (Buster)?
9 Réponses :
J'ai trouvé cette voie. Ajoutez dans your sources.list
:
sudo update-alternatives --config java
Le repo suivant:
sudo apt-get install openjdk-8-jdk
Ensuite:
sudo apt-get update
Dernier:
deb http://ftp.us.debian.org/debian sid main
Etapes supplémentaires:
sudo vim /etc/apt/sources.list
Choisissez votre version java.
A travaillé pour moi avec l'image docker Debian buster
.
1154 packages can be upgraded. Run 'apt list --upgradable' to see them.
Cela migre toute l'installation vers Sid
Cela importe la branche instable de debian dans la branche stable. Utilisez ces conseils avec précaution.
l'ajout de sid / unstable à une distribution stable est un AntiPattern communément appelé FrankeDebian: wiki.debian.org/DontBreakDebian#Don.27t_make_a_FrankenDebian
Cela a fonctionné pour moi, je viens d'avoir un conflit dans libc6-dev, je l'ai corrigé avec apt install -y libc6-dev:amd64=2.30-8
Cela fonctionne jusqu'à ce qu'il interrompe votre mise à jour Debian de manière imprévue et difficile à déboguer. C'est juste un conseil terrible.
Vous pouvez rechercher le site des paquets Debian et découvrir que le openjdk-8-jdk
pour Debian 10 n'est actuellement disponible qu'à partir du dépôt unstable (Sid).
Au début, il est bon de vérifier et d'enregistrer les liens symboliques actuels à l'échelle du système pour les packages Java SDK / JRE déjà installés, le cas échéant:
ls -la /etc/alternatives | grep java-8
Vérifiez ensuite si ce package peut être installé avec la configuration actuelle:
apt install openjdk-8-jdk
Si non, vous devez ajouter un référentiel instable à la liste des sources. La sortie négative peut impliquer que vous préférez utiliser des référentiels stables et il n'est généralement pas approprié pour vous de mettre à jour tous les autres logiciels à partir de référentiels instables. Donc, avant d'ajouter un référentiel instable à la liste des sources, assurez-vous que l'option de configuration APT::Default-Release
est définie sur "stable"
:
apt-cache policy openjdk-8-jdk
Si non (comme par défaut), définissez-le comme recommandé dans cette réponse en créant ce fichier:
/etc/apt/apt.conf.d/99defaultrelease
apt list --upgradable
Vous êtes maintenant prêt à ajouter le référentiel instable à la liste des sources. Avant, je préfère vérifier quel miroir a été sélectionné par moi lors de l'installation du système. Regardez simplement la liste des sources principales:
apt update
Dans mon cas, la sortie montre que le serveur mirror.yandex.ru
est utilisé comme source système. J'utilise donc la même chose pour les instables et 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 un fichier 90-debian-testing.list
pour le dépôt testing.)
Ensuite, mettez à jour les listes de packages:
cat /etc/apt/sources.list
Et vérifiez que votre système ne se mettra pas à jour à partir de sources instables:
APT::Default-Release "stable";
Et revérifier si le package requis peut être installé:
grep -r Default-Release /etc/apt/
Installez le package:
apt-cache policy openjdk-8-jdk
Regardez les nouveaux liens symboliques:
ls -la /etc/alternatives | grep java > previous-java-alternatives.txt
Perdez juste quelques secondes dessus (ou continuez avec man 1 update-alternatives
).
Cela ne fonctionne (plus?), À cause de la version instable en cours de compilation avec une version de libc6 qui est en conflit avec la distribution stable.
Même quand il y a une bonne intention derrière APT::Default-Release "stable";
, son utilisation ne permet pas de terminer l'installation du JDK 8 avec apt install openjdk-8-jdk
.
Cet AntiPattern est communément appelé "FrankenDebian" . Cela conduit à un certain nombre de problèmes de mise à niveau / d'installation
Maintenant, openjdk-8-jdk
est disponible dans le référentiel stretch
. Voir ma réponse
J'étais en train de migrer de Jessie vers Buster et j'ai découvert que le code hérité pas si ancien ne se compilerait pas et ne fonctionnerait pas sur JDK11.
J'ai réussi à copier tous les dossiers java8 de ma distribution Jessie, retravaillé les liens et défini cela comme un nouveau JDK sur Eclipse. Cela fonctionne jusqu'à présent.
le moyen le plus simple que j'ai trouvé pour télécharger java 8 sur debian buster est d'utiliser la commande su apt-get install openjdk-8-jdk
Vous pouvez également 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
C'est la seule solution qui semble fonctionner pour moi, étant donné l'état actuel de la version instable de Debian de opensdk-8.
meilleure réponse, simple et pratique.
Incroyable combien de recherches sur Google et de défilement étaient nécessaires pour arriver ici. C'est la seule réponse valable.
Certaines installations ne pourront pas s'installer si elles ne trouvent pas openjdk-8-jdk d'Oracle. Voici un simple package virtuel qui "fournit" le package manquant via AdoptOpenJDK: gitlab.com/b8kich/adopt-openjdk-8-jdk/- / blob / master / ... Après avoir installé adoptopenjdk-8-hotspot, téléchargez le fichier .deb et installer en utilisant dpkg -i adopt-openjdk-8-jdk_0.1_all.deb
Si vous installez openjdk-8
en python:3.7-buster
image Docker python:3.7-buster
vous devez ajouter la commande mkdir -p /usr/share/man/man1/
Après avoir suivi les instructions des articles, la variable JAVA_HOME est / usr / lib / jvm / adoptopenjdk-8-hotspot-amd64 / jre /, pour tous ceux qui recherchent ...
pour ceux qui obtiennent une erreur sur la deuxième commande "add-apt-repository: command not found", essayez cette étape supplémentaire après le premier sudo apt-get install software-properties-common
J'avais besoin d'installer une version 32 bits, mais ce n'était pas disponible chez adoptopenjdk pour autant que je puisse le voir. J'ai retrouvé une copie d'un binaire sur java.com dans leur zone de téléchargement:
export PATH=$PATH:/home/youruserid/java/jre1.8.0_241/bin
Tout ce dont j'avais besoin était le JRE (plutôt qu'un JDK, mais le processus devrait être le même pour l'un ou l'autre) 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 avait besoin de l'exécuter, puis je l'ai décompressé comme suit:
mkdir ~/java && cd ~/java && tar -xf jre-8u241-linux-i586.tar.gz
Puis ajouté l'emplacement au chemin de l'utilisateur qui exécuterait l'application Java en ajoutant cette ligne à ~ / .profile:
jre-8u241-linux-i586.tar.gz
Cela a bien fonctionné pour mon cas, mais il existe sans aucun doute de meilleures façons d'installer un binaire. Par exemple, il est disponible pour tous les utilisateurs Unix plutôt que pour un seul.
Dans les répertoires du package de recherche , recherchez openjdk-8-jdk . Vous pouvez voir deux résultats:
Choisissez le référentiel extensible
Vous pouvez maintenant voir la liste des miroirs et les instructions pour installer le paquet via apt:
Vous devriez pouvoir utiliser n'importe lequel des miroirs listés en ajoutant une ligne à votre /etc/apt/sources.list comme ceci:
deb http://security.debian.org/debian-security stretch / updates main
Installer le gestionnaire de sources de logiciels
apt-get install openjdk-8-jdk
Ajouter un miroir avec openjdk-8-jdk
apt-add-repository 'deb http://security.debian.org/debian-security stretch/updates main' apt-get update
Installez openjdk 8
apt-get update apt-get install software-properties-common
Remarque: vous pouvez utiliser les étapes ci-dessus pour trouver un miroir Debian officiel avec tout autre paquet que vous souhaitez installer
C'est mon script que j'utilise pour installer OpenJDK 8 sur l'image Docker Pipelines de Bitbucket NodeJS 10.16.2. Mais maintenant je vois que cette image de docker est basée sur Stretch ...
Il est basé sur 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 LANG=C.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
Les choses changent, les versions sont augmentées. Voici le dernier script 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 # 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 LANG=C.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
Le moyen le plus simple d'installer JDK8 consiste à utiliser SDKMAN .
$ curl -s "https://get.sdkman.io" | bash $ source "$HOME/.sdkman/bin/sdkman-init.sh" $ sdk install java 8.0.275.hs-adpt
Probablement adoptopenjdk.net .
superuser.com/questions/1460420/openjdk-8-for-debian-10
Veuillez lire cet article itzgeek.com/how-tos/linux/debian/...