理想情况下,我想要一些东西:
- 允许我写一个安装一个包或一组包的原因。
- 跟踪已安装的软件包对我的系统所做的所有更改。我想查看 /etc 文件修改、用户和组更改以及整体文件更改。我忘记了任何重要的事情。:-)
- 允许我写下删除一个包或一组包的原因。
- 允许我修改我稍后给出的原因。我可能一开始就安装了一个包,只是因为我想检查一下。然后我可能会发现它真的很有用,并且有充分的理由保留它。由于原因是文档而不是日记,我想将最初的原因“只是测试它”更改为“安装,因为它使用最小和快速的实现提供服务 x、y、z”。
- 允许我(手动)包括我需要执行的手动步骤。就像更改文件的内容和权限一样,删除该文件并创建该文件。基本上记录我执行的命令以及一些文档注释。并将它们绑定到我安装/删除的包,这导致这些手动步骤是必要的。
- 我可以从中获得输出,基本上是关于如何在新安装的机器上复制我的系统的描述。这意味着仅显示与全新安装不同的已安装/已删除软件包及其描述(仍按顺序显示,因为软件包可能相互依赖)。
问题
- 这听起来像是一个很好的文档系统吗?为什么?为什么不?有什么可以改进的?
- 那里已经有类似的东西了吗?
- 是否有可能连接到 APT 系统以获得必要的控制级别来创建这样的东西?关于如何做的任何提示?
- 你对如何实施这样的事情有什么建议吗?
如果这样的东西还没有出现,我可能会尝试自己创造一些东西。
您正在做的一些事情似乎可以通过使用配置管理系统(如puppet)和更改控制系统(如 subversion)的组合来涵盖。
当您添加、删除、修改包时,您通过 puppet 系统进行操作;然后您检查您的配置更改,并记录更改的内容和原因。
这不仅可以让您重现系统,还可以让您在任何时间点重现它。您不仅可以控制包文件,还可以控制它;您可以控制系统中的所有配置文件。
虽然我自己是 Puppet 的粉丝(好吧,从技术上讲,我喜欢 Puppet 的想法并且讨厌实现,但那是另一回事),并且建议一般来说,你可以或多或少地生产你想要的东西想要一些脚本——apt 功能强大到足以做到这一点。此外,该
etckeeper
软件包为您执行“配置更改跟踪”位,并将提供一个示例,说明如何挂钩 apt 以执行您想要的操作。我
etckeeper
在我的工作站上使用它只是为了了解发生了什么变化以及何时发生变化,但我永远不会认为它可以替代生产系统上的真实配置管理系统。它只是不(不能!)跟踪足够的系统状态以使其成为可行的替代方案。