如何删除特定日期后安装的所有更新?

如何删除特定日期后安装的所有更新?

我允许更新管理器安装 200 Mib 的更新,我认为这些更新会使我的显卡驱动程序出现问题。因此,我需要一种方法来删除自 2012 年 5 月 30 日(或任何其他日期)以来安装的更新。如果我必须手动删除它们(在逐个卸载它们的情况下),请您告诉我如何操作。

答案1

还有另一种命令行方法来获取安装历史记录。

软件包管理器apt似乎将所有内容记录在/var/log/apt/history.log和中/var/log/apt/term.log,包括用日期戳分隔所有内容。两者都包含类似的可用信息,但term.log都更为冗长,并且没有明确指出是什么启动了操作。

历史记录

/var/log/apt/history.log存储每次运行的简明摘要apt。以下是我的手动安装的片段:

Start-Date: 2014-08-22  17:17:52
Commandline: apt-get install nautilus-dropbox
Install: nautilus-dropbox:amd64 (1.6.1-1), python-gpgme:amd64 (0.3-0ubuntu3, automatic)
End-Date: 2014-08-22  17:19:13

Commandline:字段指示触发运行的原因,对于由更新管理器进行安装的情况,它应该如下所示:

Commandline: aptdaemon role='role-commit-packages' sender=':1.131'

...这是您的软件包列表,按日期、方法和操作(安装/升级/删除)排序。请注意,如果您想将这些软件包传回apt-get remove ...

  • 作为提及, 这彻底删除软件包而不是恢复它们。日志中的信息当然可以用来查看升级的软件包,但将它们回滚又是另一回事。
  • 您需要通过您喜欢的文本操作方法(例如 等)从列表中删除括号、其内容和逗号分隔符sedvim因此,如果我想删除上面代码片段中的包,我可以相对直接地使用以下行:

    sudo apt-get remove nautilus-dropbox:amd64 python-gpgme:amd64
    

终端日志

通常/var/log/apt/term.log结构不太方便,但为了完整起见,您可以获得相同的信息。终端输出再次由时间戳分隔,并且可以从以下形式的行中获取软件包安装:

Selecting previously unselected package nautilus-dropbox.

以下是将已安装软件包的列表打印到整个日志的终端的一种方法:

$ awk '/^Selecting/ {gsub(/\./,""); print $5}' /var/log/apt/term.log

这可以进行调整或扩展以获得某个日期范围内的安装。

答案2

笔记: 与 Windows 不同,在 Ubuntu 中删除更新通常会卸载该计划/程序将不是只需将其恢复(或降级)为以前的版本即可。

您可以打开 Ubuntu 软件中心,然后单击历史记录

在此处输入图片描述

完成后,单击“更新”,系统将显示已安装的所有更新。找到需要删除的更新后,您需要手动删除。

在此处输入图片描述

要删除,您可以使用 Synaptic 包管理器。如果您尚未安装,可以从以下位置安装

相关内容