Mengapa OpenJDK 10 dikemas sebagai openjdk-11- *?

70

Sementara mencari untuk mengkompilasi OpenJDK dari sumber, versi Ketersediaan Umum terbaru ( OpenJDK 10.0.1 ) bersikeras OpenJDK 9 atau 10. JDK 11, bagaimanapun, tidak akan dirilis hingga September 2018 .

Namun, yang mengejutkan saya, ketika saya melakukan apt search openjdkhasilnya adalah:

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

Tidak ada OpenJDK 9 atau 10!

Dan tunggu, apakah itu OpenJDK 11? Mungkin rilis Beta? Tida ....

Jadi saya melihat apt show openjdk-11-jdk:

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

Mengapa OpenJDK 10 dikemas sebagai openjdk-11- * ??

tudor
sumber

Jawaban:

62

Ini karena paket-paket itu akan menjadi OpenJDK 11 ketika itu dirilis. Lihat posting milis ini :

Atas nama Tim Yayasan Ubuntu, saya meminta pengecualian SRU untuk OpenJDK. Rencana kami adalah merilis OpenJDK 10 sebagai JRE / JDK 1 default untuk Bionic, dan kemudian memindahkan JRE / JDK default menjadi main ke OpenJDK 11 pada bulan September / Oktober 2018 sebagai SRU.

= Rencana yang Diusulkan =

Bionic akan dirilis dengan OpenJDK 10 karena JRE / JDK default dan OpenJDK 11 akan menggantikannya setelah mencapai GA.

...

Jika kita akan beralih ke OpenJDK 11 di bionik setelah dirilis, kami ingin menghindari OpenJDK 8 sebagai JRE / JDK default di Bionic pada waktu rilis karena setiap delta antarmuka tambahan yang ada antara 8 dan 11 tidak hanya membuat arsip rusak, itu juga membuat konsumen eksternal JDK rusak. Sebagai perbandingan, delta antarmuka antara OpenJDK 10 dan OpenJDK 11 diharapkan cukup kecil, terutama dibandingkan dengan delta antara OpenJDK 8 dan OpenJDK 9 yang sudah kita ketahui besar. Karena itu kita harus merilis dengan OpenJDK 10 sebagai JDK default di 18,04, transisi ke OpenJDK 11 ketika dirilis.

Itu juga sebabnya paket sumber openjdk-11-*sebenarnya disebut openjdk-lts.


Laporan bug telah diajukan - silakan berlangganan (tapi jangan berkomentar kecuali Anda memiliki informasi baru untuk ditambahkan, yang tidak mungkin). Seorang pengembang Ubuntu, Jeremy Bicha, telah merespons:

Tujuannya adalah untuk meningkatkan openjdk-11 ke 11 di Ubuntu 18.04 LTS. Itu sebabnya dinamai seperti itu. Ini adalah perubahan besar dan akan membutuhkan waktu untuk persiapan. Tidak perlu meminta hal itu dilakukan karena itu akan dilakukan.

Ubuntu 18.04 LTS dirilis beberapa bulan sebelum OpenJDK 11 dirilis sehingga tidak mungkin untuk menyediakan OpenJDK 11 sebelum Ubuntu 18.04 LTS dirilis.

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

Maaf untuk ketidaknyamanannya.

2018-11-24: Tolong jangan meminta ETA. Itu mengirimkan email kepada semua orang yang berlangganan bug ini dan tidak membantu memperbaiki bug tersebut.

Bug ini sedang dikerjakan. openjdk 11.0.1 diperbarui pada 18.10 dan ada pembaruan keamanan yang perlu ditangani dengan cepat di 18.04 LTS. 11.0.1 akan datang ke 18.04 LTS ketika sudah siap tetapi itu adalah perubahan besar yang membutuhkan koordinasi yang cermat.

2019-02-26: Bug ini sudah ditangani di bug 1814133 jadi saya menandainya sebagai duplikat. Diskusi lebih lanjut harus terjadi pada bug itu, bukan di sini.


Sebuah laporan bug baru telah dibuka untuk melacak semua perubahan yang perlu dibuat, dan ada banyak dari mereka - hitungan kasar 140. Kutipan dari laporan bug:

Transisi ini adalah pembaruan keamanan openjdk-lts dari openjdk-10 ke openjdk-11. Ini memperkenalkan masalah runtime dan FTBFS yang membutuhkan backports dari beberapa paket ke dalam saku keamanan juga.

Paket sedang dibangun di atas PPA di bawah https://launchpad.net/~openjdk-11-transition team. PPA semata-mata bergantung pada kantong keamanan dan dipisahkan secara bertahap.

Proses yang disepakati di antara yayasan dan tim keamanan adalah bahwa paket dalam PPA akan disalin biner ke dalam proposal bionik, diperiksa untuk masalah migrasi, dan - tidak ada masalah yang tertunda - disalin ke dalam keamanan bionik.

[...]

Beberapa paket mungkin juga perlu diperbarui di Cosmic, tetapi sebagai pengecualian yang akan dilakukan setelah transisi Bionic berhasil.

Dan pengembang Ubuntu lainnya, Tiago Stürmer Daitx mencatat :

[Kami] berencana untuk memperbarui aplikasi java yang dipengaruhi oleh transisi ini.

Untuk lebih spesifik, paket apa pun yang gagal berjalan dengan benar dengan openjdk-11 akan diselidiki dan merupakan kandidat untuk pembaruan. Pembaruan tidak selalu menyiratkan bahwa kami akan menggunakan versi terbaru: kami mungkin hanya menerapkan atau mendukung perubahan yang memungkinkannya bekerja di bawah openjdk-11.

Masih belum ada ETA saat ini. Beberapa paket telah diperbarui dan ditambahkan ke berbagai AKP yang dikelola oleh tim transisi, jadi jika Anda ingin membantu dalam pengujian, periksalah.


Pembaruan 17 April 2019:

Tampaknya perbaikan telah dirilis. Sekarang apt show openjdk-11-jdkmenunjukkan:

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

Dan output dari java -versionadalah:

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
sumber
6
Hanya dua hari? Itu keterlambatan yang sangat besar? Oo Ini adalah paket yang Canonical berkomitmen untuk mendukung selama bertahun-tahun. Saya yakin Anda dapat menggunakan langganan Canonical Anda untuk meminta rilis yang lebih cepat.
muru
5
Mengetahui tanggal rilis tidak mempersingkat waktu yang diperlukan untuk QA. Jika Anda sedang terburu-buru, PPA sudah diperbarui: launchpad.net/~openjdk-r/+archive/ubuntu/ppa Saya berharap paket akan membuat jalan mereka untuk diusulkan segera, dan dari sana ke pembaruan.
muru
10
Saya percaya komentar itu, tetapi saya tidak bisa melihat bagaimana mereka secara efektif mengklasifikasikan versi jdk adalah hal yang benar untuk dilakukan. Ini membingungkan dan saya akan mengatakannya, sedikit tidak jujur. Hanya memiliki versi untuk kita pilih, dan kita dapat melakukan kita sendiri update-alternatives. Terima kasih @muru atas jawaban Anda
Daniel Hinojosa
10
@muru sekarang hampir sebulan, masih bukan penundaan besar?
9ilsdx 9rvj 0lo
14
@ 9ilsdx9rvj0lo seseorang telah mengajukan laporan bug, awasi: bugs.launchpad.net/ubuntu/+source/openjdk-lts/+bug/1796027
muru
5

Lihat jawaban muru di atas,

tetapi untuk pekerjaan di sekitar Anda dapat menginstal openjdk 11 secara manual dan menambahkannya ke pembaruan-alternatif sehingga Anda dapat beralih versi, dan ketika paket resmi diperbarui Anda dapat beralih ke itu. lihat di bawah untuk melihat caranya:

$ 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

yang membongkar jdk di bawah /usr/lib/jvm/jdk-11.0.2

kemudian tambahkan ke sistem alternatif

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'

lihat di alternatif

$ 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

periksa berhasil

$ 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
sumber
Menjawab pertanyaan yang berbeda, tetapi karena Anda dengan baik merujuk pada jawaban muru dan itu berguna, saya akan menerimanya. +1 ;-) Selamat datang di AskUbuntu! :-)
tudor
terima kasih, jadi haruskah saya bertanya yang baru "bagaimana saya mengatasi ini? pertanyaan kemudian menjawabnya?
Karl
Secara teknis, ya. Jawaban Anda adalah jawaban untuk pertanyaan "Bagaimana cara saya menginstal versi Java (non-repositori) terbaru?" sedangkan pertanyaan saya lebih tentang politik distribusi dan kebingungan yang terjadi. Selain itu, Anda akan mencetak poin pertanyaan serta poin jawaban untuk pertanyaan itu dan akan lebih mudah untuk mencari. Kemudian menghubungkan pertanyaan itu dengan pertanyaan ini sebagai "terkait". :-)
tudor
waktu berikutnya :-) tepuk tangan
Karl
Sebuah jawaban yang begitu populer, itu menjadi artikel devzon : dzone.com/articles/... Tidak perlu menunggu. Sebaliknya
Kieveli