Emacs पैकेज मैनेजर का उपयोग नहीं करने के लिए पैकेज अनुरक्षकों के लिए तकनीकी विचार?


10

मैं कुछ उल्लेखनीय पैकेज अनुरक्षकों को सूचित कर रहा हूँ जो Emacs संकुल प्रबंधन प्रणाली (ESS?) का उपयोग नहीं कर रहे हैं या इसकी सीमाओं (Helm) के बारे में शिकायत कर रहे हैं।

से हवाला देते हुए पतवार के README.md :

चेतावनी : पैकेज की एक गलत अवधारणा के कारण। हेलम फ़ाइलों को लाने और उन्हें संकलित करने के लिए उपयोगकर्ताओं के पास अधिकांश समय त्रुटियां थीं, जब मेलपा और सूची-पैकेज से अपग्रेड किया गया था। इस से बचने के लिए Async पैकेज के लिए मजबूर करने के लिए एक स्वच्छ वातावरण में अपनी फ़ाइलों को संकलित करने के लिए पतवार के रूप में जोड़ा गया है। Git से और मेक फ़ाइल का उपयोग करने वाले लोग इस समस्या से ग्रस्त नहीं होंगे और उन्हें Async की आवश्यकता नहीं है, हालांकि यह अनुशंसित है क्योंकि यह अन्य सभी पैकेजों की स्थापना को ठीक करता है जिन्हें आप पैकेज (m) से elpa के साथ स्थापित कर सकते हैं। अधिक जानकारी के लिए सामान्य प्रश्न देखें।

वर्तमान पैकेज प्रबंधन प्रणाली में कौन सी सटीक तकनीकी सीमाएँ हैं, जो कि उनके लिए महत्वपूर्ण हो सकती हैं, और पैकेजों asyncको एक निर्भरता के रूप में उपयोग करने की आवश्यकता क्यों है ?


1
मुझे लगता है कि इस साइट के लिए यह प्रश्न बहुत व्यापक होना चाहिए। एक चर्चा मंच पर इसका उद्देश्य बेहतर है। Help-gnu-emacs@gnu.org या emacs-devel@gnu.org या Emacs reddit या कुछ इस तरह की कोशिश करें। " वास्तव में समस्या क्या है? " मानता है कि इस तरह की एक समस्या है, और यह पूछना कि किसी भी पैकेज (या किसी भी पैकेज अनुरक्षक) के लिए संभावित समस्याएं क्या हैं, बहुत व्यापक है।
ड्रयू

2
ईएसएस को मेलपा पर होस्ट किया जाता है: melpa.org/#/ess , शायद यह सिर्फ एक दस्तावेजी बात है। मैं कई परियोजनाओं को जानता हूं, जो आमतौर पर एक सिस्टम पैकेज प्रबंधक के माध्यम से इंस्टॉल करने योग्य होते हैं, लेकिन बिना किसी वास्तविक कारण के उस विकल्प का उल्लेख नहीं करना चुनते हैं (शायद यह मानते हुए कि यदि आप साइट से स्रोत / बायनेरी डाउनलोड करने के रूप में चले गए, तो आपके पास एक होना चाहिए करने का कारण)। मुझे नहीं पता कि हेल्म को क्या समस्या थी।
wvxvw

आपका शीर्षक मुझे थोड़ा अजीब लगता है। क्या आपको दो बार "प्रबंधक" लिखने का मतलब था, या क्या आपके पास रखरखाव का मतलब था?
मालाबार

1
ईएसएस डेवलपर के रूप में लिखना, क्या हम जानते हैं कि हम मामलों को कैसे सुधार सकते हैं - जैसा कि अन्य ने टिप्पणी की है, ईएसएस एमईएलपीए में है।
स्टीफन एगलेन

जवाबों:


19

आप जिस समस्या का जिक्र कर रहे हैं, वह यह है कि जब आप किसी पैकेज को Emacs सत्र के भीतर से अपग्रेड करते हैं, जहां वह पैकेज पहले से ही उपयोग में है, तो पैकेज का पुराना संस्करण कभी-कभी नए संस्करण के संकलन के दौरान हस्तक्षेप करेगा, जिसके कारण गलत फाइलें हो सकती हैं।

Emacs-25 में इसके लिए एक अस्थायी निर्धारण है, लेकिन AFAIK समस्या अभी भी 24.5 में मौजूद है।


9

ProofGeneral के उल्लेखनीय अपवाद के साथ, मुझे किसी भी प्रमुख Emacs पैकेज की जानकारी नहीं है जो कुछ ELPA संग्रह में उपलब्ध नहीं है। विशेष रूप से, ईएसएस तीन साल से एमईएलपीए पर है । और पीजी अपने आप में एक कहानी है, और निश्चित रूप से पूरे Emacs पारिस्थितिकी तंत्र के लिए प्रतिनिधि नहीं है।

ईएलपीए में निश्चित रूप से इसकी खामियां हैं, लेकिन अधिकांश पैकेजों के लिए यह ठीक काम करता है, यहां तक ​​कि मैगिट जैसे लार्ज लोगों के लिए भी। हेल्म एकमात्र पैकेज है जिसे मैं ईएलपीए के बारे में शिकायत करता हूं। मुझे यकीन नहीं है कि वे वास्तव में किस बारे में शिकायत करते हैं, लेकिन मुझे लगता है कि यह संकलन के बारे में है:

उन्नयन के दौरान Emacs पैकेज के नए संस्करण को ऐसे वातावरण में संकलित करता है जहां पुराना संस्करण अभी भी लोड है। आम तौर पर, इससे कोई नुकसान नहीं होता है, लेकिन यह कुछ स्थितियों में मैक्रोज़ को तोड़ सकता है। Emacs के विरुद्ध नया संस्करण संकलित करेगा मैक्रो पुराने कार्यान्वयन के , जो कि नए कोड को उस मैक्रो में विशिष्ट परिवर्तन पर निर्भर होने पर टूटने का कारण बन सकता है।

एक पैकेज मेंटेनर होने के नाते, मैं इस कथन से बहुत असहमत हूँ, हालाँकि। मैं ELPA या Emacs के बजाय Helm को दोष देता हूं। मेरी राय में यह कथन अतिशयोक्तिपूर्ण है, और यह मुद्दा है लेकिन मैक्रों के अति-प्रयोग का एक लक्षण है।

यदि आप मैक्रोज़ का बहुत अधिक उपयोग करते हैं - और भी बदतर - मैक्रोज़ के शरीर में गैर-तुच्छ कोड डालते हैं, तो आपको बस बाइट संकलन के लिए निहितार्थ के बारे में पता होना चाहिए और आपको अपने स्वयं के मैक्रोज़ के साथ पीछे की संगतता बनाए रखने के लिए सावधान रहना होगा। अपने पैकेज के भीतर। ऐसा नहीं करना, और इधर-उधर दोष देना, बहुत अच्छी बात नहीं है। मेरे 2 सेंट।


2
एफडब्ल्यूआईडब्ल्यू, मैं आपकी असहमति से असहमत हूं: जबकि मैं सहमत हूं कि मैक्रोज़ को अधिक उपयोग करने से बचने के लिए प्रयास करना बेहतर है, संकलन की समस्याएं वास्तविक हैं और मैक्रो कॉल से अधिक प्रभावित हो सकती हैं (जैसे वे प्रभावित करते हैं और साथ ही असंगत या ट्रिगर फ़ंक्शन द्वारा ट्रिगर किया जा सकता है) मैक्रो-विस्तार के दौरान)। और जब आपको इस समस्या का सामना करना पड़ता है, तो आपकी .elc फाइलें गलत होती हैं और सभी प्रकार के दिलचस्प तरीकों से गलत व्यवहार कर सकती हैं, इसलिए समस्या का निदान करना मुश्किल हो सकता है, और इसे ठीक करने के लिए पैकेज को अनइंस्टॉल करने + की स्थापना रद्द करने की आवश्यकता होती है (एक बार पता लगा लिया गया) समस्या और पैकेज को फिर से स्थापित करने की आवश्यकता है।
स्टीफन

1
@Stefan मैं संकलन के मुद्दों से इनकार नहीं करता। मैंने खुद को काट लिया। लेकिन मैं इस बयान के माध्यम से चमकने वाले रवैये को नापसंद करता हूं, और जो मैं "संतुलित दृष्टिकोण" कहता हूं उसकी कमी है। हेल्म ने उस बुरे को काट दिया क्योंकि उन्होंने अपनी तरफ से कई गलतियां की हैं, लेकिन उनका यह बयान स्वीकार नहीं करता है। मेरी विनम्र राय में स्थूल शरीर में कॉलिंग फ़ंक्शन एक ऐसी गलती है। मैक्रोज़ सिंटैक्स के लिए ही हैं, लेकिन कार्यक्षमता के लिए कभी नहीं। लेकिन मैं समझता हूं कि यह एक ऐसा विषय है जिस पर Emacs लिस्प समुदाय के कई अलग-अलग मत हैं।
चांदनी जूल

ropemacs , jdee-emacs और excorporate उल्लेखनीय पैकेज हैं जो किसी भी ELPA संग्रह पर नहीं हैं (प्रमुख पैकेजों के लिए आपके मानदंडों के आधार पर)। पैकेजों के विशाल बहुमत, हालांकि हैं।
विल्फ्रेड ह्यूजेस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.