我想列出所有已安装的非传递包,我该怎么做?

我想列出所有已安装的非传递包,我该怎么做?

在 apt/aptitude 中,许多软件包不应手动安装,因为它们会破坏系统进一步升级的能力并导致冲突。这些软件包被视为“过渡软件包”,只有当另一个依赖于它们的软件包安装时才会安装。

我想查看已安装软件包的列表,但不包括所有这些过渡软件包。我该怎么做?

答案1

Apt 的设计使得您不需要每个(非传递)包的列表。

对于具有相同应用程序的不同安装,您只需要依赖链中顶级软件包的一小部分列表——非依赖的软件包。大多数用户发现这个小得多的列表更易于管理。

以 22.10 桌面为例,实现此目的的一种相当简单的方法:

  1. 列出 apt-marked 手册的软件包集。
sudo apt-mark listmanual > listmanual
  1. 列出 Ubuntu 原厂安装中包含的软件包集。使用 Awk 删除附加字段并仅保留软件包名称。
wget -O - http://releases.ubuntu.com/releases/22.10/ubuntu-22.10-desktop-amd64.manifest | awk '{print $1}' > manifest
  1. 从 #1 中删除 #2 中的所有包。
comm -2 -3 manual manifest
  1. 检查comm输出,输出内容应足够简短以便于管理。不要包含随机库、依赖项、元包、不再使用的应用程序、旧错误和其他明显不需要的内容。

您最终审查的软件包列表是您想要在新安装的系统上安装的软件包。

相关内容