如何删除一组不再需要的 Debian 软件包?

Bra*_*iam 7 debian package-management

在构建软件时,我有时需要安装库、二进制文件等,这些库、二进制文件等只是构建包所需的,但后来我忘记删除它们,因此我不得不一次清理多个包;甚至那些我不想删除的。

解析日志文件以找到确切的包是次优的,如果包足够旧,则是一种痛苦。有没有办法促进这项任务?

Bra*_*iam 6

我建议使用用户标签,这是 aptitude 的一个特征(apt 二进制文件没有这个)会对此有所帮助。安装包时添加安装包时的--add-user-tag选项,例如:

sudo aptitude --add-user-tag build-dep-package build-dep package
Run Code Online (Sandbox Code Playgroud)

并删除它们只需使用:

sudo aptitude remove '?user-tag(build-dep-package)'
Run Code Online (Sandbox Code Playgroud)

您还可以使用 删除标签--remove-user-tag build-dep-package

但这带来了一个问题,如果同一个包有两个标签呢?好吧,您只需使用 and/not 条件来防止这种情况发生:

sudo aptitude remove '?and(?user-tag(build-dep-package),?not(?user-tag(wanted-packages))'
Run Code Online (Sandbox Code Playgroud)

要操作具有不同标签的多个包,请使用或:

sudo aptitude remove '?or(?user-tag(build-dep-package),?user-tag(wanted-packages)'
Run Code Online (Sandbox Code Playgroud)

从长远来看,这非常有用,我还没有找到列出所有当前活动标签的方法。