在 Linux 上“实验”、更改驱动程序和软件时可以使用 Git 吗?

在 Linux 上“实验”、更改驱动程序和软件时可以使用 Git 吗?

我不知道如何在 Linux 上使用任何备份软件,但我知道 Git。我希望这不是一个愚蠢的问题,因为显而易见的答案是使用某种形式的备份软件,也许 - 但是,我对这种情况很好奇 - 以及它是否可行。

在 Linux 上试验、更改驱动程序和软件(特别是 Ubuntu 11.10)时可以使用 Git 吗?

我想知道,比如说 - 我想改变某些驱动程序,如果在对系统进行可能有害的更改之前,提交一个点来回滚到使用 Git 是否是一种简单的备份方法?

答案1

它可以/会起作用,但你必须小心,真正考虑到一切。可能更改了 init 脚本、配置文件、包管理器的状态等。如果你做了几个更改,并想恢复到更改 -5,事情很快就会变得复杂。这不仅仅是删除文件并希望获得最好的结果;所有配置和状态文件也必须恢复,也许它们是二进制格式等等。

实际上,如果你“知道自己在做什么”(tm),Linux 上就不会留下任何“垃圾”。文件包含的方式比 Windows 要好得多,并且通常按顺序排列到由包管理器跟踪的包中。如果我在基于 Debian 的系统上这样做

aptitude install gimp

,尝试一下 Gimp,然后执行

aptitude purge gimp

要删除它,除了个人配置文件之外,此过程中不应该留下任何东西。


“驱动程序”的概念与 Windows 中的不同;它通常是内核中包含的模块或单独加载的模块。后者的行为更像常规程序。


总而言之:不,我不建议使用 Git。我建议直接使用包管理器,或者如果你自己编译东西:要么使用 makefile 自己的机制来跟踪什么地方,以便以后卸载,要么使用检查安装通过包来自己跟踪变化。

当您安装个人物品时,在包管理器的知识范围之外,您通常应该能够将其包含在例如/usr/local/bin和中,/usr/local/lib而不是直接包含在/usr/bin和中/usr/lib,从而不会将随机文件传播到各处。

答案2

Git 并不适合这个,主要是因为它不能很好地处理大文件。您可以查看用于管理大文件的 git 插件,以及 etckeeper(使用 git 或其他 (D)VCS 跟踪 /etc 中的配置文件)。但是,我认为它不适合备份。

现在,我建议你研究一下 faubackup。这是一个非常简单、可靠的系统,它:

  • 将文件备份到目录,无论该目录是本地的还是远程的
  • 根据日期在该目录中创建快照
  • 仅备份快照之间发生更改的内容
  • 在保留旧备份指定的一段时间后将其删除。

您还可以查看提供快照的文件系统,例如 btrfs 和 zfs。例如,在不使用快照(或锁定数据库转储)的情况下备份不断写入的数据库是个坏消息。但是,如果您能找到存储空间,那么将数据库转储到文件并对其进行备份是最简单的。

相关内容