如何让 $HOME/etc/ 中的配置文件覆盖 /etc/ 中的配置文件

如何让 $HOME/etc/ 中的配置文件覆盖 /etc/ 中的配置文件

我最近弄坏了我的家庭服务器,现在正在寻找一种更有效的方法来做事情。我想/etc在我的/home/webserver目录中使用。这将覆盖普通/etc/文件。

例如:/home/webserver/etc/mysql/my.cnf将覆盖/etc/mysql/my.cnf。或者,如果我创建一个文件~/etc/nanorc,它将覆盖/etc/nanorc等等。

我该如何在 Debian 最新发行版下做到这一点?

答案1

这取决于执行配置处理的程序。例如,git依次在多个目录中查找配置数据,使用第一个找到的文件。其他程序可能只使用按某种顺序找到的第一个文件,其他程序则只使用通用配置。

你可以用它玩游戏chroot,也可以在里面安装自己的游戏etc,但那将以让我不寒而栗的混乱告终。

慎重考虑为什么每个程序都使用其特定的配置机制(不,这不是随机的;每个程序都经过了长时间、详细的考虑),并了解如何使用让它对你有利,而不是试图解决它。

答案2

最后,似乎没有“神奇”的解决方案(自动覆盖)。所以我设置了指向我手动修改的文件的符号链接(即 /etc/mysql/my.cnf ==指向==> ~/etc/mysql/my.cnf)。

例如,Apache2 将递归查找 conf 目录,这使得使用目录的符号链接成为可能。这种方式不需要为每个文件创建一个链接。

相关内容