我有一台机器需要有两种需要维护的配置(该机器偶尔会在两个环境之间移动,并且在每个环境中具有不同的角色)。
注意:这不是企业环境,而是家庭环境。
我正在考虑使用 VCS(我喜欢git
),可能使用etckeeper
.然而,我意识到我的工具箱是有限的,而且我的 VCS 锤子可能会导致这个问题被识别为钉子,而实际上它可以更好地识别为其他东西。
这是解决问题的正确方法吗?
答案1
您有多种选择来解决您的问题:
- 使用 VCS 并确保文件的权限和所有权信息也被跟踪
- 使用 KVM 实例作为您的第二个环境,即如果您有足够的硬盘空间,您可以在那里安装第二个 Linux 实例
- 设置双引导配置,以便在分区 X 上为第一个环境安装 Linux 系统,在分区 Y 上为第二个环境安装 Linux 系统
您的选择取决于品味,并且取决于您环境的细节。也许您的 CPU 不支持虚拟化、空间存在问题或者您不想在移动到另一个环境时重新启动计算机。
答案2
你可以看看交换机配置它是专门为处理多个 /etc 配置并在需要时从一种配置切换到另一种配置而设计的。
您必须在/etc/switchconf
目录中创建 2 个配置,我们将它们称为entreprise
和home
。在每个目录中,您必须创建需要更改配置文件的 etc 子目录,并将其存储到文件中,例如:
/etc/switchconf/enterprise/etc/network/interface # in which you store your enterprise network interface configuration
/etc/switchconf/home/etc/network/interface # in which you store your home network interface configuration
如果您需要在切换配置之前或之后执行一些脚本,可以将它们存储在/etc/switchconf/before.d
和中/etc/switchconf/after.d
。
最后,要从一种配置切换到另一种配置,只需启动switchconf enterprise
以使用企业配置或switchconf home
使用家庭配置即可。
答案3
对于需要在环境之间移动的计算机,我会尝试使用一组文件/etc
,并使用 shell 脚本动态设置尽可能多的更改配置。例如,网络配置可能不同,因此使用mapping
指令/etc/network/interfaces
或脚本中的条件句/etc/network/if-up.d
和兄弟姐妹。
如果某些静态文件需要更改,请将两套保留在两个不同的目录中,例如
/etc/configuration/work/xorg.conf
/etc/configuration/home/xorg.conf
/etc/configurations/current -> work
/etc/X11/xorg.conf -> /etc/configurations/current/xorg.conf
这样,您可以通过更改/etc/configurations/current
符号链接并重新启动受影响的服务来在配置之间切换。
您也许能够利用某些子系统中已经存在的机制,例如 PCMCIA 方案。