उस विकल्प का उपयोग करें package-archive-priorities
जो इस उद्देश्य के लिए बनाया गया था। MELPA पर MELPA स्थिर पसंद करने के लिए, अपनी init फ़ाइल में निम्नलिखित जोड़ें:
(setq package-archives
'(("GNU ELPA" . "https://elpa.gnu.org/packages/")
("MELPA Stable" . "https://stable.melpa.org/packages/")
("MELPA" . "https://melpa.org/packages/"))
package-archive-priorities
'(("MELPA Stable" . 10)
("GNU ELPA" . 5)
("MELPA" . 0)))
संख्या जितनी अधिक होगी, पैकेज संग्रह की प्राथमिकता उतनी ही अधिक होगी। कई अभिलेखागार में मौजूद किसी भी पैकेज के लिए Emacs के पैकेज प्रबंधक संग्रह को उच्चतम प्राथमिकता के साथ पैकेज से उठाता है, और अन्य संग्रह में पैकेजों की उपेक्षा करता है, भले ही संस्करण संख्या अधिक हो। यदि पैकेज एक ही प्राथमिकता के दो अभिलेखागार में मौजूद है, तो उच्च संस्करण संख्या जीत जाती है, और अंत में मुझे लगता है कि आदेश में है package-archives
।
मैं स्पष्ट रूप से सभी अभिलेखागार को प्राथमिकता देने की सलाह देता हूं, जिसमें किसी भी अस्पष्टता से बचने के लिए डिफ़ॉल्ट GNU ELPA संग्रह भी शामिल है। यद्यपि अभिलेखागार package-archive-priorities
में 0 की डिफ़ॉल्ट प्राथमिकता नहीं है , लेकिन यह सब भूल जाना बहुत आसान है।
package-archive-priorities
Emacs 25.1 में पेश किया गया था, पहले रिलीज के लिए नीचे दिए गए पुराने उत्तर देखें:
एमएसीपीए 24 में एमएसीपीए स्टैबल के लिए डिफ़ॉल्ट रूप से संभव नहीं है और केवल सामान्य पैकेज में विशिष्ट पैकेज के लिए एमईएलपीए का उपयोग करना संभव नहीं है। किसी भी अनुकूलन पैकेज के बिना । उच्चतम संस्करण प्रदान करने वाले संग्रह को डिफॉल्ट करता है, जो कि एमईएलपीए है। इसे बदलने के लिए कोई इंटरफ़ेस नहीं है।
हालाँकि, Emacs 24.4 के रूप में नया विकल्प package-pinned-packages
आपको अभिलेखागार में अलग-अलग पैकेजों को पिन करने की अनुमति देता है, लेकिन यह आपको केवल अपनी आवश्यकता के व्युत्क्रम को लागू करने देता है: MELPA के लिए डिफ़ॉल्ट, और विशिष्ट पैकेजों के लिए MELPA स्थिर का उपयोग करें।
इसलिए, वर्तमान में आपका एकमात्र विकल्प उन package-pinned-packages
सभी पैकेजों को भरना है, जिनका आप उपयोग करना चाहते हैं, या तो मैन्युअल रूप से या Emacs Lisp कोड के कुछ टुकड़े के साथ। ध्यान दें कि कॉल package-pinned-packages
करने से पहले सेट किया जाना चाहिए package-refresh-contents
क्योंकि पैकेज इंडेक्स का निर्माण करते समय पिनिंग का मूल्यांकन किया जाता है , और पैकेज स्थापित करते समय नहीं।
एक लंबी अवधि के समाधान के M-x report-emacs-bug
लिए Emacs डेवलपर्स को "डिफ़ॉल्ट संग्रह" सुविधा को लागू करने के लिए या आइकनों के अनुरक्षक से उचित टैग जारी करने के लिए कहने के लिए कहा जाएगा ताकि MELPA स्थिर इसके लिए स्थिर पैकेज बना सके। न तो यह आसान हो सकता है, हालांकि, चूंकि पूर्व में package.el को बड़े बदलावों की आवश्यकता है, और बाद वाले को इकासविकि से कुछ उचित वीसीएस रिपॉजिटरी में टैग के साथ ले जाया जाता है, जिसे मैं मानता हूं कि इसके अनुरक्षक इसके लिए तैयार नहीं हैं, क्योंकि अगर वे होते तो बहुत पहले ही कर लेते।