如何删除在特定日期/时间之后安装的所有软件包?

如何删除在特定日期/时间之后安装的所有软件包?

11 月 9 日,我尝试安装 BasKet Note Pads 的最新稳定版本,但显然它并不立即得到支持,因为它需要移植到 QT4 和 KDE 4,不管这意味着什么。该程序已移植,但截至 2010 年,它仍处于测试阶段,这意味着它基本上存在缺陷,缺乏我需要的功能。

因此,我尝试安装 BasKet v1.x,它需要 QT3 和一堆我不太了解的其他东西。我尝试安装它们,结果占满了我 15 GB 硬盘的 20%。当然,我从未让 BasKet 工作过,但我安装的软件包仍然存在,现在我需要有效地卸载当天安装的所有内容。

是否有命令可以卸载在某个日期(在我的情况下是 11 月 9 日)安装的所有软件包?

答案1

具体日期%yyyy-%mm-%dd替换在这里,

grep "2015-12-19.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1

你会得到一个包裹清单,

libck-connector0
libgssrpc4
libkadm5clnt-mit9
libkdb5-7
libkadm5srv-mit9
libgnutlsxx27
....
....

将它们附加到 Apt 命令参数列表中xargs

grep "2015-12-19.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1 | xargs sudo apt-get --yes purge

答案2

如果您知道安装这些软件包的日期,我发现自动删除它们的最佳方法是使用以下命令:

grep "2015-12-19.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1 

上面的命令将列出在命令中日期安装的所有软件包。最终的命令是:

grep "2015-12-19.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1 | sudo apt-get remove -y

根据您的需要替换日期,就可以开始了!

答案3

你可以通过执行以下操作按时间顺序查看已安装的软件包:

grep install /var/log/dpkg.log

(最后的条目将是最新的)

在左侧,您可以找到安装日期和时间。

选择要卸载的内容并执行

sudo apt-get remove package-name

此外,由于您的硬盘较小,我建议从磁盘中删除用于安装程序的 Deb 包:

sudo apt-get clean

这将从中删除 deb 文件/var/cache/apt/archives/

相关内容