Java 11 für Debian 9 Stretch

Java Version 8 als auch 11 sind LTS-Versionen *1) bei denen Wert auf Stabilität statt “Featuritis” gelegt wird: also genau die richtige Basis für Java-Entwickler (JDK) – aber auch für Java-Benutzer (JRE). *2)

Bei Debian GNU/Linux ist Java 11 erst ab Version 10 “Buster” Standard; unter Debian 9 “Stretch” ist das noch good ole Java 8.

“Alle (halb-) Jahre wieder …”

Alle 6 Monate wird eine neue Version von Java veröffentlicht; nur alle 2 Jahre ist das eine – entsprechend ausgereifte – LTS. Das wäre nicht schlimm, aber: Auf Java.com gibt es OHNE Registrierung (Oracle Account) immer nur die neueste Version. Und 6 Monate nach Erscheinen der nächsten LTS gibt es auch diese nur noch nach Preisgabe meiner persönlichen Daten (Account)! Was nun?

OpenJDK – Die Basis von Java

Ein Glück, daß Java auf dem quelloffenen OpenJDK basiert und letzteres von Haus aus zu Debian (und seinen Abkömmlingen Ubuntu, LinuxMint, MX-Linux, usw.) gehört. So muß man unter Linux keinen Müll benutzen.

Also nix apt, sondern händisch installieren nach Download von der Homepage – und bei Sicherheitslücken händisch aktualisieren? Nein!
Aber wie bekomme ich das OpenJDK 11 von Debian 10 auf Debian 9, ohne auf bequemes Aktualisieren via Paket-Management (apt, aptitude, Synaptic) verzichten zu müssen? Die Lösung:

Backports!

Dazu gibt es unter Debian die sogenannten Backports (dt. “Rück-Portierungen”). Nach (einmaligem) Einbinden des entsprechenden Repositorys (hier: stretch-backports) sind viele / wichtige App-Versionen der aktuellen Distribution (“stable”, hier: 10) in der Vorversion (“oldstable”, hier: 9) via apt & Co verfügbar.

Am einfachsten installiert man Version OpenJDK 11.x zusätzlich zur Version 8.x und setzt Version 11.x als Standard. So ist sichergestellt, daß auch “angestaubte” Java-Programme sauber laufen können…

Die nötigen Kommandos könnte man in ein bash Skript packen, z. B.:

#!/bin/bash
###  -----------------------------------------------
###  OpenJDK-11  for Debian 9 "Stretch"
###              Copy me - I want to travel ;-)
###  -----------------------------------------------

SRV="http://ftp.debian.org/debian"
APTDIR="/etc/apt/sources.list.d"
BAKPRT="stretch-backports"
NEWJDK="openjdk-11-jdk"

# get default java version - normally Version 8.x
java -version

# add backports to apt repositories
# only run ONCE !
echo 'deb $SRV $BAKPRT main' | sudo tee $APTDIR/$BAKPRT.list

# re-read repos
sudo apt update 

# get OpenJDK-11
sudo apt install $NEWJDK

# set preferred jdk version
# select / type 0 (zero) for Version 11 "automatic "
sudo update-alternatives --config java
# call once more to switch to another installed java version

# get default java version - now Version 11.x
java -version

# perhaps some other updates ...
# sudo apt upgrade

Derzeit (06/2020) gibt es von einem Ubuntu-User auch ein PPA *3), über das man Oracle-Java nach-installieren kann. Mit dem nachfolgenden Code sollte das nicht nur unter Ubuntu 18.04 LTS “Bionic Beaver”, sondern auch bei Debian Stretch, Linux Mint, usw. klappen:

#!/bin/bash
#############################################################
# alternatively install Oracle Java 11 via Ubuntu-PPA
#  works for Ubuntu "Bionic" as well as for Debian "Stretch"
#############################################################
PPA="http://ppa.launchpad.net/linuxuprising/java"
DISTRO="ubuntu bionic"
KEYSRV="hkp://keyserver.ubuntu.com:80"
KEYID="73C3DB2A"
APTDIR="/etc/apt/sources.list.d"
echo "deb $PPA/$DISTRO main" | sudo tee $APTDIR/linuxuprising-java.list
sudo apt-key adv --keyserver $KEYSRV --recv-keys $KEYID
sudo apt update
sudo apt install oracle-java11-set-default
##############################################################

(linuxuprising-java.list gehört noch mit zum tee Kommando)

Fußnoten

  1. JDK = Java Development Kit (Entwicklungs-Umgebung)
    JRE = Java Runtime Environment (Laufzeit-Umgebung)
  2. LTS = Long Term Service bzw. Long Term Support, d.h.
    langzeit-unterstützte Version für den Unternehmenseinsatz.
    Debian ist grundsätzlich “LTS”; man könnte aber auch Entwicklerversionen installieren:
    – “Testing” (schon relativ ausgereifte Nachfolgeversion) oder
    – “unstable” (benannt nach dem Kaputtmacher “SID”)
  3. PPA = persönliches Repository auf Ubuntu “Launchpad”

This entry was posted in Linux and tagged , , , , , , , , , , , , , , , , , , , , . Bookmark the permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert