Vendredi dernier, j'ai vu que j'avais 2 paquets retenus pour une raison quelconque lorsque j'ai exécuté apt-get upgrade
, j'ai donc naturellement fait ce que tout administrateur système inexpérimenté ferait et j'ai désinstallé les packages dans l'espoir de pouvoir simplement les réinstaller et le problème serait résolu.
Je ne savais pas, je venais d'aggraver la situation. Lorsque j'ai essayé de réinstaller openjdk-8-jre-headless
, J'ai obtenu ceci:
$ apt-get install openjdk-8-jre-headless
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
openjdk-8-jre-headless : Depends: ca-certificates-Java but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
J'ai essayé de mettre à niveau le package mentionné manuellement, mais en vain.
$ apt-get upgrade ca-certificates-Java
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... ca-certificates-Java is already the newest version.
Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
En regardant autour de moi, je n'ai vu nulle part une solution à cette erreur exacte.
J'utilise ElasticSearch sur le serveur, que j'ai redémarré, mais j'aurais dû m'attendre à ce qu'il ne démarre pas à ce stade. Alors maintenant, je suis sans Java et mes utilisateurs sont sans recherche. Que se passe-t-il et comment puis-je résoudre ce problème?
Cela a fonctionné pour moi:
apt install -t jessie-backports openjdk-8-jre-headless ca-certificates-Java
Vous devez d'abord ajouter jessie-backports
repo.
echo "deb http://http.debian.net/debian jessie-backports main" > /etc/apt/sources.list.d/jessie-backports.list
installer les commandes
Sudo apt-get update
Sudo apt-get install -t jessie-backports openjdk-8-jre-headless
passer à un nouveau Java
Sudo /usr/sbin/update-Java-alternatives -s Java-1.8.0-openjdk-AMD64
Référence: https://github.com/OpenTreeOfLife/germinator/wiki/Debian-upgrade-notes:-jessie-and-openjdk-8
J'ai eu ce problème sur Debian Buster, qui n'a pas non plus ce paquet. Puisqu'aucune des réponses sur cette page n'a fonctionné pour moi, et la réponse acceptée m'a conduit à ne autre réponse SE que je ne pouvais pas non plus travailler, je voulais juste poster ce qui a fonctionné pour moi sur Buster .
En suivant les instructions sur le site Web Debian , j'ai ajouté la ligne suivante à /etc/apt/sources.list
:
deb http://security.debian.org/debian-security stretch/updates main
J'ai alors pu Sudo apt update
et Sudo apt install openjdk-8-jre-headless
.