我如何卸载今天安装的所有软件包?

我如何卸载今天安装的所有软件包?

今天我试图将 musepack 编码器支持内置到 ffmpeg 中,无意中破坏了一些东西,但我不确定到底是哪个包破坏了它们。我该如何删除今天安装的所有包,然后更小心地从头开始?

我可以在“历史记录”中今天的日期下的“Ubuntu 软件中心”中看到它们的列表,但我不想一个一个地卸载它们,因为有数百个要做。

答案1

grep -e `date +%Y-%m-%d` /var/log/dpkg.log | awk '/install / {print $4}' | uniq | xargs apt-get -y remove

发现于命令行对我来说很好

答案2

该文件/var/log/apt/history.log包含您所需的内容。看一下答案:如何一次重新安装许多已删除的软件包?这是一个更详细的答案。

答案3

免责声明:Nala 仍处于开发阶段,不建议用于任何专业用途。

对于apt

如果您准备使用命令行来安装新软件包,则可以使用更现代的apt前端轻松获得撤消功能nala(对于 22.04,您必须启用“universe”存储库)。注意:这仅适用于apt/.deb包。

sudo apt install nala

从此时起,使用nala以下命令在您的系统上安装新软件包:

sudo nala install <package-name>

将安全更新等留给unattended-upgrades包。

现在,当您运行命令时nala history,您将获得使用 nala 运行的命令列表,包括已安装的软件包。要仅过滤新安装,请使用:

nala history | grep install

历史记录功能的另一个好处是,您可以撤消历史记录中的任何步骤,这样您就可以轻松地撤消软件包的安装程序。这可以通过发出以下命令来完成:

sudo nala history undo <ID>

<ID>您要撤消的交易在历史列表中的 ID 号在哪里?

对于snap

Snap 有自己的“撤消”功能,您可以轻松恢复到之前安装的版本。具体操作如下:

sudo snap revert <package-name>

如果您想恢复到 snap 包的特定修订版本,也可以这样说;

sudo snap revert <package-name> --revision <rev ID>

对于快照,也看这里

相关内容