मैं अपने लिनक्स सिस्टम के अपडेट को उसी तरह से प्रबंधित करना चाहता हूं जैसे Git करता है, "रिवाइंड" के भीतर आगे और पीछे जाने में सक्षम होने से। ऐसा कैसे किया जा सकता था?
मैं अपने लिनक्स सिस्टम के अपडेट को उसी तरह से प्रबंधित करना चाहता हूं जैसे Git करता है, "रिवाइंड" के भीतर आगे और पीछे जाने में सक्षम होने से। ऐसा कैसे किया जा सकता था?
जवाबों:
आप शायद पर गौर करना चाहिए NixOS है, जो का उपयोग करता है निक्स पैकेज प्रबंधक ।
NixOS एक GNU / Linux वितरण है जिसका उद्देश्य सिस्टम कॉन्फ़िगरेशन प्रबंधन में कला की स्थिति में सुधार करना है। मौजूदा वितरण में, अपग्रेड जैसे कार्य खतरनाक होते हैं: एक पैकेज को अपग्रेड करने से अन्य पैकेज टूट सकते हैं, एक पूरे सिस्टम को अपग्रेड करना खरोंच से पुन: स्थापित करने की तुलना में बहुत कम विश्वसनीय है, आप सुरक्षित रूप से परीक्षण नहीं कर सकते कि कॉन्फ़िगरेशन परिवर्तन के परिणाम क्या होंगे, आप आसानी से सिस्टम में परिवर्तन को पूर्ववत नहीं कर सकते, और इसी तरह।
आप जो खोज रहे हैं, उसे विन्यास प्रबंधन उपकरण कहा जाता है । चुनने के लिए कई हैं लेकिन यह बहुत व्यक्तिपरक है जो किसी भी स्थिति में सबसे अच्छा है।
मैंने व्यक्तिगत रूप से कठपुतली को शुरू करने के लिए काफी आसान पाया , लेकिन अन्य लोकप्रिय विकल्प हैं साल्ट और अन्सिबल ।
यह आपके प्रश्न के लिए अधिक संभावना है, लेकिन सिस्टम-स्तर / बड़े पैमाने पर परिवर्तनों को वापस लाने में सक्षम होने का सबसे आसान तरीका स्नैपशॉट है:
https://en.wikipedia.org/wiki/Snapshot_%28computer_storage%29
आपने अपनी रिग की बारीकियों का उल्लेख नहीं किया है, लेकिन जैसा कि आप गिट से परिचित हैं, यह देखना बहुत अधिक खिंचाव नहीं होगा कि आप एक अधिक जटिल फ़ाइल सिस्टम का उपयोग करने में रुचि रखते हैं। यदि आप एक अगली-जीन फ़ाइल प्रणाली (क्लिक-बाय-वाई नाम को अनदेखा करते हैं) का उपयोग करने के लिए थे, तो आप अपने पूरे सिस्टम को अपने टर्मिनल में छिद्रित कमांड के साथ पूरी तरह से "रिवाइंड" करने में सक्षम होंगे। किए गए किसी भी और सभी परिवर्तनों को बहुत कम देरी / प्रयास के साथ वापस किया जाएगा। ZFS आपकी सबसे अच्छी शर्त होगी और आप इस अद्भुत Ars लेख को देख सकते हैं कि क्या यह आपके लिए इसके लायक हो सकता है (कई अन्य कई शानदार विशेषताएं भी हैं):
"अपडेट" से आपका क्या मतलब है, इसके आधार पर, आपको एटकेपर जैसे कॉन्फ़िगरेशन प्रबंधन टूल में रुचि हो सकती है , जो आपको सिस्टम कॉन्फ़िगरेशन में परिवर्तन को स्वचालित रूप से रिकॉर्ड करने और पहले के कॉन्फ़िगरेशन में वापस लाने की अनुमति देता है।
यदि Git एक परिचित उपकरण है, और यदि "अपडेट" से आपका मतलब "सिस्टम कॉन्फ़िगरेशन में अपडेट" के रूप में "सिस्टम पैकेज के अपडेट" या "सर्वर पर संग्रहीत सभी फ़ाइलों के अपडेट" के विपरीत है, तो यह वही हो सकता है जो आप देख रहे हैं। के लिये।
यह विचार करने योग्य है कि क्या आप कठपुतली, Ansible, Etckeeper आदि जैसे टूल का उपयोग कर रहे हैं, यह हमेशा डेटा के नुकसान के बिना सफाई से "रोल बैक" करना संभव नहीं है, जब तक कि आप पूरे हॉग नहीं जाते हैं (उदाहरण के लिए स्नैपशॉटिंग, जैसा कि एक अन्य उत्तर में उल्लेख किया गया है)। सही दृष्टिकोण आपकी स्थिति पर निर्भर करेगा (उदाहरण के लिए स्नैपशॉट उत्पादन प्रणाली के लिए उपयुक्त नहीं होगा, जहां आप वापस रोल करते समय ग्राहक के आदेश खो सकते हैं)।
मैंने अतीत में OpenVMS का उपयोग किया है , यह डिफ़ॉल्ट रूप से एक संस्करण फ़ाइल सिस्टम के साथ आता है ।
अगर कठपुतली जैसे उपकरण बहुत दूर नहीं जाते हैं तो शायद एक वर्जनिंग फाइल सिस्टम है जिसे आप ढूंढ रहे हैं।
यदि आप वास्तव में अपने पूरे सिस्टम (कर्नेल संस्करण सहित) को git की तरह प्रबंधित करना चाहते हैं, तो आप NixOS की तलाश कर रहे हैं ।
एक कम शामिल संस्करण के लिए आप लगभग किसी भी यूनिक्स से निक्सओएस के पैकेज मैनेजर, निक्स का उपयोग कर सकते हैं। निक्स को एक साधारण उपयोगकर्ता के रूप में स्थापित किया जा सकता है, हालांकि इसे रूट के रूप में स्थापित करना अधिक आसान है। एक बार निक्स स्थापित हो जाने के बाद, आप इसका उपयोग पैकेजों को गैर-विशेषाधिकार प्राप्त उपयोगकर्ता के रूप में स्थापित करने के लिए कर सकते हैं, और यह आपके मौजूदा पैकेज मैनेजर के साथ-साथ बिना किसी विरोध के ठीक चलता है। अपने सिस्टम से निक्स को पूरी तरह से निकालना भी बहुत आसान है, इसलिए इसे आज़माने के लिए वास्तव में कोई बहाना नहीं है। ;-)
अपने प्रश्न को सीधे संबोधित करने के लिए, निक्स आपके पूर्ण स्थापित सिस्टम को एक वातावरण के रूप में परिभाषित करता है, जो कि बहुत कुछ कमिट जैसा होता है, पॉइंटर्स के सेट के लिए एक संकेतक जो सभी स्थापित पैकेजों के बहुत विशिष्ट संस्करणों के लिए होता है।
जब निक्स एक पैकेज को अपग्रेड करता है, तो यह एक नया वातावरण बनाता है, जो पॉइंटर्स के एक नए सेट को पैकेज के लिए इंगित करता है (ज्यादातर मौजूदा वाले, पैकेज के लिए जिन्हें अपडेट नहीं किया गया है; फिर से, यह एक नई गिट कमिट के समान है, जो ज्यादातर पिछली अपरिवर्तित फ़ाइलों के बिंदु और संशोधित फ़ाइलों के कुछ नए संस्करण)।
यह निश्चित रूप से, पर्यावरण के पिछले संस्करण पर स्विच करने के लिए तुच्छ है और, मेरा मानना है कि, फोर्क (यानी एक पुराने-पिछले एक के आधार पर एक नया वातावरण बनाते हैं)। एक विशिष्ट शेल के लिए वातावरण लोड किया जा सकता है (यह वास्तव में, शेल के लिए उपलब्ध पर्यावरण चर का सेट है, इसलिए नाम), इसलिए आप एक ही मशीन पर विभिन्न परियोजनाओं के लिए अलग-अलग वातावरण भी आसानी से पा सकते हैं। अधिक निर्भरता की समस्या नहीं है क्योंकि एक असंबंधित परियोजना को एक पुस्तकालय के दूसरे संस्करण की आवश्यकता है!
NixOS अगले स्तर तक ले जाता है और कर्नेल सहित आपके पूरे कंप्यूटर का प्रबंधन करता है, इसी तरह से, पूरे मशीन के बहुत कम जोखिम उन्नयन के लिए अनुमति देता है।
मैंने उन सभी को पढ़ना नहीं छोड़ा है , लेकिन मैं निक्स को एक परिचय के रूप में घातक निक्स की गोलियों की सलाह देता हूं ।
यदि आप प्रायोगिक प्रकार के हैं, तो आप अपने संपूर्ण फ़ाइल सिस्टम में एक स्थानीय गिट रिपॉजिटरी में जाँच कर सकते हैं। यह होगा ... दिलचस्प, मुझे लगता है।
git init
रूट डायरेक्टरी में /
git add -A .
git commit -m "Initial Snapshot"
git commit -Am "Snapshot X"
या समान जोड़ेंकुछ लाभ होंगे:
gitk
औरgit diff
कुछ विषमताओं में शामिल हो सकते हैं:
git
जब आप स्रोत कोड निर्देशिका में रूट git
कंटेनर में नेस्टेड हों, तो उम्मीद के मुताबिक काम करना ।