OpenJDK 10がopenjdk-11- *としてパッケージされているのはなぜですか?


70

ソースからOpenJDKをコンパイルする際、最新の一般提供バージョン(OpenJDK 10.0.1)はOpenJDK 9または10を要求します。ただし、JDK 11は20189月までリリースされません。

しかし、驚いたことに、私がapt search openjdk結果を出すと:

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

OpenJDK 9または10はありません!

待ってください、それはOpenJDK 11ですか?たぶんベータリリース?いや...

だから私は見たapt show openjdk-11-jdk

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

OpenJDK 10がopenjdk-11- *としてパッケージ化されているのはなぜですか??

回答:


62

これは、それらのパッケージがリリースされるとOpenJDK 11になるためです。このメーリングリストの投稿を参照してください。

Ubuntu Foundationsチームを代表して、OpenJDKのSRU例外をリクエストしています。OpenJDK 10 をBionicのデフォルトJRE / JDK 1としてリリースし、メインのデフォルトJRE / JDKをSRUとして2018年9月/ 10月にOpenJDK 11に移動する計画です。

=提案された計画=

Bionicは、デフォルトのJRE / JDKとしてOpenJDK 10と共にリリースされ、OpenJDK 11はGAに到達すると置き換えられます。

...

リリース後、bionicでOpenJDK 11に切り替える場合、リリース時にBionicのデフォルトのJRE / JDKとしてOpenJDK 8を使用しないようにしたいのです。また、JDKの外部コンシューマーが破損にさらされます。それに比べて、OpenJDK 10とOpenJDK 11の間のインターフェースデルタは、特にすでにわかっているOpenJDK 8とOpenJDK 9の間のデルタと比較すると、かなり小さいと予想されます。したがって、18.04でOpenJDK 10をデフォルトJDKとしてリリースし、リリースされるとOpenJDK 11に移行する必要があります。

のソースパッケージopenjdk-11-*が実際に呼び出される理由でもありますopenjdk-lts


バグレポートが提出されました-それを購読してください(ただし、追加する新しい情報がない限りコメントしないでください)。Ubuntu開発者のJeremy Bichaが応答しました:

その目的は、Ubuntu 18.04 LTSでopenjdk-11を11にアップグレードすることです。それがそのように命名された理由です。これは大きな変更であり、準備に時間がかかります。それが行われるので、それを行うことを要求する必要はありません。

Ubuntu 18.04 LTSはOpenJDK 11がリリースされる数ヶ月前にリリースされたため、Ubuntu 18.04 LTSがリリースされる前にOpenJDK 11を提供することはできませんでした。

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

ご不便おかけしてすみません。

2018-11-24:ETAを要求しないでください。これは、このバグを購読している全員に電子メールを送信しますが、バグの修正には役立ちません。

このバグは現在修正中です。openjdk 11.0.1は18.10で更新され、18.04 LTSで迅速に処理する必要があるセキュリティ更新がありました。11.0.1は、準備ができたら18.04 LTSになりますが、注意深い調整が必要な大きな変更です。

2019-02-26:このバグはすでにバグ1814133で処理されているため、重複としてマークしています。ここではなく、そのバグについてさらに議論する必要があります。


行う必要があるすべての変更を追跡するために、新しいバグレポートが開かれました。多くの変更があります-おおよそ140です。バグレポートからの抜粋:

この移行は、openjdk-10からopenjdk-11へのopenjdk-ltsのセキュリティ更新です。これにより、ランタイムおよびFTBFSの問題が発生し、複数のパッケージのバックポートもセキュリティポケットに入れる必要があります。

パッケージは、https: //launchpad.net/~openjdk-11-transition チームの下のPPAでビルドされてい ます。PPAはセキュリティポケットのみに依存し、段階的に分離されています。

財団とセキュリティチームの間で合意されたプロセスは、PPAのパッケージをbionic-proposedにバイナリコピーし、移行の問題をチェックし、保留中の問題がない-bionic-securityにコピーすることです。

[...]

いくつかのパッケージもCosmicで更新する必要がありますが、例外として、バイオニックの移行が完了した後に行われます。

また、別のUbuntu 開発者であるTiagoStürmerDaitxは次のように指摘しました

[我々]は、この移行の影響を受けるJavaアプリを更新する予定です。

具体的には、openjdk-11で正しく実行できないパッケージが調査され、更新の候補となります。この更新は、必ずしも最新バージョンを使用することを意味するものではありません。単にopenjdk-11で動作するように変更を適用またはバックポートするだけです。

現時点ではまだETAはありません。かなりの数のパッケージが更新され、移行チームが管理するさまざまなPPAに追加されているため、テストを支援したい場合はチェックアウトしてください。


2019年4月17日更新:

修正がリリースされたようです。現在の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
たった2日?それは大きな遅れですか?OoこれはCanonicalが何年もサポートすることを約束しているパッケージです。Canonicalサブスクリプションを使用して、より速いリリースを要求できると確信しています。
ムル

5
ただし、リリース日を知っていても、QAに必要な時間は短縮されません。お急ぎの場合は、PPAが更新されます。launchpad.net / 〜openjdk-r / + archive / ubuntu / ppaパッケージがすぐに提案され、そこから更新されると期待しています。
ムール

10
私はコメントを信じていますが、jdkバージョンをどのように効果的に誤分類するのが正しいかはわかりません。紛らわしいので、少し不正直に言います。バージョンを選択するだけで、独自のを実行できますupdate-alternatives。あなたの答えをありがとう@muru
ダニエル・

10
@muru今ではほぼ1か月ですが、それでも大きな遅れはありませんか?
9ilsdx 9rvj 0lo

14
@ 9ilsdx9rvj0lo誰かがバグレポートを提出しました。それを監視
muru

5

上記のmuruの回答をご覧ください。

回避策として、openjdk 11を手動でインストールし、update-alternativesに追加してバージョンを切り替え、公式パッケージが更新されたら、それに切り替えることができます。以下を参照して方法を確認してください。

$ 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

/usr/lib/jvm/jdk-11.0.2の下にjdkを展開します

次に、代替システムに追加します

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)

別の質問に答えますが、muruの答えを非常によく参照しているので便利ですので、それを取り上げます。+1 ;-) AskUbuntuへようこそ!:-)
チューダー

おかげで、私は「どのように私はこの問題を回避ん新しいを求めている必要があります質問は、それに答え?
カール

技術的には、はい。あなたの答えは、「Javaの最新(非リポジトリ)バージョンをインストールするにはどうすればよいですか?」という質問に対する答えです。私の質問は、流通政策とその後の混乱についてです。さらに、その質問に対する回答ポイントだけでなく、質問ポイントも獲得しているため、検索が容易になります。次に、その質問を「関連」としてこの質問にリンクしました。:-)
チューダー

次回:-)乾杯
カール

とても人気のある回答で、devzoneの記事になりました:dzone.com/articles/…待ってください。他の方法
キベリ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.