* BSD के तहत / आदि के लिए संस्करण नियंत्रण


14

/etcविभिन्न संघों के तहत, संस्करण नियंत्रण के तहत क्या टर्नकी समाधान मौजूद हैं ? टर्नकी का मतलब आधार स्थापित का हिस्सा नहीं है, लेकिन निम्नलिखित विशेषताएं अच्छी होंगी:

  • मेटाडाटा (स्वामित्व, अनुमति) का प्रबंधन करने के लिए वीसीएस आदेशों में हुक;
  • पैकेज मैनेजर के साथ एकीकरण (स्थापना से पहले और बाद में स्वचालित रूप से चलाएं, समझदारी से अपग्रेड को संभालें);
  • एक शाखा के रूप में अपस्ट्रीम फ़ाइल संस्करणों का इलाज करें;
  • पहले से भरी हुई अनदेखी सूची;
  • कई अंतर्निहित VCS (विशेष रूप से वितरित वाले) के लिए समर्थन।

मैं डेबियन और डेरिवेटिव के तहत एटकीपर का उपयोग करता हूं । इसमें उपरोक्त सभी विशेषताएं हैं सिवाय इसके कि यह अपस्ट्रीम संस्करणों का ट्रैक नहीं रखता है। मैं विकल्पों के बारे में सीखना चाहूंगा, विशेष रूप से * बीएसडी पर।

जवाबों:


4

Gentoo के तहत /-etc (जिसे डिस्पैच-कॉन्फ़िडेंस कहा जाता है) को पैकेज-प्रेरित परिवर्तनों को प्रबंधित करने के लिए rcs परिवर्तनों को ट्रैक करने के लिए समर्थन करता है, लेकिन यह वास्तव में शक्तिशाली है।

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

masterमेरी डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइलों के साथ मेरा रेपो है। अब मैं एक नए डिस्ट्रो के संपर्क में आता हूं, इसलिए मैं अपनी masterशाखा के आधार पर एक नई शाखा बनाता हूं जो वितरण के नाम (इस उदाहरण के उदाहरण में) पर आधारित है। डेबियन मेरे स्थान से कुछ कॉन्फिग फाइल को अपने से अलग रखता है masterइसलिए मैं ए git mv file new_loc। और सब कुछ ठीक है। मैं masterउस फ़ाइल पर वापस जाता हूं और उस फ़ाइल को बदल देता हूं क्योंकि मैंने कुछ विशिष्ट कॉन्फ़िगरेशन निर्देश जोड़े हैं, जब मैं masterअपनी debianशाखा में विलीन हो जाता हूं तो स्थानांतरित फ़ाइल बदल जाती है, इसलिए मैं मूल रूप से अपनी masterशाखा के भीतर अधिकांश चीजों को बदल सकता हूं और बस मेरे "वितरण" में परिवर्तन को मर्ज करना होगा। शाखाएं (आमतौर पर वे वितरण और उद्देश्य शाखाओं के मिश्रण से अधिक होती हैं, एक डेबियन सर्वर में डेबियन वर्कस्टेशन के कुछ अंतर स्पष्ट रूप से होते हैं लेकिन विशेषताएं अभी भी काम करती हैं)।

इसलिए मूल रूप से मेरे पास एक "जेनेरिक कॉन्फ़िगरेशन" है master(इसे ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग शब्दों में कहने के लिए) उन्हें मेरी शाखाओं में विरासत में मिला है (जो एक दूसरे से विरासत में भी प्राप्त कर सकते हैं)।

इसके अलावा, git"चेरी-पिक" करने के लिए तंत्र काम करता है (इस मामले में / आदि में परिवर्तन /) मेरे लिए काफी सहायक रहा है, जहां मुझे केवल एक निश्चित कॉन्फ़िगरेशन के कुछ हिस्सों की आवश्यकता थी।

अब आपके कुछ विचारों को:

  • अगर मुझे अधिक पैकेज प्रबंधक एकीकरण की आवश्यकता होती है, तो मैं संभवतः इसके लिए रैपर स्क्रिप्ट का उपयोग करूंगा (फिलहाल मैं नहीं)।
  • अपस्ट्रीम संस्करणों को एक शाखा के रूप में मानने से ठीक काम होगा git, यह सिर्फ एक और शाखा है जिसे आप कभी-कभी (आंशिक रूप से) मर्ज करते हैंmaster
  • Git में अनदेखी सूची फ़ाइल है। आपके रेपो में .ignignore इसलिए कवर किया गया है।

मुझे डिस्पैच-कॉन्फिडेंस से बेहतर gentoo पर cfg- अपडेट पसंद आया, दुर्भाग्य से पूर्व को बनाए नहीं रखा गया है। चूंकि मेरे जाने से करीब एक साल पहले, और यह स्पैगेटी पेर्ल, इमो की गड़बड़ी थी।
xenoterracide

3

मैंने fossilकुछ सफलता के साथ इसके लिए उपयोग किया है । अधिक जानकारी के लिए जीवाश्म के बारे में मेरी पोस्ट देखें । मैंने एक टूल का भी उपयोग किया है, etcupdateजो ट्रैकिंग परिवर्तनों की तुलना में अपग्रेड के बीच बढ़ने के लिए अधिक है। मेरा मानना ​​है कि यह freebsd-updateएक बिंदु पर एक साथी उपकरण होने का इरादा था । मैं वर्तमान में इसकी स्थिति के बारे में निश्चित नहीं हूं लेकिन यह मेरे RELEASE-8.*सिस्टम पर काम करता है ।

http://lists.freebsd.org/pipermail/freebsd-current/2010-June/017927.html http://people.freebsd.org/~jhb/etcupdate/


-1

वहाँ एक उपकरण है जिसे एटकीपर कहा जाता है मुझे नहीं पता कि यह कितना अच्छा है।

etckeeper, git, mercurial, darcs, या bzr रिपॉजिटरी में संग्रहित करने के लिए टूल्स का एक संग्रह है। यह उपयुक्त रूप से (और यम और पैक्मैन-जी 2 सहित अन्य पैकेज मैनेजर) को हुक करता है, जो पैकेज अपग्रेडेशन के लिए / आदि किए गए बदलावों को स्वचालित रूप से करने के लिए होता है। यह फ़ाइल मेटाडेटा को ट्रैक करता है जो नियंत्रण प्रणाली को सामान्य रूप से समर्थन नहीं करता है, लेकिन यह / etc / छाया या की अनुमतियों जैसे / etc के लिए महत्वपूर्ण है। यदि आप संशोधन नियंत्रण के साथ काम करने की मूल बातें समझते हैं, तो इसका उपयोग करना सरल होने के साथ-साथ यह काफी मॉड्यूलर और विन्यास योग्य है।

मुझे यह भी पता नहीं है कि क्या यह काम करने के लिए बनाया जा सकता है * बीएसडी मुझे संदेह है कि यह हो सकता है, लेकिन यह बॉक्स से बाहर बंदरगाहों के साथ समर्थित नहीं होगा।


1
गिलेस पहले से ही एटकीपर का उपयोग करता है।
कैंट

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