我现在正在尝试更深入地学习 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
这篇关于 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 时都会生成快照,因此您可以在安装或卸载软件后随时恢复。
答案2
鉴于您问题的措辞,我不确定您是否实际上要求提供比这更详细的信息,但我只是告诉您我所知道的信息。
如果你去你的Ubuntu 软件中心然后点击“历史记录”图标,你应该能看到你正在寻找的所有内容。如果你在那里找不到某些内容,我非常想知道它是什么。