वास्तव में `अद्यतन-विकल्प` क्या करता है?


99

कमांड का update-alternativesउपयोग किसके लिए किया जाता है?

इस उदाहरण को लें:

sudo update-alternatives --install /usr/bin/java java /usr/local/java/jre1.7.0_09/bin/java 1

यह क्या करता है? यह मार्ग में jdk को जोड़ने से कैसे अलग है?

मान लीजिए कि मैंने आज्ञा को चलाया है। मैं मूल स्थिति पर वापस कैसे लौटूंगा?


2
तुम भी उपयोग कर सकते हैं sudo update-alternatives --config javaऔर javacऔर javawsस्थापित संस्करणों के बीच चयन करने के लिए।
शयन

जवाबों:


73

यह /etc/alternativesइस उद्देश्य के लिए कार्यक्रम को इंगित करने के लिए लिंक को अपडेट करता है । बहुत सारे उदाहरण हैं, जैसे x-www-browser, editorआदि। जो आपकी वरीयता के ब्राउज़र या संपादक से लिंक होगा। कुछ स्क्रिप्ट या सिस्टम टूल आपको फ़ाइल को मैन्युअल रूप से संपादित करना चाहते हैं (जैसे कॉन्फ़िगरेशन संघर्ष dpkg) और वे आपको विकल्प के संपादक को देने के लिए विकल्पों पर गौर करेंगे। इसके लिए java, यह जावा रनटाइम वातावरण है - ओरेकल, ओपनजेआरई आदि।

लिंक /etc/alternativesकेवल प्रतीकात्मक लिंक हैं। आप उन्हें उदाहरण के लिए उपयोग करके देख सकते हैं

ls -l /etc/alternatives

इसके अलावा, नियमित /usr/binबायनेरिज़ भी सीमलिंक हैं। उदाहरण के लिए:

ls -l /usr/bin/java
  lrwxrwxrwx 1 root root 22 Aug 14 10:33 /usr/bin/java -> /etc/alternatives/java
ls -l /etc/alternatives/java
  lrwxrwxrwx 1 root root 46 Aug 14 10:33 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java

इसलिए, किसी PATHको संशोधित नहीं करना है। यह सिर्फ प्रतीकात्मक लिंक का उपयोग करता है।


इसलिए दूसरे शब्दों में, मैं एक ही आदेश में टाइप कर सकता हूं और यह मुझे विकल्पों के लिए संकेत देगा। यह एक सही रास्ता तय करने पर एकमात्र अतिरिक्त लाभ है। मुझे यह भी कहने दें कि मेरे पास जावा का एक अलग विक्रेता भी है। मैं दोनों अलग-अलग विक्रेताओं को इंगित करने के लिए जावा को कैसे अपडेट करूंगा?
डेवलपर Android

आप दोनों का वर्णन नहीं कर सकते जैसे आप वर्णन करते हैं। इसका पूरा उद्देश्य प्रविष्टि के कार्यान्वयन के लिए एक एकल सूचक है जैसा कि दिए गए उदाहरण में है। बिना सवाल के। और किसी भी उम्मीदवार को काम करना चाहिए - यह सिर्फ प्रशासक की प्राथमिकता होनी चाहिए। और फिर से: इसका कोई लेना-देना नहीं है PATH
gertvdijk

1
ठीक है। इससे चीजें साफ होती हैं। मुझे पता है कि मैं वापस रास्तों पर आ रहा हूं लेकिन मैं उनके बीच के अंतर को समझना चाहता हूं। एक पथ के मामले में, हमें स्पष्ट रूप से स्थान निर्दिष्ट करना होगा, लेकिन इस मामले में यह केवल लिंक को जोड़ता है ताकि जब हम जावा टाइप करें तो यह पहले खोज / आदि / विकल्प। या मैं यह धारणा बनाने में गलत हूं?
डेवलपर Android
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.