¿Por qué OpenJDK 10 está empaquetado como openjdk-11- *?

70

Mientras busca compilar OpenJDK desde el origen, la versión más reciente de Disponibilidad general ( OpenJDK 10.0.1 ) insiste en OpenJDK 9 o 10. Sin embargo, JDK 11 no se lanzará hasta septiembre de 2018 .

Sin embargo, para mi sorpresa, cuando hago apt search openjdkel resultado es:

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

¡No OpenJDK 9 o 10!

Y espera, ¿eso es OpenJDK 11? Tal vez una versión Beta? Nooo ....

Entonces miré apt show openjdk-11-jdk:

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

¿Por qué se ha empaquetado OpenJDK 10 como openjdk-11- * ??

tudor
fuente

Respuestas:

62

Esto se debe a que esos paquetes se convertirán en OpenJDK 11 cuando se lance. Ver esta publicación de la lista de correo :

En nombre del equipo de Ubuntu Foundations, solicito una excepción SRU para OpenJDK. Nuestro plan es lanzar OpenJDK 10 como el JRE / JDK 1 predeterminado para Bionic, y luego mover el JRE / JDK predeterminado en general a OpenJDK 11 en septiembre / octubre de 2018 como una SRU.

= Plan propuesto =

Bionic se lanzará con OpenJDK 10 como JRE / JDK predeterminado y OpenJDK 11 lo reemplazará una vez que llegue a GA.

...

Si vamos a cambiar a OpenJDK 11 en bionic una vez lanzado, queremos evitar OpenJDK 8 como el JRE / JDK predeterminado en Bionic en el momento del lanzamiento porque cualquier interfaz adicional delta que exista entre 8 y 11 no solo expone el archivo a la rotura, También expone a los consumidores externos del JDK a la rotura. En comparación, se espera que el delta de interfaz entre OpenJDK 10 y OpenJDK 11 sea bastante pequeño, especialmente en comparación con el delta entre OpenJDK 8 y OpenJDK 9 que ya sabemos que es grande. Por lo tanto, deberíamos lanzar con OpenJDK 10 como el JDK predeterminado en 18.04, haciendo la transición a OpenJDK 11 cuando se lance.

Por eso también openjdk-11-*se llama el paquete fuente de openjdk-lts.


Se ha presentado un informe de error ; suscríbase (pero no comente a menos que tenga nueva información para agregar, lo cual es poco probable). Un desarrollador de Ubuntu, Jeremy Bicha, respondió:

La intención es actualizar openjdk-11 a 11 en Ubuntu 18.04 LTS. Por eso se llama así. Es un cambio importante y tomará algún tiempo prepararse. No es necesario pedir que se haga, ya que se hará.

Ubuntu 18.04 LTS se lanzó varios meses antes del lanzamiento de OpenJDK 11, por lo que no fue posible proporcionar OpenJDK 11 antes del lanzamiento de Ubuntu 18.04 LTS.

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

Lo siento por los inconvenientes ocasionados.

2018-11-24: No solicite una ETA. Eso envía un correo electrónico a todas las personas suscritas a este error y no ayuda a solucionarlo.

Se está trabajando en este error. openjdk 11.0.1 se actualizó en 18.10 y había una actualización de seguridad que debía manejarse rápidamente en 18.04 LTS. 11.0.1 llegará a 18.04 LTS cuando esté listo, pero es un cambio importante que necesita una coordinación cuidadosa.

2019-02-26: Este error ya se está manejando en el error 1814133, así que lo estoy marcando como un duplicado. Más discusión debería ocurrir sobre ese error en lugar de aquí.


Se ha abierto un nuevo informe de errores para rastrear todos los cambios que deben realizarse, y hay muchos de ellos, un recuento aproximado de 140. Extractos del informe de errores:

Esta transición es una actualización de seguridad de openjdk-lts de openjdk-10 a openjdk-11. Esto introduce problemas de tiempo de ejecución y FTBFS que también requieren backports de múltiples paquetes en el bolsillo de seguridad.

Los paquetes se están construyendo en PPA bajo el https://launchpad.net/~openjdk-11-transition team. Los PPA dependen únicamente del bolsillo de seguridad y están separados por etapas.

El proceso acordado entre las fundaciones y el equipo de seguridad es que los paquetes en los PPA se copiarán binariamente en bionic-propuestas, se verificará si hay problemas de migración y, sin problemas pendientes, se copiarán en bionic-security.

[...]

Es posible que algunos paquetes también deban actualizarse en Cosmic, pero como excepción se realizará una vez que se haya resuelto la transición Biónica.

Y otro desarrollador de Ubuntu, Tiago Stürmer Daitx señaló :

[Estamos] planeando actualizar las aplicaciones de Java afectadas por esta transición.

Para ser más específico, cualquier paquete que no se ejecute correctamente con openjdk-11 será investigado y es candidato para una actualización. La actualización no implica necesariamente que usaremos la última versión: podríamos simplemente aplicar o realizar cambios de respaldo que les permitan funcionar bajo openjdk-11.

Todavía no hay ETA en la actualidad. Se han actualizado y agregado algunos paquetes a los diversos PPA mantenidos por el equipo de transición, por lo que si desea ayudar con las pruebas, revíselos.


Actualización 17 de abril de 2019:

Parece que la solución ha sido lanzada. Ahora apt show openjdk-11-jdkmuestra:

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

Y la salida de java -versiones:

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)
muru
fuente
66
¿Solo dos días? Eso es un gran retraso? Oo Este es un paquete que Canonical se compromete a apoyar durante años. Estoy seguro de que puede usar su suscripción Canonical para exigir lanzamientos más rápidos.
muru
55
Sin embargo, conocer la fecha de lanzamiento no acorta el tiempo requerido para el control de calidad. Si tiene prisa, el PPA se ha actualizado: launchpad.net/~openjdk-r/+archive/ubuntu/ppa Espero que los paquetes lleguen a la propuesta en breve, y desde allí a las actualizaciones.
muru
10
Creo el comentario, pero no puedo ver cómo clasificar de manera efectiva una versión jdk es lo correcto. Es confuso y lo diré, un poco deshonesto. Solo tenemos las versiones para que podamos elegir, y podemos hacer las nuestras update-alternatives. Gracias @muru por tu respuesta
Daniel Hinojosa
10
@muru ahora es casi un mes, ¿todavía no es un gran retraso?
9ilsdx 9rvj 0lo
14
@ 9ilsdx9rvj0lo alguien ha presentado un informe de error, vigílelo
muru
5

Ver la respuesta de muru arriba,

pero para evitarlo, puede instalar openjdk 11 manualmente y agregarlo a las alternativas de actualización para que pueda cambiar las versiones, y cuando se actualice el paquete oficial, puede cambiar a eso. ver abajo para ver cómo:

$ 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

que desempaqueta el jdk en /usr/lib/jvm/jdk-11.0.2

luego agréguelo al sistema de alternativas

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'

verlo en las alternativas

$ 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

comprueba que funciona

$ 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)
Karl
fuente
Responde a una pregunta diferente, pero como se refirió tan bien a la respuesta de muru y es útil, la tomaré. +1 ;-) ¡Bienvenido a AskUbuntu! :-)
Tudor
? gracias, por lo que debería he pedido al nuevo "¿Cómo se trabaja en torno a esta pregunta entonces contestó?
Karl
Técnicamente sí. Su respuesta es una respuesta a la pregunta "¿Cómo instalo la última versión (no de depósito) de Java?" mientras que mi pregunta es más sobre la política de distribución y la confusión que ha surgido. Además, habría obtenido puntos de preguntas y puntos de respuesta para esa pregunta y hubiera sido más fácil buscar. Luego vinculó esa pregunta a esta pregunta como "relacionada". :-)
Tudor
la próxima vez :-) aclamaciones
Karl
Una respuesta tan popular que se convirtió en un artículo de devzone : dzone.com/articles/… Sin esperas. Al revés
Kieveli