RCM-RC文件管理器:调整和使用

背景知识


当您的手中出现多个工作设备时,%username%会出现在您那里,在这里,在办公室和在家中都具有相同的配置。 当我刚开始尝试同步文件时,Dropbox和Yandex.disk对我来说就足够了。 它们特别擅长同步文档和Jabber历史记录,但是当我尝试将它们调整为.bashrc,.vimrc等时,各种副作用立即出现。 例如,在两个系统中都有符号链接,这是一场彻底的灾难,±仅在保管箱中有某种历史记录,嗯,我必须编写脚本来亲自管理动物园。 当然已经写了一些东西, 对不对


故事


https://dotfiles.imtqy.com/页面上, 您可以看到不到一百种不同的实用程序,插件和管理配置的方法-从量身定制的单个程序到通用程序。 我强烈建议您结识,很可能您停止进一步阅读并开始选择更容易接受的东西。


哲学的一般含义归结为以下事实:配置以某种形式位于存储库%your_favorit_vcs%中,然后从该位置爬入$HOME 。 由于%default_vcs%现在是git,我将进一步使用它。


我通过一个叫做dotgit的实用程序开始了dotfiles-in-git的认识 。 它起初是“纯bash中简单明了”。 但是,当作者在此处添加加密并能够直接建立目录符号链接的那一刻起,我试图弄清所有问题(在2017年初左右)时,我的大脑出现了问题,我的主文件夹出现了链接断开和手动从gita中恢复文件的情况。 通常,分配一天的时间来搜索可能具有调整行为和简单配置的替代方案。


厘米


因此,正如已经提到的,实用程序确实有很多选择。 选择rcm的原因如下:


  • 纯净的什至没有重击。 它既不拉蟒蛇也不拉红宝石,仅此而已
  • 允许您配置配置传递行为
  • 手册页的存在
  • 使用文件夹tag-*host-* tag-*定制部署
  • 长期支持,活跃的开发项目
  • 在使用时,到目前为止,它并不重要,但是支持用于更新和清除配置文件的{pre,post}-{up,down}挂钩。

当然,最重要的一点是文档,因为没有它,我将无法为自己完全自定义部署行为。


安装管理器后,将有4个命令可用:


  • lsrc-列出rcup之后的rcup
  • mkrc-将文件添加到~/.dotfiles (默认情况下,您可以将其更改为~/.rcrc ),然后重新安装。 如果需要非标准行为,最好先更正~/.rcrc ,否则可能会产生意想不到的特殊效果。
  • rcdn-删除rcm管理的所有配置文件。
  • rcup-安装所有文件。 如果使用-g选项,将生成一个单独的shell脚本,也可以将其放入存储库中,以在未安装管理器的主机上使用。

这样, ~/.rcrc只是shell脚本的一部分,每次调用rcm实用程序时,该脚本便包含在source命令中。 基于此,可以使用内置逻辑将其模块化。 根据文档,其内容使您可以使用rcup精细控制点文件的设置,例如:


  • 默认行为:对于~/.dotfiles每个文件,都会在起始文件夹中创建符号链接,而没有起点(例如, '/home/felixoid/.dotfiles/README.md' -> '/home/felixoid/.README.md' '/home/felixoid/.dotfiles/bashrc' -> '/home/felixoid/.bashrc' '/home/felixoid/.dotfiles/README.md' -> '/home/felixoid/.README.md' '/home/felixoid/.dotfiles/bashrc' -> '/home/felixoid/.bashrc' '/home/felixoid/.dotfiles/README.md' -> '/home/felixoid/.README.md' '/home/felixoid/.dotfiles/bashrc' -> '/home/felixoid/.bashrc' '/home/felixoid/.dotfiles/README.md' -> '/home/felixoid/.README.md' '/home/felixoid/.dotfiles/bashrc' -> '/home/felixoid/.bashrc' '/home/felixoid/.dotfiles/README.md' -> '/home/felixoid/.README.md' '/home/felixoid/.dotfiles/bashrc' -> '/home/felixoid/.bashrc''/home/felixoid/.dotfiles/README.md' -> '/home/felixoid/.README.md'
  • 爸爸~/.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'的符号链接(TAGS参数)
  • ~/bin也由rcm管理,其内容来自/home/felixoid/.dotfiles/bin/(UNDOTTED参数)

有时可能需要在多个选项中提及同一文件。 例如,如果~/bin所有内容都应放在~/.dotfiles/tag-bins/bin并按原样复制,则.rcrc代码段应如下所示:


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

实际上,如何组织~/.dotfiles文件夹的内容的~/.dotfiles在带有dotfiles的存储库中 。 文档中包含全面的信息,请随时阅读以下手册页:lsrc(1),mkrc(1),rcrc(5)rcdn(1),rcm(7),rcup(1)。


不为人知和不为人知


当我输入此文本时,关于如何在公共存储库中组织敏感数据的存储的好主意传给我。 例如,我一直很担心这个问题:这是否有意义,是否可以备份gpg和ssh密钥? 为此,可以使用钩子:将它们包装在tar中,然后使用相同的对称gpg进行加密,然后再拆包。 实施后,也许我将在此方面投入以下注意事项。 也许这是另一辆自行车? 一切都已经被发明了吗? 如果确实如此,请添加注释。


我真的希望这种材料能引起人们的兴趣和渴望,以半自动模式来组织配置管理!


和一个小调查:

Source: https://habr.com/ru/post/zh-CN419281/


All Articles