rcm - rc-file manager: الضبط والاستخدام

الخلفية


عندما يظهر أكثر من جهاز يعمل على يديك ، فإن٪ username٪ يأتي إليك للحصول على نفس التكوين هنا وهناك وفي العمل والمنزل. عندما بدأت للتو في محاولة مزامنة الملفات ، كان Dropbox و Yandex.disk كافيين بالنسبة لي. كانت جيدة بشكل خاص في مزامنة المستندات وتاريخ الجابر ، ولكن بمجرد أن حاولت تكييفها مع .bashrc و. vimrc وما شابه ذلك ، ظهرت آثار جانبية مختلفة على الفور. على سبيل المثال ، مع الارتباطات الرمزية في كلا النظامين ، إنها كارثة كاملة ، هناك نوع من التاريخ فقط في صندوق الإسقاط ، حسنًا ، أود كتابة النصوص لإدارة حديقة الحيوان بنفسي. بالتأكيد تم كتابة شيء بالفعل ، صحيح؟


القصة


على الصفحة https://dotfiles.imtqy.com/ يمكنك رؤية أقل من مائة أداة مساعدة مختلفة ، ومكونات إضافية ونُهج لإدارة التكوينات - من برامج مخصصة إلى برامج فردية إلى برامج عالمية. أنصحك بشدة بالتعرف ، فمن الممكن أن تتوقف عن القراءة وتختار بنفسك شيئًا أكثر قبولًا.


يعود المعنى العام للفلسفة إلى حقيقة أن التهيئة في المستودع٪ your_favorit_vcs٪ في شكل معين ومن هناك تتسلل إلى $HOME . نظرًا لأن٪ default_vcs٪ هو git الآن ، فسأستخدمه أكثر.


لقد بدأت التعارف مع dotfiles-in-git باستخدام أداة مساعدة تسمى dotgit . بدأ الأمر على أنه "بسيط ومباشر في باش نقي". ولكن في اللحظة التي أضاف فيها المؤلف التشفير هناك مع القدرة على إنشاء روابط رمزية مباشرة إلى الدليل ، وحاولت معرفة كل شيء (حوالي بداية عام 2017) ، حدث خيار في ذهني في مجلد المنزل مع ارتباطات مقطوعة واستعادة يدوية للملفات من gita. بشكل عام ، تم تخصيص يوم واحد للبحث عن بدائل مع إمكانية ضبط السلوك وتكوين بسيط.


ار سي ام


لذا ، كما سبق ذكره ، هناك بالفعل العديد من الخيارات للمرافق. تم اختيار rcm للأسباب التالية:


  • ش نقية ، ولا حتى باش. لا تسحب الثعبان ولا الياقوت ، ولا شيء آخر
  • يسمح لك بتكوين سلوك تسليم التكوين
  • وجود صفحات الرجل
  • تخصيص النشر باستخدام علامة المجلدات tag-* host-*
  • دعم طويل ، تطوير مشروع حيوي
  • في وقت الاستخدام ، حتى يومنا هذا ، ليست ذات صلة ، ولكن الخطافات {pre,post}-{up,down} لتحديث ومسح ملفات التكوين مدعومة

النقطة الأكثر أهمية هي ، بالطبع ، الوثائق ، لأنه بدونها ما كنت لأذهب إلى حد تخصيص سلوك النشر بشكل كامل لنفسي.


بعد تثبيت المدير ، ستتوفر 4 أوامر:


  • lsrc - يسرد كيف سيبدو التكوين بعد rcup
  • mkrc - يضيف الملف إلى ملفات ~/.dotfiles (افتراضيًا ، يمكنك تغييره إلى ~/.rcrc ) ثم تثبيته مرة أخرى. إذا كنت بحاجة إلى سلوك غير قياسي ، فمن الأفضل أولاً تصحيح ~/.rcrc ، وإلا فقد تكون هناك تأثيرات خاصة غير متوقعة.
  • rcdn - يحذف جميع ملفات التكوين التي تتم إدارتها بواسطة rcm.
  • rcup - يقوم بتثبيت جميع الملفات. إذا كنت تستخدم الخيار -g ، فسيتم إنشاء نص برمجي -g منفصل ، والذي يمكن أيضًا وضعه في المستودع لاستخدامه على المضيفين حيث لم يتم تثبيت المدير.

على هذا النحو ، ~/.rcrc هو ببساطة جزء من البرنامج النصي shell الذي يتم تضمينه مع الأمر source كل مرة يتم فيها استدعاء أدوات rcm المساعدة. وبناءً على ذلك ، يمكن جعلها وحدات ، مع منطق داخلي. وفقًا للوثائق ، يسمح لك محتواه بالتحكم rcup في إعدادات rcup باستخدام rcup ، على سبيل المثال:


  • السلوك الافتراضي: لكل ملف داخل ~/.dotfiles يتم إنشاء ~/.dotfiles في المجلد الرئيسي بدون نقطة بداية (على سبيل المثال ، '/home/felixoid/.dotfiles/bashrc' -> '/home/felixoid/.bashrc' ، '/home/felixoid/.dotfiles/README.md' -> '/home/felixoid/.README.md' )
  • daddy ~/.vim : هو /home/felixoid/.dotfiles/vim المجلد /home/felixoid/.dotfiles/vim (الخيار SYMLINK_DIRS)
  • بابا ~/.some_secret_files : تم نسخه من /home/felixoid/.dotfiles/tag-dmz/some_secret_files (الخيار COPY_ALWAYS)
  • تم تجاهل الملف ~/.README.md بالفعل (خيار EXCLUDES)
  • الملف '/home/felixoid/.zshenv' هو '/home/felixoid/.dotfiles/tag-zsh/zshenv' إلى '/home/felixoid/.dotfiles/tag-zsh/zshenv' (معلمة TAGS)
  • ~/bin إدارة ~/bin أيضًا باستخدام rcm ، وتأتي محتوياته من /home/felixoid/.dotfiles/bin/ (معلمة UNDOTTED)

في بعض الأحيان قد يكون من الضروري ذكر نفس الملف في عدة خيارات. على سبيل المثال ، يجب أن يبدو مقتطف .rcrc هكذا إذا كان يجب أن تكون جميع محتويات ~/bin في ~/.dotfiles/tag-bins/bin ويتم نسخها كما هي:


 COPY_ALWAYS="bin/*" TAGS="bins" UNDOTTED="bin" 

في الواقع ، يوجد مثال لكيفية تنظيم محتويات المجلد ~/.dotfiles في المستودع الذي يحتوي على ملفات نقطية. توجد معلومات شاملة في الوثائق ، لا تتردد في قراءة صفحات الدليل التالية: lsrc (1) ، mkrc (1) ، rcrc (5) rcdn (1) ، rcm (7) ، rcup (1).


لا توصف ولا توصف


بينما كنت أكتب هذا النص ، جاءتني أفكار جيدة حول كيفية تنظيم تخزين البيانات الحساسة داخل مستودع عام. على سبيل المثال ، كنت دائمًا قلقًا بشأن السؤال: هل هذا منطقي وهل من الممكن نسخ مفاتيح gpg و ssh احتياطيًا؟ لهذا فقط ، يمكن أن تكون الخطافات في متناول اليد: حزمها في القطران ، ثم التشفير بنفس gpg المتماثل ، متبوعًا بالتفريغ. ربما سأكرس الملاحظة التالية لهذا بعد التنفيذ. أو ربما هذه دراجة أخرى؟ وكل شيء تم اختراعه بالفعل؟ أضف التعليقات إذا كان هذا هو الحال بالفعل.


آمل حقًا أن تثير هذه المواد الاهتمام والرغبة في محاولة تنظيم إدارة التكوينات في الوضع شبه التلقائي!


ومسح صغير:

Source: https://habr.com/ru/post/ar419281/


All Articles