जावा को स्वचालित रूप से स्थापित करना (साइलेंट विकल्प के साथ)


104

मैं apt-get के माध्यम से जावा को स्थापित करने की कोशिश कर रहा हूं।

मुझे जावा इंस्टालर का यह PPA मिला , हालाँकि, जब मैं रिपॉजिटरी जोड़ता हूं, अपडेट करता हूं और फिर apt-get install -y कमांड जारी करता हूं, जावा के लिए इंस्टॉलर खत्म हो जाता है और यह एक कॉन्फ़िगरेशन विकल्प को पॉप अप करता है।

जब से मैं अपने EC2 इंस्टेंसेस के लिए स्क्रिप्ट्स का निर्माण और परिनियोजन बना रहा हूँ, जो बिना जरूरत के सभी टैग किए गए पैकेजों को स्वचालित रूप से स्थापित कर देंगे, मैं बिना किसी हस्तक्षेप या कीबोर्ड के दबाव के इसे स्थापित करने में सक्षम होने की उम्मीद कर रहा हूं।

क्या कोई और विकल्प है?

जवाबों:


147

यदि OpenJDK / OpenJRE आपके लिए ठीक काम करता है, तो मैं @SAM द्वारा सुझाए गए अनुसार उस पैकेज का उपयोग करने की सलाह देता हूं। हालाँकि, कुछ सॉफ्टवेयर को वास्तव में ओरेकल के JDK / JRE की आवश्यकता होती है। यह जवाब है कि पीपीए से ओरेकल पैकेज के साथ लाइसेंस प्रश्न को कैसे चुप करें।

सबसे पहले, आइए जानें कि पूछे गए प्रश्न पैकेज की एक विशेषता है, जिसे डेवलपर द्वारा बनाया गया है।

oracle-java7-installer (7u7-0~webupd8~4) maverick; urgency=medium

  * removed cookie file use or else the PPA stays disabled
  * request the user to accept the Oracle license before installation
 -- Alin Andrei <webupd8@gmail.com>   Tue, 04 Sep 2012 14:18:29 +0200

जैसा कि @Nate ने उनके उत्तर में संकेत दिया है, एक मूक विकल्प होना चाहिए। और वहां है। इसे स्थापित करने से पहले ऐसा करें:

$ echo debconf shared/accepted-oracle-license-v1-1 select true | \
  sudo debconf-set-selections
$ echo debconf shared/accepted-oracle-license-v1-1 seen true | \
  sudo debconf-set-selections

यह debconf कुंजी का मान सही पर सेट करता है, लेकिन उपयोगकर्ता द्वारा देखे जाने के रूप में भी चिह्नित करता है। अब यह सवाल सामने नहीं आना चाहिए!

मुझे यह कैसे पता चला?

पैकेज के स्रोत में, मैंने इसे oracle-java7-installer.preinstफ़ाइल में नीचे ट्रैक किया :

license=oracle-license-v1-1

# snip

db_get shared/accepted-$license
if [ "$RET" = "true" ]; then
    echo "$license license has already been accepted" >&2
    exit 0
fi

जाहिर है, यह कुंजी का उपयोग करता है shared/accepted-oracle-license-v1-1कि क्या उपयोगकर्ता ने पहले ही लाइसेंस स्वीकार कर लिया है , यह जांचने के लिए debconf के मान का उपयोग करता है । यदि यह है, तो स्क्रिप्ट इनायत से बाहर निकल जाएगी और आपको सवाल पूछे बिना इंस्टॉलेशन जारी रखने की अनुमति देगी। हमें अब सिर्फ डीबकफ बताना चाहिए कि आप पहले से ही ओरेकल लाइसेंस 1.1 स्वीकार करते हैं।

कृपया debconf-set-selectionsअधिक विवरण के मैनपेज का संदर्भ लें , लेकिन यह आपके मुद्दे का उदाहरण है और अन्य पैकेजों के लिए समान है। डिबेंकफ के डेटाबेस में आपके सिस्टम में आपके पास और कौन सी चाबियां हैं? स्थापित करें debconf-utilsऔर करें

$ sudo debconf-get-selections

फिर अधिक कुंजी के लिए grep जिसे आपको अपने स्वचालित इंस्टॉलेशन में सेट करना होगा। यह उपयोग -yकरने की तुलना में अधिक लचीला है apt-getक्योंकि यह आपको स्थापना समय पर डिफ़ॉल्ट सेटिंग्स के अलावा अन्य सेट करने का अवसर देता है।


9
शानदार जवाब। :)
लेके

3
बहुत बढ़िया जवाब। एक शेल स्क्रिप्ट से भी काम करता है।
डेरेक


लाइसेंस स्वीकृति आदेशों की गूंज के लिए कोई उद्धरण आवश्यक नहीं है?
डेविड

1
@ डेविड इस मामले के लिए नहीं; यदि आप उन्हें जोड़ने का उत्पादन echoबिल्कुल वैसा ही होगा।
gertvdijk

55

WebUpd8 टीम के पीपीए का उपयोग करके साइलेंट जावा 6/7/8/9 स्थापित करें

sudo apt-get install -y python-software-properties debconf-utils
sudo add-apt-repository -y ppa:webupd8team/java
sudo apt-get update
echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | sudo debconf-set-selections
sudo apt-get install -y oracle-java8-installer

@gertvdijk उत्तर ने मेरे साथ Ubuntu 14.04 & 14.10 पर काम नहीं किया


1
16.04 पर महान काम करता है
न्यूमैटिक्स

यह अब काम नहीं कर रहा है
अहमद मुस्तफा

@AhmedMostafa क्या आप दूसरों को यह बताने दे सकते हैं कि आपने यह कहाँ किया है।
राहुल ठाकुर

1
के लिए oracle-java9-installerभी काम करता है।
कोहनी रॉबर्ट

1
यह काम google / cloud-sdk आधारित छवि के साथ परिपूर्ण है
Xin मेंग

13

@Gertvdijk उत्तर का समर्थन मूल ब्लॉग पोस्ट में Webupd8 के PPA के बारे में वर्णन है ।

अपडेट 2: इंस्टॉलर को अब इंस्टालेशन शुरू होने से पहले आपको ओरेकल लाइसेंस स्वीकार करना होगा। यह केवल एक बार आवश्यक है। यदि किसी कारण से आपको स्वचालित होने के लिए इंस्टॉलेशन की आवश्यकता है, तो आप ओरेकल लाइसेंस को स्वचालित रूप से स्वीकार करने के लिए निम्न कमांड चला सकते हैं:

sudo echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | \
sudo /usr/bin/debconf-set-selections

यही कारण है कि मैजिक की लाइन जो मुझे ओरेकल जावा की मेरी मूक स्थापना के लिए जरूरी थी - धन्यवाद @ हसाम
फैंटमव्हेल २६'१४ '२४:

आपका स्वागत है @Phantomwhale
ऐली

क्या मैं गलत हूं, या आपके उत्तर में एक लापता / अतिरिक्त "` "चरित्र है?
डेविड

11

मैंने docker ubuntu16.04LTS का उपयोग करते हुए मेरे लिए निम्नलिखित वाक्यों को सत्यापित किया।

RUN apt-get install -y software-properties-common
RUN add-apt-repository ppa:webupd8team/java && apt-get update

RUN echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections
RUN echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 seen true" | debconf-set-selections

RUN apt-get install -y oracle-java8-installer

मैंने इसकी कोशिश की और यह काम नहीं कर रहा है।
अहमद मोस्तफा

कुबंटु 18.04 पर डॉक-सी सी 18.05 पर मेरे लिए काम करने की पुष्टि: डी एक i386/ubuntu:18.04कंटेनर में स्थापित करना ।
बीपडॉग

2

एक मूक जावा स्थापित के लिए आप ओपन-जेडीके आज़मा सकते हैं:

sudo apt-get install -y openjdk-7-jdk

इसके अलावा अधिक खुले jdk संकुल / एक्सटेंशन के लिए यह प्रयास करें ...

sudo apt-cache search openjdk


इस समाधान ने बहुत काम किया। sudo apt-get install -y openjdk-7-jdk
Layke


0

यह डॉकरीफाइल का एक अंश है जिसका मैंने सफलतापूर्वक डेबियन आधारित डॉकटर चित्र बनाने में उपयोग किया है:

( संदर्भ )

RUN apt-get update \
    && apt-get upgrade \
    && apt-get install -y gnupg

RUN echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee /etc/apt/sources.list.d/webupd8team-java.list
RUN echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
RUN apt-get update
RUN echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | sudo debconf-set-selections
RUN apt-get install -y oracle-java8-installer \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* \
    && R CMD javareconf
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.