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 बन जाएंगे। इस मेलिंग सूची पोस्ट को देखें :

उबंटू फ़ाउंडेशन टीम की ओर से, मैं OpenJDK के लिए SRU अपवाद का अनुरोध कर रहा हूं। हमारी योजना OpenJDK 10 को बायोनिक के लिए डिफ़ॉल्ट JRE / JDK 1 के रूप में जारी करने की है , और उसके बाद डिफ़ॉल्ट JRE / JDK को मुख्य रूप से OpenJDK 11 में सितंबर / अक्टूबर 2018 में SRU के रूप में स्थानांतरित करें।

= प्रस्तावित योजना =

बायोनिक को OpenJDK 10 के साथ जारी किया जाएगा क्योंकि डिफ़ॉल्ट JRE / JDK और OpenJDK 11 इसे GA तक पहुंचने के बाद बदल देगा।

...

यदि हम एक बार रिलीज़ होने पर OpenJDK 11 को बायोनिक में स्विच करने जा रहे हैं, तो हम ओपन जेडीके 8 से बचना चाहते हैं क्योंकि रिलीज़ के समय बायोनिक में डिफ़ॉल्ट JRE / JDK क्योंकि 8 और 11 के बीच मौजूद कोई भी अतिरिक्त इंटरफ़ेस डेल्टा केवल टूटने के लिए संग्रह को उजागर करता है। यह जेडीके के बाहरी उपभोक्ताओं को टूटने के लिए भी उजागर करता है। इसकी तुलना में, OpenJDK 10 और OpenJDK 11 के बीच इंटरफ़ेस डेल्टा काफी छोटा होने की उम्मीद है, विशेष रूप से OpenJDK 8 और OpenJDK 9 के बीच के डेल्टा की तुलना में जो हम पहले से ही जानते हैं। इसलिए हमें OpenJDK 10 को 18.04 में डिफ़ॉल्ट JDK के रूप में रिलीज़ करना चाहिए, जब यह रिलीज़ होता है तो OpenJDK 11 में संक्रमण होता है।

यही कारण है कि स्रोत पैकेज openjdk-11-*वास्तव में कहा जाता है openjdk-lts


बग रिपोर्ट दर्ज की गई है - कृपया इसे सब्सक्राइब करें (लेकिन टिप्पणी न करें जब तक कि आपके पास जोड़ने के लिए नई जानकारी न हो, जिसकी संभावना नहीं है)। एक उबंटू देव, जेरेमी बिचा ने जवाब दिया:

उबंटू 18.04 एलटीएस में ओपनजेक -11 से 11 को अपग्रेड करने का इरादा है। इसलिए इसे इस तरह नाम दिया गया। यह एक बड़ा बदलाव है और इसे तैयार करने में कुछ समय लगेगा। इसे करने के लिए पूछने की आवश्यकता नहीं है क्योंकि यह किया जाएगा।

उबंटू 18.04 एलटीएस को ओपनजेडके 11 जारी होने से कई महीने पहले जारी किया गया था, इसलिए उबंटू 18.04 एलटीएस जारी होने से पहले ओपनजेडके 11 प्रदान करना संभव नहीं था।

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

असुविधा के लिए खेद है।

2018-11-24: कृपया ईटीए की मांग न करें। यह इस बग की सदस्यता वाले सभी को एक ईमेल भेजता है और बग को ठीक करने में मदद नहीं करता है।

इस बग पर काम किया जा रहा है। Openjdk 11.0.1 को 18.10 में अपडेट किया गया था और एक सुरक्षा अद्यतन था जिसे 18.04 एलटीएस में जल्दी से संभालने की आवश्यकता थी। 11.0.1 18.04 LTS पर आएगा जब यह तैयार हो जाएगा लेकिन यह एक बड़ा बदलाव है जिसे सावधानीपूर्वक समन्वय की आवश्यकता है।

2019-02-26: यह बग पहले से ही 1814133 बग में संभाला जा रहा है, इसलिए मैं इसे डुप्लिकेट चिह्नित कर रहा हूं। आगे की चर्चा यहाँ के बजाय उस बग पर होनी चाहिए।


एक नए बग रिपोर्ट सभी परिवर्तन करने की आवश्यकता है पर नज़र रखने के लिए खोल दिया गया है, और एक देखते हैं बहुत उनमें से - बग रिपोर्ट से 140 अंशः का एक मोटा गिनती:

यह संक्रमण ओपनडेक -10 से ओपनडेक -11 तक ओपनजेडके-एलटीएस का सुरक्षा अद्यतन है। यह रनटाइम और एफटीबीएफएस मुद्दों को पेश करता है जिसके लिए सुरक्षा पैकेज में कई पैकेजों के बैकपोर्ट की भी आवश्यकता होती है।

पैकेजों को https://launchpad.net/~openjdk-11-transition टीम के तहत PPA पर बनाया जा रहा है । पीपीए पूरी तरह से सुरक्षा जेब पर निर्भर करते हैं और चरणों में अलग हो जाते हैं।

नींव और सुरक्षा टीम के बीच सहमति प्रक्रिया यह है कि पीपीए में पैकेज बायोनिक-प्रस्तावित में कॉपी किए जाएंगे, माइग्रेशन मुद्दों के लिए जांच की जाएगी, और - लंबित कोई समस्या नहीं - बायोनिक-सुरक्षा में कॉपी की गई।

[...]

कुछ संकुल को कॉस्मिक में भी अद्यतन करने की आवश्यकता हो सकती है, लेकिन एक अपवाद के रूप में जो बायोनिक संक्रमण के बाद काम किया जाएगा।

और एक और उबंटू देव, टियागो स्टीमर डाइटएक्स ने नोट किया :

[हम] जावा ऐप्स को अपडेट करने की योजना बना रहे हैं जो इस संक्रमण से प्रभावित हैं।

अधिक विशिष्ट होने के लिए, कोई भी पैकेज जो ओपनजेडके -11 के साथ सही ढंग से चलने में विफल रहता है, उसकी जांच की जाएगी और एक अद्यतन के लिए एक उम्मीदवार होगा। अपडेट जरूरी नहीं है कि हम नवीनतम संस्करण का उपयोग करेंगे: हम बस लागू कर सकते हैं या बैकपैक परिवर्तन कर सकते हैं जो उन्हें ओपनजेडके -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 सालों से सपोर्ट कर रहा है। मुझे यकीन है कि आप तेजी से रिलीज की मांग के लिए अपने कैनोनिकल सदस्यता का उपयोग कर सकते हैं।
मूरू

5
हालांकि, रिलीज की तारीख जानना क्यूए के लिए आवश्यक समय को कम नहीं करता है, हालांकि। यदि आप जल्दबाजी में हैं, तो PPA अपडेट हो गया है: launchpad.net/~openjdk-r/+archive/ubuntu/ppa मुझे उम्मीद है कि संकुल शीघ्र ही प्रस्तावित करने के लिए अपना रास्ता बना लेगा , और वहाँ से अपडेट हो जाएगा।
मूरू

10
मेरा मानना ​​है कि टिप्पणी है, लेकिन मैं नहीं देख सकता कि कैसे उन्हें प्रभावी रूप से एक jdk संस्करण misclassifying एक सही काम करना है। यह भ्रामक है और मैं इसे थोड़ा बेईमान कहूंगा। बस हमारे पास से चुनने के लिए संस्करण हैं, और हम अपना खुद का कर सकते हैं update-alternatives। अपने जवाब के लिए धन्यवाद @muru
डैनियल Hinojosa

10
@ मूरू अब लगभग एक महीना हो गया है, अभी भी बड़ी देरी नहीं हुई है?
9ilsdx 9rvj 0lo

14
: @ 9ilsdx9rvj0lo किसी एक बग रिपोर्ट दायर किया है, उस पर नज़र रखने के bugs.launchpad.net/ubuntu/+source/openjdk-lts/+bug/1796027
muru

5

ऊपर देखिए मुरु का जवाब,

लेकिन आपके आस-पास के काम के लिए आप ओपनजेडके 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

जो /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)

एक अलग सवाल का जवाब देता है, लेकिन जब से आपने मुरू के जवाब को अच्छी तरह से संदर्भित किया है और यह उपयोगी है, मैं इसे ले जाऊंगा। +1 ;-) AskUbuntu में आपका स्वागत है! :-)
ट्यूडर

धन्यवाद, तो क्या मुझे नया पूछना चाहिए था "मैं इस के आसपास कैसे काम करता हूं? प्रश्न ने फिर इसका उत्तर दिया?
कार्ल

तकनीकी रूप से, हाँ। आपका उत्तर प्रश्न का उत्तर है "मैं जावा का नवीनतम (गैर-रिपॉजिटरी) संस्करण कैसे स्थापित करूं?" जबकि मेरा प्रश्न वितरण की राजनीति और उस भ्रम के बारे में अधिक है, जो व्याप्त है। इसके अलावा, आपने प्रश्न अंक के साथ-साथ उस प्रश्न के उत्तर बिंदु भी बनाए होंगे और उसे खोजना आसान होगा। फिर उस प्रश्न को "संबंधित" के रूप में इस प्रश्न से जोड़ा। :-)
ट्यूडर

अगली बार :-) चीयर्स
कार्ल

एक उत्तर इतना लोकप्रिय है, यह एक devzone लेख बन गया: dzone.com/articles/... कोई इंतजार। अन्य तरीके के आसपास
Kieveli
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.