उत्तर
update-alternatives
केवल तभी काम करता है जब कोई पैकेज वैकल्पिक प्रणाली का स्पष्ट रूप से उपयोग करता है। gnupg और gnupg2 नहीं।
पृष्ठभूमि
आमतौर पर कारण यह है कि उपयोगकर्ता-इंटरफ़ेस बहुत भिन्न होता है ताकि एक उपकरण का उपयोग करने वाली स्क्रिप्ट अब काम न करें यदि अचानक अन्य उपकरण इसके बजाय चलता है। एक विशिष्ट उदाहरण यहाँ है markdown
। markdown
डेबियन में प्रत्येक कार्यान्वयन के पास अलग-अलग कमांडलाइन विकल्प हैं, इसलिए विकल्प प्रणाली वहां उपयोग में नहीं है।
gpg
के gpg2
कमांडलाइन विकल्प बहुत अलग नहीं लगते हैं, लेकिन हो सकता है कि कुछ क्रियाओं या एक्जिट कोड पर आउटपुट कुछ स्थानों पर काफी भिन्न हो।
एक चीज जहां वे भिन्न होते हैं और जो न्यूनतम इंस्टॉलेशन और इंस्टॉलेशन मीडिया के लिए महत्वपूर्ण है, उनकी निर्भरताएं हैं। जबकि gnupg
(यानी एक मानक स्थापना में स्थापित) पैकेज "मानक" प्राथमिकता का है और पैकेज की निर्भरता apt
, पैकेज gnupg2
काफी कुछ और पुस्तकालयों अंदर खींचती है जो प्राथमिकता के वर्तमान में केवल "वैकल्पिक" कर रहे हैं।
डेबियन में दो खुले बग रिपोर्ट हैं, प्रत्येक पैकेज के लिए एक ( # 561540 gnupg के खिलाफ और # 483724 gnupg2 के खिलाफ ), के लिए विकल्प प्रणाली के उपयोग का अनुरोध gnupg
और gnupg2
।
वर्तमान में इनमें से एक बग रिपोर्ट को टैग किया गया है wontfix
, लेकिन टैग को "अभी के लिए" कहा गया है और कुछ संकेत हैं किgnupg2
भविष्य में वैकल्पिक प्रणाली का उपयोग किया जाएगा (या डिफ़ॉल्ट बन जाएगा)। ।
कैसे, मामले में आप वास्तव में चाहते हैं
यदि आप वास्तव में gpg2
कॉल करना चाहते हैं यदि आप कहते हैं gpg
, तो मैं आपके शेल के अनुसार एक उपनाम जोड़ने की सलाह देता हूं, जैसे कि alias gpg=gpg2
बोर्न-शेल संगत शेल के लिए। बहुत नुकसान नहीं करना चाहिए, लेकिन कमांडलाइन से कॉल करने पर ही काम होगा।
क्या तुम सच में करना चाहते हैं /usr/bin/gpg
gnupg2 होने के लिए, आप के साथ ऐसा कर सकते हैं dpkg-divert
, उदाहरण के लिए नाम बदलने gpg
के लिए gpg1
और उसके बाद gpg2
करने के लिए gpg
। फ़ाइलों का नाम बदलकर dpkg-divert
नए पैकेज के अनुसार अपना नया नाम भी रखेंगे।
लेकिन चेतावनी दी है: APT की आवश्यकता है और उपयोग करता है gpg
और यह वास्तव में होने की उम्मीद नहीं कर सकते हैं gpg2
। यदि आप dpkg-divert
इस तरह से उपयोग करते हैं तो आप अपने सिस्टम के कुछ हिस्सों को तोड़ सकते हैं । (गैर-रूट उपयोगकर्ताओं के लिए शेल उपनाम इस संबंध में ठीक हैं।)