पहले, तीन मशीनों पर एक ही Linux सेटअप चलाने का मतलब एक ड्राइव क्लोन करना और आशा करना था कि हार्डवेयर मेल खाएंगे। नया मानक है: एक उपकरण के साथ अपनी डॉटफाइलों को सिंक्रनाइज़ करें, Git में पैकेज सूची रखें, और अपनी फाइलों को एक अलग चैनल के माध्यम से अपने आप को सिंक्रनाइज़ करने दें। ये सात डेस्कटॉप उपकरण तीन परतों को कवर करते हैं, दो फाइलों ~/.zshrc सिंक्रनाइज़ करने से लेकर पूर्ण Nix घोषणात्मक पुनर्निर्माण तक।
डॉटफाइल सिंक्रनाइज़ेशन उपकरण में क्या देखें
कुछ सवाल आकार तय करते हैं:
- टेम्पलेटिंग: क्या विभिन्न मशीनों को एक ही स्रोत से अलग कॉन्फ़िगरेशन की आवश्यकता है?
- गोपनीयता: SSH कुंजियां और API टोकन कैसे संभाले जाते हैं?
- बूटस्ट्रैप: क्या यह एक ताज़े बॉक्स पर एक पंक्ति से स्वयं को स्थापित कर सकता है?
- पैकेज प्रबंधन: क्या यह apt, dnf, brew, या nix को संभालता है?
- इतिहास: क्या आप सादा Git चाहते हैं, या अपना स्वयं का लॉग वाली कोई चीज़?
त्वरित तुलना
| ऐप | सर्वश्रेष्ठ है | मुफ्त योजना | भुगतान की गई | प्लेटफॉर्म | बेहतरीन |
|---|---|---|---|---|---|
| chezmoi | गोपनीयता के साथ टेम्पलेटेड डॉटफाइलें | हाँ | मुफ्त | Linux, macOS, Windows | टेम्प्लेट, एन्क्रिप्शन, मशीन-जागरूक कॉन्फ़िग |
| GNU Stow | एक Git रेपो से सिमलिंक फार्म | हाँ | मुफ्त | Linux, macOS | सबसे पुरानी, सबसे सरल वर्कफ़्लो |
| yadm | आपकी डॉटफाइलों के लिए नेटिव Git | हाँ | मुफ्त | Linux, macOS | बूटस्ट्रैप स्क्रिप्ट, प्रति मशीन alt शाखा |
| dotbot | घोषणात्मक YAML सिमलिंक सेटअप | हाँ | मुफ्त | Linux, macOS | क्रॉस-प्लेटफॉर्म, न्यूनतम पदचिह्न |
| Ansible | पूर्ण मशीन कॉन्फ़िगरेशन, केवल डॉटफाइलें नहीं | हाँ | AAP भुगतान किया | Linux, macOS, Windows | एक फ्लीट या एक लैपटॉप के लिए एक उपकरण |
| Syncthing | निरंतर P2P फाइल सिंक्रनाइज़ेशन | हाँ | मुफ्त | Linux, macOS, Windows | कोई क्लाउड नहीं, सीधी मशीन-से-मशीन सिंक |
| Nix Home Manager | पुनरुत्पादन योग्य उपयोगकर्ता पर्यावरण | हाँ | मुफ्त | Linux, macOS | समान कॉन्फ़िग हर बार समान सेटअप देता है |
ऐप्स
1. chezmoi — गोपनीयता के साथ टेम्पलेटेड डॉटफाइलों के लिए सर्वश्रेष्ठ
chezmoi आपकी डॉटफाइलों को स्रोत कोड के रूप में मानता है, प्रति-मशीन टेम्प्लेट (Go text/template) और age या GPG के माध्यम से मूल एन्क्रिप्शन के साथ। एक रेपो आपके कार्य Mac, आपके घर Linux बॉक्स और एक headless सर्वर को कवर करता है, और अंतर (ईमेल, एडिटर प्लगइन्स, केवल-कार्य प्रविष्टियां) टेम्प्लेट शर्तों में रहती हैं।
कहाँ यह कम पड़ता है: टेम्प्लेट सिंटैक्स के लिए सीखने की वक्र। एक टेम्प्लेट परिणाम को एक सिस्टम-प्रबंधित फाइल के साथ मर्ज करने के लिए एक विशिष्ट पैटर्न की आवश्यकता होती है जो अधिकांश लोग कठोर तरीके से सीखते हैं।
मूल्य: मुफ्त, ओपन सोर्स।
प्लेटफॉर्म: Linux, macOS, Windows।
डाउनलोड: chezmoi
निष्कर्ष: जो कोई भी सिमलिंक स्क्रिप्ट से बढ़ा हुआ है उसके लिए वर्तमान डिफ़ॉल्ट।
2. GNU Stow — सबसे सरल संभव वर्कफ़्लो के लिए सर्वश्रेष्ठ
GNU Stow 1994 में लिखा गया था और अभी भी बिल्कुल एक काम करता है: एक पैकेज निर्देशिका से आपके घर में सिमलिंक बनाता है। एक डॉटफाइलें रेपो एक Stow “पैकेज” बन जाता है, और stow zsh इसकी सामग्री में सिमलिंक बनाता है। कोई टेम्प्लेट नहीं, कोई गोपनीयता नहीं, कोई जादू नहीं।
कहाँ यह कम पड़ता है: मशीन-विशिष्ट कॉन्फ़िगरेशन कई शाखाओं या प्रति-होस्ट पैकेजों का मतलब है। गोपनीयता कहीं और रहना होगा (एक एन्क्रिप्टेड माउंट, एक पासवर्ड मैनेजर)।
मूल्य: मुफ्त, ओपन सोर्स।
प्लेटफॉर्म: Linux, macOS, Windows (WSL के माध्यम से)।
डाउनलोड: GNU Stow
निष्कर्ष: सही चुनाव जब आपका सेटअप छोटा हो और आप कभी भी सिंक उपकरण के बारे में फिर से सोचना न चाहते हों।
3. yadm — डॉटफाइलों को एक Git रेपो के रूप में मानने के लिए सर्वश्रेष्ठ
yadm (Yet Another Dotfiles Manager) Git प्लस डॉटफाइल-विशिष्ट सुविधाएं हैं: बूटस्ट्रैप स्क्रिप्ट्स, प्रति होस्ट या OS alt फाइलें, और GPG के माध्यम से एन्क्रिप्शन। क्योंकि यह वास्तव में केवल Git के चारों ओर एक रैपर है, आप जो पहले से जानते हैं वह काम करता है।
कहाँ यह कम पड़ता है: Alt-फाइल सम्मेलन शक्तिशाली है लेकिन chezmoi के टेम्पलेटिंग की तुलना में कम खोजने योग्य। एन्क्रिप्शन कहानी age-आधारित उपकरणों की तुलना में बुनियादी है।
मूल्य: मुफ्त, ओपन सोर्स।
प्लेटफॉर्म: Linux, macOS।
डाउनलोड: yadm
निष्कर्ष: डॉटफाइलों के एक सादे Git रेपो से सबसे नरम कदम।
4. dotbot — सर्वश्रेष्ठ घोषणात्मक छोटा सेटअप
dotbot एक YAML इंस्टॉल फाइल पढ़ता है और सिमलिंक बनाता है, रेपो क्लोन करता है, और शेल कमांड चलाता है। यह आपकी डॉटफाइलें रेपो में विक्रय करने के लिए काफी छोटा है, इसलिए रेपो क्लोन करना और ./install चलाना एक ताज़े मशीन पर पूरा बूटस्ट्रैप है।
कहाँ यह कम पड़ता है: कोई टेम्प्लेटिंग नहीं। कोई मूल एन्क्रिप्शन नहीं। जटिल मशीनें लंबी install.yaml फाइलें समाप्त करती हैं जो पढ़ने में मुश्किल हो जाती हैं।
मूल्य: मुफ्त, ओपन सोर्स।
प्लेटफॉर्म: Linux, macOS।
डाउनलोड: GitHub पर dotbot
निष्कर्ष: सही चुनाव जब आप एक घोषणात्मक इंस्टॉल फाइल और कुछ नहीं चाहते हैं।
5. Ansible — जब कॉन्फ़िगरेशन आपकी होम निर्देशिका से आगे जाता है तो सर्वश्रेष्ठ
Ansible playbooks के एक सेट से पूरी मशीनें प्रबंधित करता है। एक व्यक्तिगत सेटअप के लिए, एक playbook पैकेज इंस्टॉल करता है, kernel पैरामीटर सेट करता है, डॉटफाइलें गिराता है, और सेवाओं को एक पास में कॉन्फ़िगर करता है। समान playbook एक लैपटॉप या homelab नोड पर चलता है।
कहाँ यह कम पड़ता है: शुद्ध डॉटफाइल समस्या के लिए अत्यधिक। Playbook रन सिमलिंक फार्म की तुलना में धीमे हैं। कुछ सौ लाइनों को पार करने के बाद YAML थकान वास्तविक है।
मूल्य: मुफ्त ओपन सोर्स। Ansible Automation Platform भुगतान की गई enterprise tier।
प्लेटफॉर्म: Linux, macOS, Windows।
डाउनलोड: Ansible
निष्कर्ष: किसी के लिए भी उपकरण जो अपने लैपटॉप और सर्वरों के लिए एक वर्कफ़्लो चाहता है।
6. Syncthing — फाइलों के लिए सर्वश्रेष्ठ, कॉन्फ़िग नहीं
Syncthing peer-to-peer फाइल सिंक है जो आपके डॉटफाइल मैनेजर के बगल में बैठना चाहिए। Git में घोषणात्मक कॉन्फ़िग रखें, लेकिन Syncthing को कुछ सौ गीगाबाइट दस्तावेज़, संगीत, और प्रोजेक्ट स्क्रैच फाइलें मशीनों में ले जाने दें बिना क्लाउड प्रदाता के।
कहाँ यह कम पड़ता है: बिल्कुल डॉटफाइल उपकरण नहीं। अपनी स्वयं की संघर्ष समाधान आदतें लाएं। एक बड़ी फाइल के प्रारंभिक सिंक जितनी लंबी होती है जितनी धीमी कड़ी की अनुमति है।
मूल्य: मुफ्त, ओपन सोर्स।
प्लेटफॉर्म: Linux, macOS, Windows।
डाउनलोड: Syncthing
निष्कर्ष: एक वास्तविक बहु-मशीन सेटअप का दूसरा आधा, जिसे अकेले आपका डॉटफाइल उपकरण प्रतिस्थापित नहीं करेगा।
7. Nix Home Manager — पूर्ण पुनरुत्पादन क्षमता के लिए सर्वश्रेष्ठ
Nix Home Manager Nix अभिव्यक्तियों में आपके संपूर्ण उपयोगकर्ता वातावरण का वर्णन करता है: पैकेज, डॉटफाइलें, सेवाएं, सब कुछ। एक ताज़ी मशीन को nix run home-manager -- switch मिलता है और flake में हर दूसरी मशीन के समान आता है।
कहाँ यह कम पड़ता है: Nix का सीखने की वक्र वास्तविक है। कुछ proprietary ऐप्स में Nix पैकेज नहीं हैं। Rollback जादू होते हैं जब वे काम करते हैं और दर्दनाक होते हैं जब एक चैनल टूट जाता है।
मूल्य: मुफ्त, ओपन सोर्स।
प्लेटफॉर्म: Linux, macOS।
डाउनलोड: Nix Home Manager
निष्कर्ष: किसी के लिए भी सही चुनाव जो सच्ची पुनरुत्पादन क्षमता के लिए Nix में आगे बढ़ने के लिए तैयार है।
सही को कैसे चुनें
- यदि आपके पास एक लैपटॉप है और फिर कभी इसके बारे में सोचना नहीं चाहते हैं: GNU Stow या yadm।
- यदि आपके पास तीन मशीनें हैं और एक काम की है: chezmoi।
- यदि आप एक घोषणात्मक बूटस्ट्रैप और कुछ नहीं चाहते हैं: dotbot।
- यदि आप पहले से ही सर्वरों पर Ansible चलाते हैं: अपने लैपटॉप के लिए एक playbook को बढ़ाएं।
- यदि आप डेटा फाइलें भी सिंक्रनाइज़ करना चाहते हैं: ऊपर की कोई भी के साथ Syncthing।
- यदि आप एक rebuild-from-config वर्कफ़्लो चाहते हैं: Nix Home Manager।
अक्सर पूछे जाने वाले प्रश्न
मैं डॉटफाइलें रेपो में गोपनीयता कहाँ संग्रहीत करूँ? कभी सादे पाठ में नहीं। chezmoi और yadm दोनों आराम पर एन्क्रिप्ट करते हैं। सादे Git रेपो के लिए, विशिष्ट फाइलों पर age या GPG का उपयोग करें, या गोपनीयता को पूरी तरह से रेपो के बाहर रखें।
क्या ये उपकरण macOS पर काम करते हैं? इस सूची में प्रत्येक उपकरण macOS को सपोर्ट करता है। Nix Home Manager और chezmoi macOS-के अनुकूल हैं।
मैं मशीन-विशिष्ट कॉन्फ़िगरेशन कैसे संभालूँ? टेम्प्लेट्स (chezmoi), alt फाइलें (yadm), शाखाएं (yadm और Stow), या Ansible में होस्ट-गार्डेड ब्लॉक। टेम्प्लेट पैटर्न दो मशीनों के बाद सबसे अच्छा स्केल करता है।
क्या मुझे अपनी डॉटफाइलें रेपो सार्वजनिक रूप से प्रतिबद्ध करनी चाहिए? केवल ऑडिट के बाद। यहां तक कि एक छोटी कॉन्फ़िगरेशन अक्सर एक ईमेल या केवल-काम उपनाम ले जाती है। निजी सुरक्षित है।
मैं फाइलों को कैसे सिंक्रनाइज़ करूँ जो लगातार बदलते हैं, जैसे ब्राउज़र बुकमार्क या shell इतिहास? Syncthing, डॉटफाइल उपकरण नहीं। संस्करण-नियंत्रित डॉटफाइलें प्रति घंटे churn का आनंद नहीं लेती हैं।
क्या Nix केवल डॉटफाइलों के लिए सीखने लायक है? केवल डॉटफाइलों के लिए, नहीं। होमलैब, dev कंटेनर और पुनरुत्पादन योग्य बिल्ड बनाने वाले किसी के लिए, हाँ।