Dlaczego OpenJDK 10 jest pakowany jako openjdk-11- *?

70

Próbując skompilować OpenJDK ze źródła, najnowsza wersja General Availability ( OpenJDK 10.0.1 ) nalega na OpenJDK 9 lub 10. JDK 11 zostanie wydany dopiero we wrześniu 2018 roku .

Jednak ku mojemu zdziwieniu, kiedy to robię, apt search openjdkwynik jest następujący:

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

Brak OpenJDK 9 lub 10!

I czekaj, czy to OpenJDK 11? Może wersja beta? Nieee ....

Więc spojrzałem na apt show openjdk-11-jdk:

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

Dlaczego OpenJDK 10 został spakowany jako openjdk-11- * ??

Tudor
źródło

Odpowiedzi:

62

Wynika to z faktu, że po wydaniu pakiety te staną się OpenJDK 11. Zobacz ten post z listy mailingowej :

W imieniu zespołu Fundacji Ubuntu, proszę o wyjątek SRU dla OpenJDK. Naszym planem jest wydanie OpenJDK 10 jako domyślnego JRE / JDK 1 dla Bionic, a następnie przeniesienie domyślnego JRE / JDK jako głównego do OpenJDK 11 we wrześniu / październiku 2018 roku jako SRU.

= Proponowany plan =

Bionic zostanie wydany z OpenJDK 10 jako domyślny JRE / JDK, a OpenJDK 11 zastąpi go, gdy osiągnie GA.

...

Jeśli zamierzamy przejść na OpenJDK 11 w wersji bionic po wydaniu, chcemy uniknąć OpenJDK 8 jako domyślnego JRE / JDK w wersji Bionic w czasie wydania, ponieważ każda dodatkowa delta interfejsu, która istnieje między 8 a 11, nie tylko naraża archiwum na uszkodzenie, naraża również zewnętrznych konsumentów JDK na uszkodzenie. Dla porównania, oczekuje się, że delta interfejsu między OpenJDK 10 a OpenJDK 11 będzie dość mała, szczególnie w porównaniu z deltą między OpenJDK 8 i OpenJDK 9, o której wiemy, że jest duża. Dlatego powinniśmy wydać z OpenJDK 10 jako domyślnym JDK w 18.04, przechodząc na OpenJDK 11, kiedy zostanie wydany.

Właśnie dlatego openjdk-11-*tak naprawdę wywoływany jest pakiet źródłowy openjdk-lts.


Zgłoszony został raport o błędzie - zasubskrybuj go (ale nie komentuj, chyba że masz nowe informacje do dodania, co jest mało prawdopodobne). Jeremy Bicha, twórca Ubuntu, odpowiedział:

Zamiarem jest uaktualnienie openjdk-11 do 11 w Ubuntu 18.04 LTS. Właśnie dlatego tak się nazywa. Jest to poważna zmiana i przygotowanie jej zajmie trochę czasu. Nie ma potrzeby prosić o wykonanie tej czynności, ponieważ zostanie ona wykonana.

Ubuntu 18.04 LTS został wydany kilka miesięcy przed wydaniem OpenJDK 11, więc nie było możliwe udostępnienie OpenJDK 11 przed wydaniem Ubuntu 18.04 LTS.

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

Przepraszam za niedogodności.

2018-11-24: Proszę nie prosić o ETA. To wysyła wiadomość e-mail do wszystkich subskrybujących ten błąd i nie pomaga naprawić błędu.

Ten błąd jest w trakcie pracy. openjdk 11.0.1 został zaktualizowany w 18.10, a aktualizacja bezpieczeństwa wymagała szybkiej obsługi w 18.04 LTS. 11.0.1 przyjdzie na 18.04 LTS, kiedy będzie gotowy, ale jest to poważna zmiana, która wymaga starannej koordynacji.

2019-02-26: Ten błąd jest już obsługiwany w błędzie 1814133, więc zaznaczam go jako duplikat. Dalsza dyskusja powinna dotyczyć tego błędu zamiast tutaj.


Nowy raport o błędzie został otwarty do śledzenia wszystkich zmian, które muszą być wykonane, i istnieje wiele z nich - szorstka liczba 140. Fragmenty raportu o błędzie:

To przejście jest aktualizacją zabezpieczeń openjdk-lts z openjdk-10 na openjdk-11. Wprowadza to problemy związane ze środowiskiem wykonawczym i FTBFS, które również wymagają backportowania wielu pakietów do kieszeni bezpieczeństwa.

Pakiety są budowane na PPA w ramach zespołu https://launchpad.net/~openjdk-11-transition . Umowy PPA zależą wyłącznie od kieszeni bezpieczeństwa i są podzielone etapami.

Uzgodniony przez fundacje i zespół ds. Bezpieczeństwa proces polega na tym, że pakiety w PPA będą binarnie kopiowane do bionic-proponowanych, sprawdzane pod kątem problemów z migracją i - bez problemów w toku - kopiowane do bionic-security.

[...]

Kilka pakietów może również wymagać aktualizacji w Cosmic, ale jako wyjątek zostanie to zrobione po opracowaniu przejścia Bionic.

Kolejny twórca Ubuntu, Tiago Stürmer Daitx, zauważył :

[My] planujemy zaktualizować aplikacje Java, których dotyczy to przejście.

Mówiąc dokładniej, każdy pakiet, który nie działa poprawnie z openjdk-11, zostanie zbadany i będzie kandydatem do aktualizacji. Aktualizacja niekoniecznie oznacza, że ​​użyjemy najnowszej wersji: możemy po prostu zastosować lub cofnąć zmiany, które pozwolą im działać pod openjdk-11.

Nadal brak ETA. Kilka pakietów zostało zaktualizowanych i dodanych do różnych umów PPA utrzymywanych przez zespół przejściowy, więc jeśli chcesz pomóc w testowaniu, sprawdź je.


Aktualizacja 17 kwietnia 2019 r .:

Wygląda na to, że poprawka została wydana. Teraz apt show openjdk-11-jdkpokazuje:

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

A wynikiem java -versionjest:

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
źródło
6
Tylko dwa dni? To ogromne opóźnienie? Oo Jest to pakiet, który Canonical zobowiązuje się wspierać od lat. Jestem pewien, że możesz użyć subskrypcji Canonical, aby żądać szybszych wersji.
muru
5
Jednak znajomość daty premiery nie skraca czasu wymaganego na kontrolę jakości. Jeśli się spieszysz, PPA zostało zaktualizowane: launchpad.net/~openjdk-r/+archive/ubuntu/ppa Oczekuję, że pakiety wkrótce znajdą się w ofercie, a stamtąd do aktualizacji.
muru
10
Uważam ten komentarz, ale nie widzę, jak skutecznie przekłamują wersję jdk, co należy zrobić. Jest to mylące i powiem to trochę nieuczciwie. Po prostu wybierz wersje do wyboru, a my możemy zrobić własną update-alternatives. Dzięki @muru za odpowiedź
Daniel Hinojosa
10
@muru teraz jest już prawie miesiąc, wciąż nie jest duże opóźnienie?
9ilsdx 9rvj 0lo
14
@ 9ilsdx9rvj0lo ktoś złożył raport o błędzie, miej
muru
5

Zobacz odpowiedź Muru powyżej,

ale w celu obejścia problemu możesz ręcznie zainstalować openjdk 11 i dodać go do alternatywnych aktualizacji, abyś mógł przełączać wersje, a kiedy oficjalny pakiet zostanie zaktualizowany, możesz się na to przełączyć. zobacz poniżej, aby zobaczyć, jak:

$ 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

który rozpakowuje jdk pod /usr/lib/jvm/jdk-11.0.2

następnie dodaj go do systemu alternatyw

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'

zobacz to w alternatywach

$ 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

sprawdź, czy to działa

$ 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
źródło
Odpowiada na inne pytanie, ale skoro tak ładnie odniosłeś się do odpowiedzi Muru i jest ona przydatna, wezmę ją. +1 ;-) Witamy w AskUbuntu! :-)
tudor
dzięki, więc czy powinienem był zadać nowe pytanie „jak obejść to? Pytanie, a następnie odpowiedziałem?
Karl,
Technicznie tak. Twoja odpowiedź jest odpowiedzią na pytanie „Jak zainstalować najnowszą (nie repozytorium) wersję Java?” mając na uwadze, że moje pytanie dotyczy bardziej polityki dystrybucji i wynikającego z niej zamieszania. Ponadto uzyskałbyś punkty pytań, a także punkty odpowiedzi na to pytanie, a wyszukiwanie byłoby łatwiejsze. Następnie powiązało to pytanie z tym pytaniem jako „powiązane”. :-)
tudor
następnym razem :-) na zdrowie
Karl
Odpowiedź tak popularna, że ​​stała się artykułem devzone : dzone.com/articles/... Nie czekaj. Na odwrót
Kieveli