Perché OpenJDK 10 è confezionato come openjdk-11- *?


70

Mentre si cerca di compilare OpenJDK dal sorgente, la più recente versione di disponibilità generale ( OpenJDK 10.0.1 ) insiste su OpenJDK 9 o 10. JDK 11, tuttavia, non dovrebbe essere rilasciato fino a settembre 2018 .

Tuttavia, con mia grande sorpresa, quando lo faccio apt search openjdkil risultato è:

...
openjdk-11-jdk - OpenJDK Development Kit (JDK)
...
openjdk-8-jdk - OpenJDK Development Kit (JDK)
...

No OpenJDK 9 o 10!

E aspetta, è OpenJDK 11? Forse una versione beta? Nooo ....

Quindi ho guardato apt show openjdk-11-jdk:

Package: openjdk-11-jdk
Version: 10.0.1+10-3ubuntu1
...

Perché OpenJDK 10 è stato impacchettato come openjdk-11- * ??

Risposte:


62

Questo perché quei pacchetti diventeranno OpenJDK 11 quando verrà rilasciato. Vedi questo post della mailing list :

A nome del team di Ubuntu Foundations, sto richiedendo un'eccezione SRU per OpenJDK. Il nostro piano è di rilasciare OpenJDK 10 come JRE / JDK 1 predefinito per Bionic, quindi spostare JRE / JDK predefinito su MainJDK 11 a settembre / ottobre 2018 come SRU.

= Piano proposto =

Bionic verrà rilasciato con OpenJDK 10 come JRE / JDK predefinito e OpenJDK 11 lo sostituirà una volta raggiunto GA.

...

Se stiamo per passare a OpenJDK 11 in bionic una volta rilasciato, vogliamo evitare OpenJDK 8 come JRE / JDK predefinito in Bionic al momento del rilascio perché qualsiasi delta di interfaccia aggiuntivo che esiste tra 8 e 11 non espone l'archivio alla rottura, espone anche i consumatori esterni del JDK alla rottura. In confronto, il delta dell'interfaccia tra OpenJDK 10 e OpenJDK 11 dovrebbe essere abbastanza piccolo, specialmente in confronto al delta tra OpenJDK 8 e OpenJDK 9 che già sappiamo essere grande. Dovremmo quindi rilasciare con OpenJDK 10 come JDK predefinito in 18.04, passando a OpenJDK 11 quando viene rilasciato.

Questo è anche il motivo per cui il pacchetto sorgente di openjdk-11-*viene effettivamente chiamato openjdk-lts.


È stata presentata una segnalazione di bug - per favore iscriviti ad essa (ma non commentare se non hai nuove informazioni da aggiungere, il che è improbabile). Un dev di Ubuntu, Jeremy Bicha, ha risposto:

L'intenzione è aggiornare openjdk-11 a 11 in Ubuntu 18.04 LTS. Ecco perché è stato chiamato in questo modo. È un grande cambiamento e ci vorrà del tempo per prepararsi. Non è necessario chiederlo perché sarà fatto.

Ubuntu 18.04 LTS è stato rilasciato diversi mesi prima che OpenJDK 11 fosse rilasciato, quindi non era possibile fornire OpenJDK 11 prima che Ubuntu 18.04 LTS fosse rilasciato.

https://lists.ubuntu.com/archives/ubuntu-release/2018-March/004364.html

Ci dispiace per l'inconvenienza.

24-11-2018: Per favore, non chiedere un ETA. Questo invia un'email a tutti coloro che si sono iscritti a questo errore e non aiuta a correggere l'errore.

Questo bug è in fase di elaborazione. openjdk 11.0.1 è stato aggiornato in 18.10 e c'era un aggiornamento di sicurezza che doveva essere gestito rapidamente in 18.04 LTS. 11.0.1 arriverà a 18.04 LTS quando sarà pronto, ma è un cambiamento importante che richiede un attento coordinamento.

26-02-2019: Questo errore è già stato gestito nell'errore 1814133, quindi lo segnerò come duplicato. Ulteriori discussioni dovrebbero avvenire su quel bug invece che qui.


È stato aperto un nuovo report di bug per tenere traccia di tutte le modifiche che devono essere apportate e ce ne sono molte , un numero approssimativo di 140. Estratti dal report di bug:

Questa transizione è un aggiornamento di sicurezza di openjdk-lts da openjdk-10 a openjdk-11. Ciò introduce problemi di runtime e FTBFS che richiedono anche backport di più pacchetti nella tasca di sicurezza.

I pacchetti vengono compilati su PPA sotto il team https://launchpad.net/~openjdk-11-transition . I PPA dipendono esclusivamente dalla tasca di sicurezza e sono separati in più fasi.

Il processo concordato tra le fondazioni e il team di sicurezza è che i pacchetti nei PPA saranno copiati binariamente in proposte bioniche, verificati problemi di migrazione e - nessun problema in sospeso - copiati in sicurezza bionica.

[...]

Potrebbe anche essere necessario aggiornare alcuni pacchetti in Cosmic, ma come eccezione che verrà eseguita dopo l'elaborazione della transizione Bionic.

E un altro sviluppatore di Ubuntu, Tiago Stürmer Daitx ha osservato :

[Stiamo programmando di aggiornare le app Java interessate da questa transizione.

Per essere più specifici, verrà esaminato qualsiasi pacchetto che non funziona correttamente con openjdk-11 ed è un candidato per un aggiornamento. L'aggiornamento non implica necessariamente che useremo la versione più recente: potremmo semplicemente applicare o eseguire il backport delle modifiche che consentono loro di funzionare con openjdk-11.

Ancora nessun ETA al momento. Molti pacchetti sono stati aggiornati e aggiunti ai vari PPA gestiti dal team di transizione, quindi se desideri aiutare con i test, dai un'occhiata.


Aggiornamento 17 aprile 2019:

Sembra che la correzione sia stata rilasciata. Ora apt show openjdk-11-jdkmostra:

Package: openjdk-11-jdk
Version: 11.0.2+9-3ubuntu1~18.04.3

E l'output di java -versionè:

openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment (build 11.0.2+9-Ubuntu-3ubuntu118.04.3)
OpenJDK 64-Bit Server VM (build 11.0.2+9-Ubuntu-3ubuntu118.04.3, mixed mode, sharing)

6
Solo due giorni? È un ritardo enorme? Oo Questo è un pacchetto che Canonical si impegna a supportare da anni. Sono sicuro che puoi utilizzare il tuo abbonamento Canonical per richiedere versioni più veloci.
muru,

5
Tuttavia, conoscere la data di rilascio non riduce il tempo necessario per il QA. Se hai fretta, il PPA è stato aggiornato: launchpad.net/~openjdk-r/+archive/ubuntu/ppa Mi aspetto che i pacchetti si facciano strada tra breve, e da lì agli aggiornamenti.
muru,

10
Credo al commento, ma non riesco a capire come siano effettivamente classificate erroneamente una versione jdk è una cosa giusta da fare. È confuso e lo dirò, un po 'disonesto. Abbiamo solo le versioni tra cui scegliere e possiamo fare le nostre update-alternatives. Grazie @muru per la tua risposta
Daniel Hinojosa,

10
@muru ora è quasi un mese, non è ancora un grande ritardo?
9ilsdx 9rvj 0lo

14
@ 9ilsdx9rvj0lo qualcuno ha presentato una segnalazione di bug, tenetela d'occhio: bugs.launchpad.net/ubuntu/+source/openjdk-lts/+bug/1796027
muru

5

Vedi la risposta di Muru sopra,

ma per risolvere il problema puoi installare openjdk 11 manualmente e aggiungerlo alle alternative di aggiornamento in modo da poter cambiare versione e quando il pacchetto ufficiale viene aggiornato puoi passare a quello. vedi sotto per vedere come:

$ wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz -O /tmp/openjdk-11.0.2_linux-x64_bin.tar.gz

$ sudo tar xfvz /tmp/openjdk-11.0.2_linux-x64_bin.tar.gz --directory /usr/lib/jvm

che decomprime il jdk in /usr/lib/jvm/jdk-11.0.2

quindi aggiungerlo al sistema delle alternative

sudo sh -c 'for bin in /usr/lib/jvm/jdk-11.0.2/bin/*; do update-alternatives --install /usr/bin/$(basename $bin) $(basename $bin) $bin 100; done'

sudo sh -c 'for bin in /usr/lib/jvm/jdk-11.0.2/bin/*; do update-alternatives --set $(basename $bin) $bin; done'

vederlo nelle alternative

$ sudo update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
* 3            /usr/lib/jvm/jdk-11.0.2/bin/java                 100       manual mode

Press <enter> to keep the current choice[*], or type selection number: 3

controlla che funzioni

$ java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

Risponde a una domanda diversa, ma dal momento che hai così ben fatto riferimento alla risposta di Muru ed è utile, la prenderò. +1 ;-) Benvenuto in AskUbuntu! :-)
martedì

grazie, quindi avrei dovuto chiedere al nuovo "come posso aggirare questo? domanda poi ha risposto?
Karl

Tecnicamente si. La tua risposta è una risposta alla domanda "Come posso installare l'ultima versione (non repository) di Java?" mentre la mia domanda riguarda più la politica di distribuzione e la confusione che ne è derivata. Inoltre, avresti ottenuto punti di domanda e punti di risposta per quella domanda e sarebbe stato più facile cercare. Quindi ha collegato quella domanda a questa domanda come "correlata". :-)
martedì

la prossima volta :-) evviva
Karl

Una risposta così popolare, è diventato un articolo devzone : dzone.com/articles/… No wait. Al contrario
Kieveli il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.