अगर मुझे MELPA है तो क्या मुझे अभी भी GNU ELPA की आवश्यकता है?


31

यह हमेशा मुझे भ्रमित करता है, क्योंकि लोग कह रहे हैं कि MELPA के नए संस्करण हैं, लेकिन यह वास्तव में स्पष्ट नहीं है, अगर GNU ELPA सिर्फ MELPA का उपसमूह है, या यदि मुझे दोनों की आवश्यकता है?

यही कारण है कि मैं पूछ रहा हूं कि मैं अपने पैकेजों के साथ प्रयोग कर रहा हूं, और package-list-packagesकाफी समय लगता है। मुझे पता है package-list-packages-no-fetch, लेकिन सबसे अधिक बार मैं हाल की पैकेज सूची प्राप्त नहीं करना चाहूंगा।

तो सवाल यह है कि क्या मैं सिर्फ MELPA का उपयोग कर सकता हूं और समान (और संभवतः नए संस्करण) पैकेज प्राप्त कर सकता हूं जैसे कि मैंने MELPA और GNU ELPA दोनों का उपयोग किया है?


5
हां, आपको हमेशा जीएनयू एल्पा की आवश्यकता होगी।
मालाबार

जवाबों:


45

सबसे पहले, ELPA एक विनिर्देशन का नाम है, Emacs Lisp Package Archive। उस विनिर्देश के तीन व्यापक रूप से ज्ञात कार्यान्वयन हैं, जीएनयू ईएलपीए, मुरब्बा और एमईएलपीए।

GNU ELPA आधिकारिक GNU Emacs संग्रह है, जो पर्याप्त रूप से नए Emacs स्थापनाओं के लिए बॉक्स से बाहर सक्षम है। यह तुलनात्मक रूप से छोटा है, इसमें योगदान देने के लिए कॉपीराइट असाइनमेंट की आवश्यकता होती है और आधिकारिक मेलिंग सूची के साथ सहयोग करना पड़ता है। लिनक्स वितरण पैकेज संग्रह की तुलना में यह सबसे नजदीकी चीज है जो हमारे पास है।

मार्मलेड एक अनौपचारिक संग्रह है जिसमें अच्छी मात्रा में संस्करण पैकेज हैं। लेखकों और अनुरक्षकों को अपनी रिलीज़ को मैन्युअल रूप से अपलोड करने की आवश्यकता है। उपयोगकर्ता खाते की अनुमति देने से पहले प्रत्येक नए सदस्य के लिए एक बार Vetting किया जाता है, उसके बाद, वे अपनी इच्छानुसार जारी करने के लिए स्वतंत्र हैं।

MELPA संकुल की सबसे बड़ी राशि के साथ एक और अनौपचारिक संग्रह है। प्रत्येक पैकेज को शामिल करने के लिए अपने पुल अनुरोध के साथ कोड शैली के लिए संक्षेप में वीटो किया गया है, उसके बाद पैकेज स्वचालित रूप से उनके (आमतौर पर वीसीएस) स्रोतों से निर्मित होते हैं। हर घंटे रिबोर हो सकता है। MELPA भी स्थिर है जो केवल टैग रिलीज़ बनाता है, लेकिन इसमें बहुत कम पैकेज होते हैं, जो कि मार्मलेड से भी कम है।

ओवरलैप के लिए, जीएनयू ईएलपीए और मुरब्बा के बीच व्यावहारिक रूप से कोई ओवरलैप नहीं है, और इसी तरह जीएनयू ईएलपीए और एमईएलपीए के लिए। मुरब्बा और MELPA हालांकि एक उचित राशि ओवरलैप करते हैं। मेरा अनुमान है कि अधिकांश मुरब्बा MELPA का सबसेट है। इसलिए आप अधिकांश पैकेजों के लिए MELPA के साथ जा सकते हैं और शायद कुछ गुमशुदा लोगों के लिए GNU ELPA।

अपडेट : मालाबार के पैकेज के आंकड़ों के अनुसार MELPA Stable ने उपलब्ध पैकेजों की संख्या में Marmalade को पीछे छोड़ दिया। मैं इसे अब मुरब्बा के ऊपर ले जाऊंगा।

अद्यतन : मुरब्बा अनिवार्य रूप से मृत है। प्रमाणपत्र की समय सीमा समाप्त हो गई है और शायद ही कोई नया पैकेज अपलोड किया गया है। यह इसकी बल्कि असामान्य प्रक्रिया के कारण है, आपको इसके मालिक द्वारा उपयोगकर्ताओं को मैन्युअल रूप से जोड़ने की आवश्यकता है और जैसा कि वह लापता हो गया है, 2016 के बाद से कोई नया उपयोगकर्ता नहीं जोड़ा गया है।


Melpa + Gnu Elpa जैसी आवाज़ें, और Marmalade का उपयोग नहीं करना, जाने का रास्ता है। कन्वर्ट करने का कोई आसान तरीका?
जस्टिंगॉर्डन

package-archivesतदनुसार अनुकूलित करें और इंडेक्स को अपडेट करें, जैसे कि उपयोग करके M-x package-refresh-contentsM-x list-packagesपहले से अलग सूची प्रदर्शित करनी चाहिए।
वामासा

ऐसा लगता है कि मलेरबाबा के पैकेज के आंकड़े 2015 के
डाइल्यूशन

मैंने एक और अपडेट जोड़ा है क्योंकि मार्मलेड मर चुका है
wasamasa

-5

नहीं, आपको GNU ELPA या किसी ELPA की आवश्यकता नहीं हो सकती है।

जीएनयू ईएलपीए या किसी तीसरे पक्ष के भंडार का उपयोग नहीं करने का व्यावहारिक कारण मेरे एमएसीएस को ईएलपीए को बंद करने से बचाना है। शटडाउन समय-समय पर हुआ (देखें https://www.reddit.com/r/emacs/search/?q=elpa%20down&restrict_sr=1 )

मेरे अधिकांश पैकेज https // melpa.org से डाउनलोड किए गए हैं, मैं चयनित GNU ELPA पैकेजों का एक छोटा स्थानीय पैकेज दर्पण बनाकर GNU ELPA से बच सकता हूं।

मेरे सेटअप को जांचें https://github.com/redguardtoo/emacs.d/blob/master/lisp/init-elpa.el, GNU ELPA का उपयोग नहीं किया गया है।

अगर मुझे कुछ GNU ELPA केवल पैकेज का उपयोग करना है, तो मैं इसके बजाय अपना खुद का स्थानीय ELPA बनाऊंगा (यह एक टेक्स्ट फ़ाइल बनाना जितना आसान है archive-contents), मेरी जाँच करें ~/.emacs.d/localelpa

उदाहरण के लिए, seq-2.20.tarकेवल जीएनयू ईएलपीए में मौजूद है और मुझे इसकी आवश्यकता है। इसलिए मैं इस पैकेज को अपने स्थानीय इलापा में जोड़ता हूंhttps://github.com/redguardtoo/emacs.d/tree/master/localelpa

वर्तमान में मैं केवल GNU ELPA से चार पैकेजों का उपयोग करता हूं,

gnu-elpa-keyring-update-2019.3.tar
let-alist-1.0.5.el
seq-2.20.tar
undo-tree-20170706.246.tar

ये पैकेज मेरे localelpaपास रखे गए हैं इसलिए मुझे GNU ELPA तक पहुंचने की आवश्यकता नहीं है।

आप मेरा पैकेज https://github.com/redguardtoo/elpa-mirror भी चेक कर सकते हैं जो इंस्टॉल किए गए पैकेज से एक स्थानीय रिपॉजिटरी बनाता है। इसलिए अब दूरस्थ रिपॉजिटरी (GNU ELPA, MELPA) वैकल्पिक है।

आप डाउनलोड किए गए पैकेज के बजाय स्रोत का उपयोग भी कर सकते हैं। कृपया https://github.com/redguardtoo/emacs.d/tree/master/site-lisp की जाँच करेंrainbow-mode, यदि आप स्रोत का उपयोग करते हैं , तो आपको यह समझने की आवश्यकता है कि load-path( http://emacswiki.org/emacs/LoadPath ) क्या है।

package--add-to-archive-contentsपैकेज मैनेजर में प्रदर्शित होने से पहले आप पैकेज को ट्विक करने की सलाह भी दे सकते हैं। यह एक तरह से अनजाने हैक है। यह Emacs 23.4 से Emacs 27 तक काम करता है init-elpa.el। उदाहरण के लिए देखें ।


7
Auctex, seq.el, let-alist, इंद्रधनुष-मोड, आदि जैसे पैकेजों के लिए भी आपको GNU ELPA की आवश्यकता होती है, इसलिए मैं शायद ही यह तर्क दूंगा कि यह अप्रचलित है, बल्कि इसका महत्व यह है कि अधिक से अधिक लोग Emacs के विकास में प्रवेश करें और उनके लिए कामना करें सभी के लिए आसानी से उपलब्ध होने वाले पैकेज।
वामासा

मैंने इस मुद्दे पर अपने जवाब को थोड़ा अद्यतन किया।
चिन बिन

@wasamasa क्या आप समझा सकते हैं, कि मुझे वास्तव में auctex जैसे पैकेज के लिए gnu elpa की आवश्यकता क्यों है?
toogley'

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