有哪些解决方案可以在多台机器上管理您的 $HOME 配置文件(.profile、.gdbrc、.vimrc 等)的同步,这些机器不一定是相同的 distrib/OS(Debian、RedHat、BSD、MacOS 等),不一定是相同版本的 distribs(稳定版、旧稳定版等),甚至没有安装相同的软件包/工具?
一些文件可以在脚本本身内测试其所在的当前操作系统(即:像 .profile 这样的 shell 脚本),但许多文件不能。
其他文件(例如“.forward”)将依赖于主机名/网络。
我已经研究过使用 puppet 来执行此操作,但是 puppet 并未在所有地方安装。
我已经考虑使用 m4 的一些配置/制作脚本来根据可用的分布和包生成正确的配置文件。
虽然这是一个主观问题,但我想知道您如何解决这个问题。
答案1
我dot_file
在 NAS 上有一个裸 GIT 存储库,我将它克隆到我的主目录下,并将其中的所有文件符号链接到主目录中,如下所示:
.vimrc -> dot_files/.vimrc
我有每个发行版/版本的 GIT 分支,我只需要将 repo 切换到适当的分支。
获取分支的 repo 内容可以手动完成,也可以使用您提到的工具。我个人选择手动方法。一旦分支在一台机器上更新,我就会将其推送回裸仓库,然后在其他机器上将其拉出。
不过,它没有解决每个主机名/网络方面的问题。但你总是可以用不同的方法处理一些点文件。
答案2
我使用 DropBox 来实现这一点,并链接到我的主目录。我使用 DropBox 而不是 git(或任何 repo)的原因是我不想推送/拉取更改。我只需更新,.somefile
它们就会自动推送到所有机器。
当然,我通常会保持脚本简单并且不进行大量特定于操作系统的配置。