क्या सिस्टम पर सभी कॉन्फ़िगर करने योग्य `विकल्प` (समान आदेशों के लिए सहानुभूति) को सूचीबद्ध करने का एक तरीका है?


24

alternativesआदेश (पैकेज chkconfig) RHEL / फेडोरा पर सिमलिंक जो वैकल्पिक कार्यान्वयन से एक के लिए एक सामान्य नाम जोड़ने के प्रबंधन करता है। उदाहरण के लिए, mtaसेंडलिंक का समूह सेंडमेल और पोस्टफिक्स द्वारा प्रदान किया जा सकता है (अर्थात लागू करने के लिए sendmail):

alternatives --display mta

जबकि मैं --displayसहानुभूति का एक समूह हो सकता हूं , मुझे पहले इसके नाम का अनुमान लगाने की आवश्यकता है (यानी mta)।

क्या मैं आसानी से लेने के लिए सभी संभव कॉन्फ़िगर करने योग्य सिमिलिंक समूहों (जैसे mta) को सूचीबद्ध कर सकता हूं ?

कारण यह है कि मैं कभी-कभी कुछ समूह नामों को भूल जाता हूं।

जवाबों:


25

डेबियन पर (लेकिन फेडोरा या आरएचईएल नहीं), सभी "मास्टर वैकल्पिक नामों" की एक सूची देखने के लिए:

update-alternatives --get-selections

--get-selections सूची मास्टर वैकल्पिक नाम और उनकी स्थिति।

और सूचीबद्ध लोगों में से प्रत्येक के लिए, आप चला सकते हैं --list $ALTERNATIVE_NAME, जैसे

update-alternatives --list editor

--list name लिंक समूह के सभी लक्ष्य प्रदर्शित करें।

यदि आप अपने संबंधित समूहों में सभी विकल्पों की सूची देखना चाहते हैं, तो आप निम्नलिखित को fishशेल में चला सकते हैं :

for alternative in (update-alternatives --get-selections)
    echo $alternative 
    update-alternatives --list (echo $alternative | cut -d" " -f1)
    echo
end | pager

(Ba | z); श वाक्यविन्यास कुछ समान होना चाहिए।

विकल्प बदलने के लिए, भागो sudo update-alternatives --config $ALTERNATIVE_NAME


1
मेरी फेडोरा 12 update-alternativesके लिए एक सिमलिंक है alternatives: /usr/sbin/update-alternatives -> alternatives। तो, विकल्प --get-selectionsकुछ भी नहीं दिखाता है (उपयोग दिखाने में त्रुटि के साथ बाहर निकलें)।
uvsmtid

1
मैंने प्रश्न को ठीक से नहीं पढ़ा। माफ़ कीजिये। यह डेबियन के लिए है। मैं आप और मैं इस जवाब के साथ नहीं कर सकते हैं एक ही बात खोजने की कोशिश कर रहा था। मुझे आश्चर्य है कि क्या मुझे अपना उत्तर हटाना चाहिए?
kzh

आप पर निर्भर करता है। अगर आपको लगता है कि यह कुछ परिस्थितियों में सही है और किसी और के लिए उपयोगी हो सकता है, तो इसे छोड़ देना ही उचित होगा।
uvsmtid

16

सटीक उत्तर है:

ls /var/lib/alternatives

निर्देशिका मास्टर्स और दासों को एक साथ मिलाने वाले/etc/alternatives सभी सीमलिंक की फ्लैट लंबी सूची बनाए रखती है । दास सिमलिंक का उपयोग कमांड के साथ नहीं किया जा सकता है ।alternatives --display [symlink]

उसी समय निर्देशिका /var/lib/alternativesमें फ़ाइल नाम की छोटी सूची में प्रत्येक समूह के लिए स्थिति की जानकारी (मास्टर-दास संबंध सहित) शामिल है , जिसका सभी--display विकल्प के साथ सीधे उपयोग किया जा सकता है। उदाहरण के लिए /var/lib/alternatives/java:

alternatives --display java

4
उबंटू 12.04 पर, नहीं है /var/lib/alternatives, ऐसा लगता है /var/lib/dpkg/alternatives
हिबू

1
शानदार जवाब, धन्यवाद! इसके अलावा: डेबियन और आर्मबियन पर इसके /etc/alternativesबजाय/var/lib/alternatives
एलेक्सी

4

सबसे सरल उत्तर होगा ...

ls /etc/alternatives

1
यह हमेशा अधिक स्पष्ट होता है जब आप पहले से ही जवाब जानते हैं :)
16

यह मेरा पहला अनुमान भी था। लेकिन इसने मुझे संतुष्ट नहीं किया। यह सूची बहुत लंबी है जिसमें पूरी तरह से मास्टर और दास लिंक शामिल हैं।
uvsmtid

-1

उबंटू 12.04 पर (कुछ पूर्व संस्करणों को भी जांचा जा सकता है) और शायद डेबियन को भी (जाँच के लिए):

ls /var/lib/dpkg/alternatives

इसे केवल विन्यास योग्य नाम प्राप्त करने के लिए सूचीबद्ध करें, क्योंकि इस निर्देशिका में प्रविष्टियाँ लिंक नहीं हैं। वैसे, इस निर्देशिका में संपीड़ित फ़ाइल हो सकती है, इसलिए वहां सूचीबद्ध नामों को हमेशा may के रूप में उपयोग नहीं किया जा सकता है। पूर्व। मेरे पास एक/var/lib/dpkg/alternatives/psql.1.gz


वास्तव में उपयोगी नहीं है, क्योंकि यह प्रश्न स्पष्ट रूप से बताता है कि यह RedHat Enterprise Linux पर लागू होता है। विन्यास का RHEL तरीका अन्य उत्तरों में ठीक से वर्णित है।
कोसी 2801
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.