关于在 VCS 中存储 /etc 的建议?

Kyl*_*ton 6 vcs

用于跟踪 /etc 的最简单的 VCS 是什么?在版本控制中存储 etc 目录有哪些挑战,最佳实践?我应该使用集中式还是分布式 VCS?

Gen*_*mer 12

您可以使用etckeeper来处理它,这将允许您将 git、mercurial、darcs 或 bzr 用于存储库。


jld*_*ger 6

使用etckeeper为您完成。这有很多原因:

  • 您有时会忘记使用 VCS;etckeeper 挂钩到包管理器,为您提供 pre-inst 和 post-inst 状态以回滚到
  • 你会搞砸文件权限
  • 你会搞砸处理 shadow passwd 文件


jed*_*erg 4

我发现 git 最适合这项工作(尽管 Mercurial 可能也同样有效)。在 /etc 中执行一个简单的“git init”,就可以了。之后,只需添加您关心的文件,然后每当它们发生更改时,您都可以将其签入。您甚至可以设置 cron 以便在每次发生更改时自动签入(尽管这样您就不会收到日志)文件)。如果您想设置第二台机器,其配置与第一台机器相同,或者只是作为备份,您也可以推送该存储库。

当我开始系统管理时,rcs 是 /etc 的选择方法。然后是 CVS,然后是 SVN。我怀疑当有新的事情出现时,我会转向它。:) 但随着 VCS 中的每一个新范例,我的生活实际上变得更加轻松。