我正在考虑将配置文件硬链接到我的 SVN 配置存储库的工作副本中。有什么理由不以这种方式管理配置文件?
假设 /home/user/confmgr/confs 是我的配置存储库的工作副本。然后我可以硬链接配置文件如下 -
ln /etc/php.ini /home/user/confmgr/confs/php.ini
ln /etc/httpd/conf/httpd.conf /home/user/confmgr/confs/httpd.conf
然后当我需要编辑配置文件时,就这么简单
cd /home/user/confmgr/confs
vi httpd.conf
/sbin/service httpd configtest
/sbin/service httpd graceful
svn commit -m 'adding virtual host to httpd.conf for new project'
一些几乎相反顺序的观察:
svn up
是实时使用的工作副本。我不会把它们放在 /home
将配置文件放在根文件系统中的某个位置。
这是因为 / 是在其他文件系统之前安装的,并且它可能需要位于尚未安装的文件系统上的配置文件。
我也会使用符号链接而不是硬链接。不允许跨文件系统硬链接 (iirc),当您从 SVN 签出更新文件(更改 inode)时,您可能会收到损坏的链接。
您需要非常小心,但我看不出您无法使用此配置运行的原因。
etc-keeper对您来说可能是一个很好的参考设计:
它将 repo 存储在 /etc/.$RCS 中,但它不支持 SVN。我不知道为什么;作者只是说他试过了,很糟糕。本质上,这种方法使 /etc成为工作副本。