我对操作系统管理很陌生,所以如果您对这个问题不太了解,请多包涵。
这个想法很容易理解,本质上是保存一个包含软件包和版本的文本文件,每次更改都会创建一个新的 git 提交。如果出现问题,您可以恢复到之前的设置,apt 会处理软件包的删除/安装/版本控制以匹配之前的环境。
如果不存在,我将非常感激任何有关正确操作系统管理的建议/建议链接。谢谢!
答案1
有一些工具可以使用快照完成这项工作(不像版本控制系统):
系统备份:
具有附加功能的简单系统备份和恢复应用程序
Systemback 可以轻松创建系统和用户配置文件的备份。如果出现问题,您可以轻松恢复系统以前的状态。还有系统复制、系统安装和实时系统创建等额外功能。
安装:
sudo add-apt-repository ppa:nemh/systemback sudo apt-get update sudo apt-get install systemback
时光倒流:
Back In Time 充当“用户模式”备份系统。这意味着您只能备份/恢复您有写权限的文件夹(实际上您可以备份只读文件夹,但不能恢复它们)。
如果您想以 root 身份运行它,您需要使用“su”(命令行)、“gksu”(Gnome)或“kdesudo”(KDE)。
安装:
sudo add-apt-repository ppa:bit-team/stable
sudo apt-get update
sudo apt-get install backintime
时间移位:
TimeShift for Linux 是一款提供与 Windows 中的系统还原功能和 Mac OS 中的 Time Machine 工具类似的功能的应用程序。TimeShift 通过定期拍摄文件系统的增量快照来保护您的系统。这些快照可以稍后恢复,以使您的系统恢复到拍摄快照时的确切状态。
TimeShift 旨在仅保护系统文件和设置。用户文件(如文档、图片和音乐)不予保护。这可确保在将系统恢复到较早日期时,您的文件保持不变。如果您需要一款工具来备份您的文档和文件,请查看出色的时光倒流该应用程序具有更强的可配置性,并提供了保存用户文件的选项。
安装:
sudo apt-add-repository -y ppa:teejee2008/ppa sudo apt-get update sudo apt-get install timeshift
答案2
你可以使用钩子来易于运行脚本每次调用后apt-get/dpkg. 一个脚本,它将列出所有已安装的软件包,并在 git repo 中提交新列表
例如,在/etc/apt/apt.conf.d/99-dpkg-snapshot
DPkg::Post-Invoke {"/usr/bin/dpkg -l > /root/apt.git/dpkg-list.txt; git commit -a -m `date +%Y%m%d%H%H%S` -C /root/apt.git"; };
并创建一个git回购/root/apt.git
但即使有软件包及其版本列表,也不足以让系统恢复正常。您至少需要使用 etckeeper 等来保存 /etc。
最好使用快照就像 @muru 所说的那样。问题是文件系统和逻辑卷管理器提供文件系统快照。
您也可以使用设备映射器来完成此操作,但这并不简单。https://serverfault.com/a/481513/297044