मैं Ubuntu 16.04 या उच्चतर पर Openjdk 7 कैसे स्थापित करूं?


120

मैं अपनी मुख्य प्रणाली को 16.04 में अपग्रेड करना चाहता हूं, लेकिन मैं उन परियोजनाओं पर काम करता हूं जिनके लिए ओपनजेडके 7 की आवश्यकता होती है।

जाहिरा तौर पर यह एक तुच्छ से उपलब्ध नहीं है apt-get install openjdk-7-jdk। केवल संस्करण 8 और 9 भंडार में सूचीबद्ध हैं।

क्या कोई मुझे निर्देश दे सकता है कि इसे कैसे स्थापित किया जाए?


किसी की सोच में कि आप अभी भी JDK 7 क्यों चाहते हैं, मैं उसी स्थिति में हूं क्योंकि मुझे लगता है कि neo4j 2.1.6 उबंटू 16.04 के साथ अच्छी तरह से नहीं खेल रहा है और केवल एक चीज जिसे मैं देख सकता हूं वह गलत है JDK।
श्रीधर सरनोबत

क्या आपको स्पष्ट रूप से अपने सिस्टम जेवीएम के रूप में ओपनजेक 7 की आवश्यकता है या क्या आपको सिर्फ जावा 7 रनटाइम की आवश्यकता है। आप Oracle अभिलेखागार से उत्तरार्द्ध डाउनलोड कर सकते हैं।
थोरबजोरन रावन एंडरसन

जवाबों:


146

सुरक्षा चेतावनी

नीचे उल्लिखित पीपीए में पैकेज सुरक्षा पैच के साथ जावा में अपडेट नहीं किए गए हैं। उत्पादन में उपयोग न करें; इसके बजाय वैकल्पिक उत्तर देखें।

लेखन के समय, OpenJDK 7 के लिए अंतिम अपलोड 7u95 संस्करण के साथ '2016-04-22' किया गया था और अभी भी 'नवीनतम' के रूप में उपलब्ध है, जहां Ubuntu 14.04 को 7u181 में अपडेट किया गया है ।


अद्यतन: इस तीसरे पक्ष ने सबसे पहले उत्तर दिया है कि आप 2018 में इस संप्रदाय के आधार पर सुरक्षा के अभाव में उपयोग करना चाहते हैं।

मुझे निम्नलिखित निर्देश मिले जिन्होंने मेरे लिए काम किया:

sudo add-apt-repository ppa:openjdk-r/ppa  
sudo apt-get update   
sudo apt-get install openjdk-7-jdk  

यह एक अतिरिक्त पैकेज रिपॉजिटरी के रूप में "OpenJDK अपलोड (प्रतिबंधित)" के लिए पीपीए को परिभाषित करता है, आपकी जानकारी को अपडेट करता है, और इसकी निर्भरता से पैकेज को स्थापित करता है (उस भंडार से)।


13
यदि आपने पहले गलती से ओपनजेडके -8 स्थापित किया है (जैसे मैंने किया) तो इस उत्तर का पालन करने के बाद आपको ऐसा करने की आवश्यकता होगी sudo update-java-alternativesताकि आप ओपनडॉक -7 को डिफ़ॉल्ट बना सकें।
रियान सैंडरसन

4
FYI करें: यह वर्तमान में 16.10 के लिए काम नहीं करता है
ऑप्टिक

19
-1 क्योंकि यह पीपीए पूरी तरह से पुराना है और कई महत्वपूर्ण सुरक्षा पैच की अनदेखी कर रहा है। पूरी तरह से अस्वीकार्य है यह स्थापित करने के लिए, imo।
gertvdijk

3
इसके अलावा 17.04 के लिए काम नहीं करता है।
कॉलिन हैरिंगटन

2
-1 के रूप में भी पीपीए का सुझाव दिया प्रतिबंधित है और इसे अद्यतित नहीं रखा गया है।
परिसीमन

65

22-Jul-2019 संपादित करें : यह उत्तर वर्तमान में काम नहीं करता है। नीचे संदर्भित JDK पैकेज अब डेबियन एक्सपेरिमेंटल पर उपलब्ध नहीं हैं। किसी भी स्थिति में, वे उबंटू ट्रस्टी के पैकेजों से पिछड़ गए, जिसमें हाल ही में सुरक्षा अद्यतन अधिक थे। कृपया अन्य उत्तर देखें जब तक इसे हल नहीं किया जा सकता (क्षमा करें, कोई ईटीए नहीं)।


ऐसा नहीं लगता है कि Openjdk-r / ppa का अनुरक्षक संस्करण 7u95-2.6.4-3 से परे Openjdk-7 पैकेज को अपडेट कर रहा होगा। उस पैकेज का विवरण "डेबियन जीएनयू / लिनक्स के लिए प्राथमिक पुरालेख में डेबियन प्रायोगिक से कॉपी किया गया" हमें इस बारे में एक सुराग देता है कि हालांकि, यह खुद को कैसे संभालना है।

विकल्प 1: मैनुअल इंस्टॉलेशन

  1. अपनी आर्किटेक्चर के लिए इच्छित पैकेज डाउनलोड करें:
    (अधिकांश उपयोगकर्ताओं के लिए, इसका मतलब है कि अगर 64 बिट या i386 32 बिट पर आधारित है तो amd64)

  2. (उपयोग करने का प्रयास) संकुल का उपयोग कर स्थापित करें dpkg:

    Ubuntu 17.10 और पहले:

    sudo dpkg -i openjdk-7-* libjpeg62-turbo* libfontconfig1* fontconfig-config*

    Ubuntu 18.04 और बाद में:

    sudo dpkg -i openjdk-7-* libjpeg62-turbo*
  3. से आउटपुट चेक करें dpkg। यदि निर्भरता की समस्याएं थीं - जिसकी संभावना है - आप निम्नलिखित देखेंगे (अपने आर्किटेक्चर के साथ amd64 के लिए प्रतिस्थापित):

    प्रसंस्करण के दौरान त्रुटियां सामने आई थीं:
    openjdk-7-JRE: amd64
    openjdk-7-JRE-नेतृत्वहीन: amd64
    openjdk-7-JDK: amd64

    यदि कोई निर्भरता के मुद्दे नहीं थे, तो महान, आप कर रहे हैं, # 4 पर जाएं। अन्यथा, यदि आपको कुछ निर्भरता के मुद्दों को हल करने की आवश्यकता है, तो इसके साथ संभाला जाता है:

    sudo apt install -f

    ध्यान दें, समाधान निर्भरता dpkgदेने के बाद फिर से चलाने की कोई आवश्यकता नहीं है apt। यह स्वचालित रूप से Openjdk संकुल की स्थापना को पूरा करेगा।

  4. जावा विकल्प को अपडेट करें। आप सभी स्थापित जावा संस्करणों को देख सकते हैं update-java-alternatives --list। OpenJDK Java 1.7 को सक्रिय करने के लिए:

    sudo update-java-alternatives -s java-1.7.0-openjdk-amd64

    आपको IcedTeaPlugin.soप्लगइन अनुपलब्ध होने के बारे में एक त्रुटि दिखाई दे सकती है । यह JDK के साथ काम करने वाले डेवलपर्स के लिए वास्तविक चिंता का विषय नहीं है।

  5. सत्यापित करें कि जावा काम कर रहा है:

    java -version

    जो कुछ इसी तरह का उत्पादन करना चाहिए:

    जावा संस्करण "1.7.0_161"
    ओपनजेडके रनटाइम एनवायरनमेंट (IcedTea 2.6.12) (7u161-2.6.12-1)
    OpenJDK 64-बिट सर्वर VM (24.161-b01, मिश्रित मोड का निर्माण)

विकल्प 2: स्वचालित स्थापना (अपडेट सहित apt)

पिनिंग का उपयोग ओपनजेडक-7-जेडडीके को स्थापित करने और अद्यतन करने के लिए किया जा सकता है और डेबियन रिपॉजिटरी से इसकी निर्भरताएं।

  1. एक पिनिंग फ़ाइल बनाएं जो aptकेवल उन पैकेजों पर विचार करने के लिए कहती है जो हमें ब्याज देते हैं (हम निश्चित रूप से हमारे पूरे उबंटू वितरण को डेबियन प्रयोगात्मक पैकेजों के साथ "उन्नत" नहीं चाहते हैं)।

    /etc/apt/preferences.d/debianनीचे दी गई सामग्री के साथ फ़ाइल बनाएँ । आप सुपर उपयोगकर्ता विशेषाधिकार होने चाहिए, इसलिए किसी एक का उपयोग sudo vim, sudo nano, gksudo gedit, आदि

    Package: *
    Pin: release o=Debian,n=experimental
    Pin-Priority: -1
    
    Package: *
    Pin: release o=Debian,n=sid
    Pin-Priority: -1
    
    Package: openjdk-7-jdk
    Pin: release o=Debian,n=experimental
    Pin-Priority: 500
    
    Package: openjdk-7-jre
    Pin: release o=Debian,n=experimental
    Pin-Priority: 500
    
    Package: openjdk-7-jre-headless
    Pin: release o=Debian,n=experimental
    Pin-Priority: 500
    
    Package: libjpeg62-turbo
    Pin: release o=Debian,n=sid
    Pin-Priority: 500

    Ubuntu 17.10 और इससे पहले के लिए, निम्नलिखित भी जोड़ें (और नीचे देखें नोट):

    Package: libfontconfig1
    Pin: release o=Debian,n=sid
    Pin-Priority: 500
    
    Package: fontconfig-config
    Pin: release o=Debian,n=sid
    Pin-Priority: 500
  2. डेबियन कीरिंग स्थापित करें:

    sudo apt install debian-archive-keyring

    नोट: जबकि यह डेबियन कीरिंग को जोड़ने का सबसे सरल तरीका है, यह आज तक नहीं हो सकता है। apt updateचरण 4 में चलने पर आउटपुट के लिए निम्न की तरह जांचें :

    डब्ल्यू: GPG त्रुटि: http://cdn-fastly.deb.debian.org/debian प्रयोगात्मक InRelease: निम्न हस्ताक्षर सत्यापित नहीं किए जा सकते क्योंकि सार्वजनिक कुंजी उपलब्ध नहीं है: NO_PUBKEY 8B48AD624694553 NO_PUBKEY 7638D0442B90D010
    ई: रिपॉजिटरी 'http://httpredir.debian.org/debian प्रयोगात्मक InRelease' पर हस्ताक्षर नहीं किए गए हैं।

    यदि आपको यह त्रुटि दिखाई देती है, तो मैन्युअल रूप से आवश्यक कुंजियाँ जोड़ें:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7638D0442B90D010

    चेतावनी संदेश में आपको दिखाई देने वाले पबियों से कहां 8B48AD6246925553और कैसे 7638D0442B90D010मेल खाना चाहिए।

  3. आवश्यक रिपॉजिटरी जोड़ें:

    sudo add-apt-repository 'deb http://httpredir.debian.org/debian experimental main'
    sudo add-apt-repository 'deb http://httpredir.debian.org/debian sid main'

    एक स्थिर डेबियन रिपॉजिटरी का उपयोग क्यों नहीं किया जाता है? आप डेबियन स्थिर के साथ असंतोषजनक निर्भरता में दौड़ेंगे। प्रयोगात्मक (Openjdk-7 के लिए) और फ़ुट (libjpeg62-टर्बो, libfontconfig1, और fontconfig-config) रिपॉजिटरी के लिए निर्भरता संस्करणों के साथ अधिक उदार हैं।

  4. aptकैश अपडेट करें (उम्मीद है कि डेबियन के पैकेज की सूची बड़ी होने के बाद इसमें थोड़ा समय लगेगा):

    sudo apt update
  5. Openjdk-7-jdk स्थापित करें:

    sudo apt install openjdk-7-jdk
  6. जावा विकल्प को अपडेट करें। आप सभी स्थापित जावा संस्करणों को देख सकते हैं update-java-alternatives --list। OpenJDK Java 1.7 को सक्रिय करने के लिए:

    sudo update-java-alternatives -s java-1.7.0-openjdk-amd64

    आपको IcedTeaPlugin.soप्लगइन अनुपलब्ध होने के बारे में एक त्रुटि दिखाई दे सकती है । यह JDK के साथ काम करने वाले डेवलपर्स के लिए वास्तविक चिंता का विषय नहीं है।

  7. सत्यापित करें कि जावा काम कर रहा है:

    java -version

    जो कुछ इसी तरह का उत्पादन करना चाहिए:

    जावा संस्करण "1.7.0_161"
    ओपनजेडके रनटाइम एनवायरनमेंट (IcedTea 2.6.12) (7u161-2.6.12-1)
    OpenJDK 64-बिट सर्वर VM (24.161-b01, मिश्रित मोड का निर्माण)

fontconfig के नोट्स

libfontconfig1और fontconfig-config2.12 या बाद में उबंटू 17.10 और उससे पहले के लिए अपग्रेड किया जाना चाहिए। डेबियन के अपडेट पैकेज में उबंटू के अनुकूलन नहीं हैं, इसलिए कुछ एप्लिकेशन इन पैकेजों के साथ बदसूरत फोंट प्रदर्शित करते हैं; जैसे चार्ल्स वेब डिबगिंग प्रॉक्सी। आपके द्वारा उपयोग किए जाने वाले कार्यक्रमों के आधार पर, आप इस समस्या से प्रभावित हो सकते हैं या नहीं भी।


दिलचस्प जवाब, कृपया इसे अपडेट करें यदि आपको इस पैकेज को स्वचालित रूप से अपडेट रखने का कोई तरीका मिल जाए।
जे। सेरा

मैंने सिर्फ ubuntu 16.04 पर jdk 7 स्थापित करने की कोशिश की और यह एकमात्र तरीका है जिससे मैं इसे काम में लाने में कामयाब रहा। धन्यवाद!
लिंक करें

2
@ J.Serra उत्तर स्वत: अद्यतन विधि के साथ संशोधित।
MDMower

एकदम सही उत्तर दिया गया है विशेष रूप से स्वचालित विधि की बहुत सराहना की जाती है! यह पता लगाने और लिखने के लिए समय निकालने के लिए धन्यवाद!
लगातार 8

1
स्वचालित विधि ने ज्यादातर मेरे लिए काम किया, लेकिन पूरी तरह से स्थायी नहीं है। मुझे /etc/apt/preferences.d/dian (libjpeg62-टर्बो के अतिरिक्त) में दो और पैकेज जोड़ने थे: libfontconfig1 और fontconfig-config
comodoro

11

आप Azul से एक OpenJDK 7 डाउनलोड कर सकते हैं जो आपकी आवश्यकताओं के अनुरूप हो सकता है। वे दोनों एक DEB (पैकेज सिस्टम के लिए) एक ज़िप वितरण है। मैंने केवल जिप वितरण के साथ काम किया है।

http://www.azul.com/downloads/zulu/zulu-linux/


यह मेरे लिए उबंटू के नवीनतम संस्करण के साथ काम करता है।
रज़्वोनोन

0

Ubuntu 7.04, Ubuntu 17.04 पर जावा 7 स्थापित करें

ओरेकल जावा को स्थापित करने की सिफारिश की गई है , क्योंकि इसमें ओपनजेडीके पर एक प्रदर्शन बढ़त है । उस कारण से मैं एक विकल्प पोस्ट करना चाहता हूं। यदि आप ओरेकल जावा को स्थापित करना चाहते हैं तो टर्मिनल में पीपीए से इसे स्थापित करने के लिए निम्नलिखित कमांड चलाएं।

  1. आवश्यक रिपॉजिटरी जोड़ें:

    sudo add-apt-repository ppa:webupd8team/java
  2. aptकैश अपडेट करें और oracle-java7 इंस्टॉल करें :

    sudo apt update
    sudo apt install java-common oracle-java7-installer

    स्थापना प्रक्रिया के दौरान आपको Oracle लाइसेंस समझौते को स्वीकार करना होगा । एक बार स्थापित होने के बाद हमें जावा पर्यावरण चर जैसे JAVA_HOME सेट करने की आवश्यकता है

  3. जावा वातावरण चर को ठीक करें।

    sudo apt install oracle-java7-set-default
    source /etc/profile
  4. सत्यापित करें कि जावा काम कर रहा है:

    java -version

    जो कुछ इसी तरह का उत्पादन करना चाहिए:

    java version "1.7.0_80"
    Java(TM) SE Runtime Environment (build 1.7.0_80-u80)
    Java HotSpot(TM) 64-Bit Server VM (build 25.131-u80, mixed mode)

3
Oracle इंस्टॉलर अब डाउनलोड करने के लिए कनेक्टिंग का काम नहीं करता है। HTTP अनुरोध भेजा गया, प्रतिक्रिया की प्रतीक्षा की जा रही है ... 404 नहीं मिला
स्वायत्तता

ओरेकल JDK के लिए, कंपनी JDK 7 के लिए सार्वजनिक समर्थन नहीं दे रही है (वे सशुल्क समर्थन की पेशकश करते हैं)। मुझे लगता है कि apt-getगैर-मौजूदा पृष्ठ से इंस्टॉलर को प्राप्त करने की कोशिश कर रहा है। - अगर आपको JDK 7 की जरूरत है, तो आप आर्काइव की वेबसाइट: oracle.com/technetwork/java/javase/downloads/…
Jaime

0

Oracle JDK विकल्प:

मैं रिपॉजिटरी के साथ प्रयास से बचना चाहता था क्योंकि मैं 7, 8 और 9 के बीच स्विच करता हूं, इसलिए मैंने ओपनजेडके के बजाय ओरेकल जेडडीके के साथ समाप्त किया। आधिकारिक साइट से डाउनलोड किया गया । मुझे यकीन नहीं है कि नवीनतम बिल्ड 80 में ओपनजेडीके के 161 के निर्माण के समान सुधार शामिल हैं। लेकिन मेरे पास यह विकास के लिए है, इसलिए मेरे लिए इसका कोई मतलब नहीं है।

फिर आपको $JAVA_HOMEवातावरण में सेट करने की आवश्यकता है ताकि विभिन्न स्क्रिप्ट सही JDK (जैसे मावेन, जेबॉस आदि) उठा सकें।

पूर्णता के लिए, JDK संस्करण 7 EOL'ed था, यहां तक ​​कि JDK 8 सार्वजनिक समर्थन को सितंबर 2017 से समाप्त किया जा रहा है और सितंबर 2018 के बाद कोई सार्वजनिक अपडेट नहीं मिलेगा।


0

कंटेनरों का उपयोग करें

यह उबंटू <outdated>पर हटाए गए सॉफ़्टवेयर को चलाने के लिए एक सार्वभौमिक रूप से मान्य उत्तर है <current>: अपने एप्लिकेशन को कंटेनरीकृत करें

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

यह दूसरे तरीके से भी काम करता है; अपने वर्तमान में चल रहे Ubuntu पर एक नए या अन्य लिनक्स वितरण पर सॉफ़्टवेयर आज़माएं।

Ubuntu 14.04 का उपयोग करके जावा 7 के लिए उदाहरण

  1. Docker स्थापित करें - Docker CE मुक्त संस्करण ठीक है। उदाहरण के लिए देखें https://docs.docker.com/install/linux/docker-ce/ubuntu/ या docker.ioहाल के उबंटू में भेजे गए पैकेज में पैकेज का उपयोग करें ।

  2. एक खाली फ़ोल्डर में, एक फ़ाइल बनाएँ Dockerfile:

    FROM ubuntu:trusty
    RUN apt-get update \
        && apt-get install -y \
            openjdk-7-jdk \
        && rm -rf /var/lib/apt/lists/*
    
    ENTRYPOINT ["/usr/bin/java"]

    यदि आपको आवश्यकता है तो उस कमांड में और पैकेज जोड़ें।

  3. उस फ़ोल्डर में, चलाएँ:

    docker build -t gertvdijk/java7 .
  4. उस जावा 7 छवि का उपयोग करके एकल-उपयोग-कंटेनर के अंदर एक कमांड चलाएँ:

    जैसे java -version:

    docker run --rm -it gertvdijk/java7 -version

    आउटपुट:

    java version "1.7.0_181"
    OpenJDK Runtime Environment (IcedTea 2.6.14) (7u181-2.6.14-0ubuntu0.1)
    OpenJDK 64-Bit Server VM (build 24.181-b01, mixed mode)
  5. वैकल्पिक रूप से, सुविधा के लिए एक आवरण बनाएं।

    • /usr/local/bin/java7-in-dockerसामग्री के साथ एक फ़ाइल बनाएँ :

      #!/usr/bin/env sh -e
      
      DOCKER_IMAGE=gertvdijk/java7
      PWD="$(pwd)"
      
      exec docker run \
        --rm -it \
        -v ${PWD}:${PWD} \
        -v "/etc/passwd:/etc/passwd:ro" \
        -v "/etc/group:/etc/group:ro" \
        --user "$(id -u):$(id -g)" \
        --workdir "${PWD}" \
        "${DOCKER_IMAGE}" \
        $@

      यह वर्तमान कार्यशील निर्देशिका को कंटेनर के अंदर उपलब्ध कराएगा - आपका संपूर्ण फ़ाइल सिस्टम नहीं, और यह आपके स्थानीय उपयोगकर्ता खाते को कंटेनर नेमस्पेस में प्रतिरूपित करेगा।

    • इसे निष्पादन योग्य के रूप में चिह्नित करें:

      sudo chmod +x /usr/local/bin/java7-in-docker
  6. इस तरह से अपने जावा 7 को पारदर्शी रूप से चलाएं:

    java7-in-docker -jar relative/path/to/some.jar

जब तक आप विस्तारित रखरखाव (2022 तक) का भुगतान नहीं करते तब तक 14.04 का रखरखाव नहीं किया जाता है।
थोरबजोरन रावन एंडरसन

-2

एक आसान तरीका है:

इन पंक्तियों को इसमें जोड़ें /etc/apt/sources.list:

deb http://security.ubuntu.com/ubuntu trusty main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu trusty-security main restricted universe multiverse

फिर apt को अपडेट करें और इंस्टॉल करें। आपको संभवतः tzdataपैकेज को डाउनग्रेड करने की आवश्यकता होगी ।

उसके बाद, मैं उन रिपॉजिटरी (जो अप्रत्याशित व्यवहार को जन्म दे सकता था) से पैकेज की स्थापना या अद्यतन को रोकने के लिए उन पंक्तियों और उपयुक्त अद्यतन को फिर से टिप्पणी करने की सिफारिश करूंगा ।

एक समस्या यह है कि आपको उन पैकेजों को रखने की आवश्यकता होती है ताकि वे आपके सिस्टम (विशेष रूप से tzdataपैकेज) को अपडेट करते समय हटाए न जाएं ।

नोट : इस विधि को अंतिम उपाय के रूप में उपयोग करें, किसी भी अन्य को पसंद करें जो आपको बिना मुद्दों के अपडेट करने की अनुमति देगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.