rpm का उपयोग करके सन जावा 6 और सन जावा 7 साइड-बाय-साइड लाइनक्स (फेडोरा 16) स्थापित करें


8

यह वही है जो मैं हासिल करना चाहूंगा, लेकिन मैं असफल रहा हूं (मैं लिनक्स में नौसिखिया हूं)।

मेरे पास एक फेडोरा 16 बॉक्स (64 बिट) है और इस समय के लिए ओर्कल जावा (जावा 6 और जावा 7 के कई संस्करण) स्थापित करना चाहूंगा। मैं rpm सॉफ्टवेयर का उपयोग करके जावा को स्थापित करने की कोशिश कर रहा हूं और मैं उन दोनों को स्थापित करना चाहूंगा /opt

मैंने Oracle साइट से आवश्यक पैकेज डाउनलोड किए:

jdk-6u30-linux-x64-rpm.bin
jdk-7u2-linux-x64.rpm

और .binचल रहे फ़ाइल के अंदर से आरपीएम पैकेज निकाला

./jdk-6u30-linux-x64-rpm.bin -x

निम्नलिखित स्थिति प्राप्त करना:

jdk-6u30-linux-amd64.rpm
jdk-7u2-linux-x64.rpm

फिर मैंने अंदर देखा jdk-6u30-linux-amd64.rpm :

rpm -qpl ~/Downloads/jdk-7u2-linux-x64.rpm

और प्राप्त किया कि java 6 में अपनी फ़ाइलें स्थापित करेगा:

/etc                   (some files)
/usr/java/jdk1.6.0\_30 (the majority of the files)

इसी तरह से जावा 7 में स्थापित होगा:

/etc
/usr/java/jdk1.7.0\_02

क्योंकि मैं आरपीएम रिलोकेशन/opt का उपयोग करके इंस्टॉल करने का प्रयास करना चाहता हूं । दोनों पैकेज rpm-relocatable लग रहे हैं, वास्तव में:

rpm -qpi ~/Downloads/jdk-6u30-linux-amd64.rpm | grep -i reloc

परिणाम के रूप में देता है

Relocations : /usr/java

तथा

rpm -qpi ~/Downloads/jdk-7u2-linux-x64.rpm | grep -i reloc

परिणाम के रूप में देता है

Relocations : /usr/java

1 प्रयास करें (जावा 6 स्थापित करें और फिर जावा 7)

sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-6u30-linux-amd64.rpm

यह लगभग आसानी से चलता है क्योंकि आरपीएम कहता है

ln: failed to create symbolic link '/usr/java/jdk1.6.0\_30': No such file or directory`

rpm -q jdk

कहते हैं

jdk-1.6.0\_30-fcs.x86\_64_ ... OK!

फिर

sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-7u2-linux-x64.rpm

कहने में विफल रहता है:

file /etc/init.d/jexec from install of
jdk-2000:1.7.0\_02-fcs.x86\_64*     conflicts with file from package
jdk-2000:1.6.0\_30-fcs.x86\_64*

प्रयास 2 (जावा 7 स्थापित करें और फिर जावा 6)

अभी तक स्थापित जावा 6 मैं इसे पहले हटाऊंगा:

sudo rpm -e jdk*
sudo rpm -q jdk*

देता है:

package jdk is not installed* <- OK, uninstalled!

तो चलो जावा 7 स्थापित करने का प्रयास करें

sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-7u2-linux-x64.rpm*

सामान्य त्रुटि देता है:

ln: failed to create symbolic link '/usr/java/jdk1.7.0_02': No such file or directory`*

और अब जावा 6

sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-6u30-linux-amd64.rpm*

दो बातें कहने में असफल:

package jdk-2000:1.7.0\_02-fcs.x86\_64 (which is newer than jdk-2000:1.6.0\_30-fcs.x86\_64) is already installed*

तथा

file /etc/init.d/jexec from install of jdk-2000:1.6.0\_30-fcs.x86\_64
conflicts with file from package jdk-2000:1.7.0\_02-fcs.x86\_64*

मेरे प्रश्न हैं:

  1. प्रतीकात्मक लिंक निर्माण समस्या: क्या इसे ठीक करने का कोई तरीका है? स्थापना प्रक्रिया के बारे में पता नहीं लगता है कि मैंने स्थानांतरण तंत्र का उपयोग करने की कोशिश की, भले ही पैकेज स्थानांतरित करने योग्य हो (जहां तक ​​मुझे लगता है)
  2. क्या मुझे स्थापना प्रक्रिया में कुछ याद आ रहा है? क्या वास्तव में एक ही लिनक्स मशीन पर java 6 और java 7 दोनों होना संभव है? कैसे? मैं क्या गलत कर रहा हूं?
  3. क्या मेरा लक्ष्य हासिल करने का कोई और तरीका है?

पुनश्च: यह मेरा पहला प्रश्न है। मैं पहले से माफी मांगता हूं कि अगर कुछ गलत है (मेरी अंग्रेजी से प्रारूपण और कुछ भी) PS2: मैंने इस प्रश्न में टैग sun-java7-jdk को जोड़ने की कोशिश की, लेकिन मुझे इसे करने के लिए पर्याप्त प्रतिष्ठा नहीं है ... क्या यह टैग होना चाहिए बनाया जा सकता है?

जवाबों:


3

मुझे ओडोरा जावा और ओपनजेडके के साथ फेडोरा 16 पर एक साथ मौजूद होने में इसी तरह की समस्याएं थीं। मैंने अगर सच नहीं तो गलत है और यह पूरी तरह से काम किया।


5
क्या आप यहाँ लेख को संक्षेप में बता सकते हैं? हम चाहते हैं कि आप यहां लेखों को लिंक न करें।
साइमन शीहान

14

यह अधिक सरल तरीका है, जब आपको यह त्रुटि मिलती है:

package jdk.... (which is newer than jdk...) is already installed

--forceएकाधिक संस्करणों को स्थापित करने के लिए ध्वज का उपयोग करें ।

उदाहरण के लिए:

sudo rpm -ivh --force jdk-6u35-linux-amd64.rpm

2

jdk-7u2-linux-x64.rpmकी तुलना में नया है jdk-6u30-linux-amd64.rpmऔर RPM पैकेज प्रबंधन उपकरण नए रिलीज के साथ इसे अधिलेखित करने के लिए पर्याप्त स्मार्ट है।

सूरज जावा 6 और सूरज जावा 7 साइड-बाय-साइड स्थापित करने का सबसे आसान तरीका है कि Oracle से जावा टैरबॉल डाउनलोड करें और इसमें निकालें /opt


1

मुझे लगता है कि आरपीएम के बजाय जावा टारबॉल स्थापित करने के बारे में देजान सही हैं। यदि आप अपना सेट अप करते हैं JAVA_HOMEऔर PATHसही तरीके से उपयोग करते हैं, तो अतिरिक्त सेटअप की आवश्यकता नहीं होगी जो RPM इंस्टॉलेशन आपको देता है ( इस पेज को देखें कि वास्तव में jexec क्या करता है )।

एक समस्या यह हो सकती है कि JDK के कुछ संस्करण तारकोल ( *.tar.gz) उपलब्ध नहीं कराते हैं, लेकिन इसके बजाय आपको केवल a *-rpm.binऔर a देते हैं *.bin। इस मामले में *.binफ़ाइल वास्तव में सिर्फ एक सेल्फ एक्सट्रैक्टिंग आर्काइव है जिसका परिणाम सामान्य JAVA_HOME निर्देशिका में होता है जब आप इसे चलाते हैं।


0

फेडोरा, ओरेकल लिनक्स, रेड हैट एंटरप्राइज लिनक्स आदि पर जावा रनटाइम पर्यावरण स्थापित करने के लिए।

# yum install java-1.7.0-openjdk

फेडोरा, ओरेकल लिनक्स, रेड हैट एंटरप्राइज लिनक्स, आदि पर जावा का उपयोग करके विकासशील कार्यक्रमों के लिए पैकेज तैयार करना।

# yum install java-1.7.0-openjdk-devel

से http://namhuy.net/1195/how-to-install-oracle-java-jdk-7.html

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