विभिन्न वितरण कार्यक्रमों के लिए कॉन्फ़िगर फ़ाइलों के स्थानों को कैसे संशोधित करते हैं?


14

बहुत सारे लिनक्स प्रोग्राम बताते हैं कि कॉन्फिग फाइल (फाइल) स्थान वितरण पर निर्भर है। मैं सोच रहा था कि विभिन्न वितरण ऐसा कैसे करते हैं। क्या वे वास्तव में स्रोत कोड को संशोधित करते हैं? क्या ऐसे पैरामीटर हैं जो इन स्थानों को सेट करते हैं? मैंने इसके लिए खोज की है लेकिन कोई जानकारी नहीं मिल सकी है। मुझे पता है कि यह वहाँ है, मैं अभी इसे खोजने के लिए प्रतीत नहीं कर सकता। इसके संबंध में "लिनक्स तरीका" क्या है?

जवाबों:


14

यह वितरण और मूल ('अपस्ट्रीम') स्रोत पर निर्भर करता है।

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

ऐसा नहीं है, तो अक्सर वितरण को स्रोत में पैच को जोड़ना होगा ताकि वे फाइलों को स्थानांतरित कर सकें, जिसे वे 'सही' स्थान मानते हैं। ज्यादातर मामलों में, वितरण पैकर्स तब एक पैच लिखेंगे जो स्रोत को उपरोक्त अर्थों में कॉन्फ़िगर करने की अनुमति देगा, ताकि वे पैच को अपस्ट्रीम अनुरक्षकों को भेज सकें, और इसे बनाए रखने / अद्यतन करने के लिए न रखें। यह कॉन्फ़िगरेशन फ़ाइल स्थानों के लिए मामला है, लेकिन अन्य चीजों के लिए भी, जैसे bin/ sbinनिष्पादक (सिस्टम प्रशासक के वितरण के बीच क्या अंतर है) की व्याख्या), स्थान जहां प्रलेखन लिखना है, और इसी तरह।

साइड नोट: यदि आप कुछ मुफ्त सॉफ्टवेयर बनाए रखते हैं, तो कृपया आपसे बात करना आसान है। अन्यथा हमें बिना किसी विशेष कारण के ऐसे पैच बनाए रखने होंगे ...


8

उनके पास स्रोत कोड ट्री पर लगाए गए पैच हैं जो स्थानों को अनुकूलित करते हैं।

वहाँ पर्याप्त "मानक" उपलब्ध हैं कि हर वितरण अपनी पसंद (व्यक्तिगत) वरीयताओं और / या ऐतिहासिक प्रथाओं के आधार पर ले सकता है। वहाँ शायद ही कभी एक समाधान है कि केवल फायदे हैं। यह कभी-कभी कष्टप्रद / भ्रामक होता है, लेकिन एक वितरण के भीतर निरंतरता सबसे महत्वपूर्ण उद्देश्य है: यह कम अव्यवस्था और आसान अनुमान लगाने की ओर जाता है जहां चीजें प्रोग्राम Y के लिए हो सकती हैं यदि आप पहले से ही जानते हैं कि कहां समान चीजें (सेटअप / कॉन्फ़िगरेशन फ़ाइलें उदा) प्रोग्राम के लिए हैं एक्स।

पैच एप्लीकेशन का उदाहरण

मेरा अजगर पैकेज ruamel.yamlडेबियन सिड में उपलब्ध है। यह निर्भर करता था ruamel.base, और जो उपयोगकर्ता PyPI के माध्यम से इंस्टॉल किए गए थे, वे अभी भी पुराने, असंगत, ruamel.baseइंस्टॉल किए गए संस्करण हो सकते हैं । setup.py/ PyPI का उपयोग करना कोई वास्तविक पैकेज प्रबंधन नहीं है, इसलिए आप पहले से निर्भरता के माध्यम से स्थापित पैकेज को हटा नहीं सकते हैं । मैंने PyPI उपयोगकर्ताओं के लिए समस्या का एक नया संस्करण बनाकर ruamel.baseसमस्या का समाधान किया ruamel.baseऔर पुराने पैकेजों से संबंधित समस्याओं को दूर किया और ruamel.yamlउस नए संस्करण पर निर्भर बना दिया ।

सिड के लिए यह कोई समस्या नहीं है: पुराने संस्करणों ruamel.baseको स्थापित नहीं किया गया था (या पैकेज प्रबंधन के माध्यम से हटाया जा सकता है)। इसलिए वे एक पैच लागू करते हैं , जिसे आप ruamel.yamlसिड के लिए जानकारी पृष्ठ पर पा सकते हैं जो उस ruamel.yamlपर निर्भरता को हटाता है ruamel.base

अन्य वितरणों में समान सेटअप होते हैं। उदाहरण के लिए, यदि आप एक स्रोत RPM फ़ाइल (जैसे RedHat / CentOS / SuSE के लिए) बनाने की विशिष्टताओं को देखते हैं, तो आप देखेंगे कि आप एक या अधिक पैच के साथ एक पैकेज के मूल मूल तारकोल को जोड़ते हैं जो विन्यास / संकलन से पहले लागू किया जाएगा। ।

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