我正在寻找一种管理多个系统设置的方法。举个例子,如果我开始处理一个项目,我可能需要安装一些软件及其依赖项。我希望当我完成这个项目时能够将系统恢复到之前的状态。
我的理想情况就像拥有 git 但适用于整个系统,从而能够创建分支、实验并恢复到任何时间点。
有办法实现这一点吗?我考虑过使用 LVM 快照,这是一个好主意吗?
答案1
TL;DR 使用虚拟盒快照。
虚拟机快照最常用于此类需求。主要原因是简单,最坏的情况是将所有数据根可以写入的数据清零。如果您拥有具有 12+GB RAM 和 8TB 磁盘空间的现代开发盒,您可以同时运行 5-10 个测试环境并存储 800 个快照,这已经足够了。
另一方面,如果测试相对温和,常见的选择是仅保留操作日志 ( apt install x y z && mkdir project0
) 并撤消它们 ( apt purge x y z && rm -r project0
),或者如果它们不干扰其他项目,则将其保留。
brtfs 是一个有趣的选择,因为它可以有效地向备份服务器提供快照差异,缺点是它稍微复杂一点,而且稳定性差得多。
还有许多其他选项( git/lvm/rsync/rdiffbackup/zfs/容器/etc ),但也有缺点(例如额外的时间/空间或不太健壮)。归根结底,高质量的开发人员时间是最受追捧的商品,因此您花在规划和环境设置上的时间越少,您就必须有更多的时间来提高工作效率。因此,从两个简单选项之一开始,只有当您发现浪费时间时,才探索更复杂的解决方案。