Чому OpenJDK 10 упакований як openjdk-11- *?


70

Не дивлячись на компіляцію OpenJDK з джерела, найновіша версія загальної доступності ( OpenJDK 10.0.1 ) наполягає на OpenJDK 9 або 10. JDK 11, однак, вона не повинна виходити до вересня 2018 року .

Однак, на мій подив, коли я роблю apt search openjdkрезультат:

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

Немає OpenJDK 9 або 10!

І чекайте, це OpenJDK 11? Можливо, бета-версія? Nooo ....

Тому я подивився на apt show openjdk-11-jdk:

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

Чому OpenJDK 10 було розфасовано як openjdk-11- * ??

Відповіді:


62

Це тому, що ці пакети стануть OpenJDK 11, коли це випущено. Дивіться цю публікацію зі списку розсилки :

Від імені Ubuntu Foundation Foundation я прошу виняток SRU для OpenJDK. Наш план - випустити OpenJDK 10 як JRE / JDK 1 за замовчуванням для Bionic, а потім перемістити стандартну JRE / JDK в основному до OpenJDK 11 у вересні / жовтні 2018 року як SRU.

= Пропонований план =

Bionic буде випущений разом з OpenJDK 10 як JRE / JDK за замовчуванням, а OpenJDK 11 замінить його, як тільки він досягне GA.

...

Якщо ми будемо переходити на OpenJDK 11 в bionic один раз випущений, ми хочемо уникати OpenJDK 8 як JRE / JDK за замовчуванням у Bionic під час випуску, оскільки будь-яка додаткова дельта інтерфейсу, що існує між 8 та 11, не тільки піддає архіву злому, він також піддає зовнішніх споживачів JDK злому. Для порівняння, дельта інтерфейсу між OpenJDK 10 та OpenJDK 11, як очікується, буде досить малою, особливо порівняно з дельтою між OpenJDK 8 та OpenJDK 9, про яку ми вже знаємо, є великою. Тому нам слід випустити OpenJDK 10 як JDK за замовчуванням у 18.04, переходячи до OpenJDK 11 після його випуску.

Ось чому openjdk-11-*насправді називається вихідний пакет openjdk-lts.


Звіт про помилку подано - будь ласка, підпишіться на нього (але не коментуйте, якщо у вас немає нової інформації, яку додати, що малоймовірно). Розробник Ubuntu, Джеремі Біча, відповів:

Наміром є оновлення openjdk-11 до 11 в Ubuntu 18.04 LTS. Ось чому його так і назвали. Це основна зміна і потребуватиме певного часу, щоб підготуватися. Не потрібно просити, щоб це було зроблено, оскільки це буде зроблено.

Ubuntu 18.04 LTS був випущений за кілька місяців до виходу OpenJDK 11, тому не вдалося надати OpenJDK 11 до виходу Ubuntu 18.04 LTS.

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

Вибачте за незручності.

2018-11-24: Будь ласка, не вимагайте ЗНО. Це надсилає електронне повідомлення всім, хто підписався на цю помилку, і не допомагає виправити помилку.

Ця помилка працює над. openjdk 11.0.1 було оновлено в 18.10, і там було оновлено безпеку, яку потрібно було швидко обробити в 18.04 LTS. 11.0.1 надійде до 18.04 LTS, коли він буде готовий, але це важлива зміна, яка потребує ретельної координації.

2019-02-26: Ця помилка вже обробляється у помилці 1814133, тому я позначаю її як дублікат. Подальше обговорення має відбуватися на цьому помилку замість цього.


Відкрито новий звіт про помилки для відстеження всіх змін, які потрібно внести, і їх дуже багато - приблизна кількість - 140. Витяги із звіту про помилку:

Цей перехід є оновленням безпеки openjdk-lts від openjdk-10 до openjdk-11. Це вводить проблеми виконання та FTBFS, що також вимагає повернення кількох пакетів до кишені безпеки.

Пакети будуються на PPA під командою https://launchpad.net/~openjdk-11-transition . PPA залежать виключно від кишені безпеки і розділені поетапно.

Погоджений процес між фондами та командою з питань безпеки полягає в тому, що пакети в PPA будуть двійковими, скопійованими у запропоновані біонічними, перевірені на предмет міграції, і - жодних проблем не буде - скопійовано у біонічну безпеку.

[...]

Кілька пакунків, можливо, також потрібно буде оновити в Cosmic, але як виняток, що буде зроблено після відпрацювання Bionic переходу.

І ще один розробник Ubuntu, Tiago Stürmer Daitx, зазначив :

[Ми] плануємо оновити програми java, на які впливає цей перехід.

Якщо конкретніше, будь-який пакет, який не працює правильно з openjdk-11, буде досліджений і є кандидатом на оновлення. Оновлення не обов'язково означає, що ми будемо використовувати останню версію: ми можемо просто застосувати або повернути зміни, що дозволяють їм працювати в режимі openjdk-11.

Наразі немає ЗНО на даний момент. До різних пакетів PPA, які підтримуються перехідною командою, було оновлено і додано декілька пакетів, тому, якщо ви хочете допомогти з тестуванням, перевірте їх.


Оновлення 17 квітня 2019 року:

Здається, виправлення було випущено. Зараз apt show openjdk-11-jdkпоказано:

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

І вихід 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
Лише два дні? Це величезна затримка? Oo Це пакет, який Canonical зобов'язується підтримувати роками. Я впевнений, що ви можете використовувати свою підписку на Canonical, щоб вимагати швидших версій.
муру

5
Знання дати виходу, однак, не скорочує часу, необхідного для забезпечення якості. Якщо ви поспішаєте, PPA було оновлено: launchpad.net/~openjdk-r/+archive/ubuntu/ppa Я очікую, що пакети незабаром пройдуть до запропонованих, а звідти до оновлень.
муру

10
Я вважаю, що коментар, але я не бачу, як вони ефективно неправильно класифікують версію jdk - це правильно зробити. Це заплутано, і я скажу це, трохи нечесно. Просто у нас є варіанти, які ми можемо вибрати, і ми можемо зробити своє update-alternatives. Дякую @muru за вашу відповідь
Daniel Hinojosa

10
@muru зараз майже місяць, все ще не велика затримка?
9ilsdx 9rvj 0lo

14
@ 9ilsdx9rvj0lo хтось подав звіт про помилку, слідкуйте за цим: bugs.launchpad.net/ubuntu/+source/openjdk-lts/+bug/1796027
muru

5

Дивіться відповідь Муру вище,

але для вирішення проблеми ви можете встановити openjdk 11 вручну та додати його до альтернатив оновлення, щоб ви могли перемикати версії, а коли оновлений офіційний пакет ви можете переключитися на це. дивіться нижче, щоб побачити, як:

$ 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

що розпаковує jdk під /usr/lib/jvm/jdk-11.0.2

потім додайте його до системи альтернатив

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'

побачити це в альтернативних варіантах

$ 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

перевірте це працює

$ 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)

Відповідає на інше запитання, але оскільки ви так чудово посилалися на відповідь Муру і це корисно, я візьму його. +1 ;-) Ласкаво просимо до AskUbuntu! :-)
тудор

спасибі, тому я повинен запитати нове "як мені це вирішити?", тоді відповів на нього?
Карл

Технічно так. Ваша відповідь - це відповідь на питання "Як встановити останню (нерепозиторна) версію Java?" тоді як моє питання стосується більше політики розподілу та виниклої плутанини. Крім того, ви б набрали бали запитань, а також пункти відповідей на це питання, і було б простіше шукати. Потім пов’язали це питання з цим питанням як "пов'язане". :-)
тудор

наступного разу :-) ура
Карл

Відповіддю настільки популярною стала стаття devzone : dzone.com/articles/… Не чекайте. Інший шлях
Kieveli
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.