如何为 Linux 实现类似“Git”的更新管理?

Pat*_*ela 14 linux backup package-management system-restore updates

我想以与Git类似的方式管理我的 Linux 系统的更新,通过能够在“修订”中来回移动。我怎么能那样做?

Nif*_*fle 12

您可能正在寻找的称为配置管理工具。有几种可供选择,但在任何情况下哪一种最好是非常主观的。

我个人发现Puppet很容易上手,但其他流行的选择是SaltAnsible

  • 配置管理工具通常不提供“回滚”功能。“回滚”正在吹走系统并使用配置管理工具重新配置系统。例如,您可以使用像 Razor 这样的裸机配置工具来格式化和重新安装操作系统。然后,它交给像 Chef 这样的工具来应用配置。 (4认同)
  • 女巫是故意的吗?:) (2认同)

小智 12

您可能应该看看NixOS,它使用Nix 包管理器

NixOS 是一个 GNU/Linux 发行版,旨在提高系统配置管理的最新水平。在现有的发行版中,诸如升级之类的操作是危险的:升级一个包会导致其他包损坏,升级整个系统比从头重新安装更不可靠,您无法安全地测试配置更改的结果,您无法轻松撤消对系统的更改,等等。


ebr*_*ous 10

这对于您的问题来说可能有点矫枉过正,但能够恢复系统级/大规模更改的最简单方法是快照:

https://en.wikipedia.org/wiki/Snapshot_%28computer_storage%29

您还没有提到您的装备的具体细节,但是看到您熟悉 git,想象您可能对使用更复杂的文件系统感兴趣并不会太过分。如果您要使用下一代文件系统(忽略 click-bait-y 名称),您只需在终端中输入一个命令,就可以完全“倒带”整个系统。所做的任何和所有更改都将在几乎没有延迟/努力的情况下恢复。ZFS 将是您最好的选择,您可以参考这篇令人惊叹的 Ars 文章,看看它是否对您有价值(还有许多其他很棒的功能):

http://arstechnica.com/information-technology/2014/02/ars-walkthrough-using-the-zfs-next-gen-filesystem-on-linux/

  • 另一种选择是 btrfs,BTW 有官方的企业支持,包括 Ubuntu、SUSE >= 11、Oracle。虽然它仍在开发中,等等,但它对于日常桌面使用来说是可靠的,并且表现得非常好。 (2认同)

Chr*_*ess 6

根据您所说的“更新”的含义,您可能对etckeeper等配置管理工具感兴趣,它允许您自动记录对系统配置的更改,并恢复到较早的配置。

如果 Git 是一个熟悉的工具,并且如果“更新”是指“更新系统配置”而不是“更新系统包”或“更新存储在服务器上的所有文件”,那么这可能就是您正在寻找的为了。

值得考虑的是,无论您使用的是 Puppet、Ansible、Etckeeper 等工具,并不总是可以在不丢失数据的情况下干净利落地“回滚”,除非您全力以赴(例如快照,如另一个答案中所述)。正确的方法取决于您的情况(例如,快照不适用于在回滚时可能会丢失客户订单的生产系统)。