如何检测自默认安装或时间点以来所做的所有更改?

如何检测自默认安装或时间点以来所做的所有更改?

我现在正在尝试更深入地学习 Ubuntu(以及一般的 Linux),但在跟踪变化方面却遇到了噩梦——尤其是包管理系统。

有没有什么(相对简单的)方法可以对文件系统进行快照,然后在以后比较自初始快照以来所做的所有更改?

或者,如果不是文件系统,您能推荐任何可以帮助我实现这一点的技术或程序吗?

请注意,我正在寻找可以帮助我更深入地了解系统并了解更多信息的答案,而不是寻找如何修复/卸载。我经常使用虚拟化,如果需要,可以轻松回滚。


如果有人感兴趣我为什么要问这个问题或者是否有其他人想了解......

我安装了 Ubuntu Server,一切都运行良好——然后我想尝试安装和学习 X 以及不同 shell 的工作方式,因此,我输入了apt-get install kde,尽管我后来这样做了apt-get autoremove kde,但似乎仍然安装了数百个不再需要或没有被删除的软件包。

抛开软件包不谈,已经发生了更大的系统级变化,例如系统在启动时调用startx(我猜),但是,没有KDE,它就会冻结...我设法通过向grub添加“文本”选项来修复它,但是,考虑到没有X的Ubuntu的默认安装没有这个,我觉得我作弊了,我想知道如何/在哪里调用X。

答案1

对于快照:

您可以使用 snapper 或 backintime-common。以下是安装这两个工具的方法:

sudo apt-get update
sudo apt-get install snapper backintime-common

关于 snapper 的更多信息可以在这里找到

有关 backintime 的更多信息可以在这里找到

这篇关于 backintime 的 ubuntugeek 文章


要检查你的 dpkg 日志:

您的系统更改(例如所有软件包更改更新和已安装/卸载的软件包)都列在 /var/log/dpkg.log 中。打开终端并执行以下命令查看此处的内容:

首先,创建一个工作目录:

mkdir ~/dpkg

更改当前目录:

cd ~/dpkg

将 dpkg 日志文件复制到新目录中:

sudo cp /var/log/dpkg.log* ~/dpkg

将文件的所有者更改为您的用户名:

sudo chown -R $USER:$USER ~/dpkg

解压压缩的日志文件(如果有)。顺便说一句,它可能会显示“未知后缀--忽略”,这没关系:

gunzip dpkg.log.*

列出目录中的文件

ls

最新的条目可以在 dpkg.log 中找到,最旧的条目可以在文件名末尾具有最大数字的文件中找到(例如 dpkg.log.2 或 dpkg.log.3 等等)。

要读取最新的更改(文件 dpkg.log):

less dpkg.log

或者,从任何目录:

less ~/dpkg/dpkg.log

以读取 dpkg.log.2 为例:

less dpkg.log.2

等等。按q退出文件。

大多数其他日志文件也可以在 /var/log 中找到。要列出 /var/log 的内容:

ls /var/log

或者,您可以在 btrfs 分区上安装 ubuntu,而不是使用默认的 ext4 文件系统。与 Windows(只能安装在 NTFS 上)不同,Ubuntu 可以安装在许多不同类型的文件系统上。默认是 ext4,如果我没记错的话,还有 ext3、ext2、btrfs 和其他几个可用文件系统。您可能有兴趣在将来的 ubuntu 安装中使用它。

如果您使用 btrfs 分区而不是 ext4 文件系统安装 ubuntu,则可以在安装操作系统后安装这些有用的工具:

sudo apt-get install btrfs-tools* apt-btrfs-snapshot

每次使用 apt-get 时都会生成快照,因此您可以在安装或卸载软件后随时恢复。

官方 ubuntu 文档可以在这里找到

内核 3.15 上的 btrfs 与 ext4 的基准测试可以在这里找到(不是针对 ubuntu 的)

答案2

鉴于您问题的措辞,我不确定您是否实际上要求提供比这更详细的信息,但我只是告诉您我所知道的信息。

如果你去你的Ubuntu 软件中心然后点击“历史记录”图标,你应该能看到你正在寻找的所有内容。如果你在那里找不到某些内容,我非常想知道它是什么。

相关内容