列出 Debian 11 上所有已安装的软件包
本教程介绍如何使用不同的可用技术列出 Debian 11 Bullseye、以前和未来版本上所有已安装的软件包。它也适用于基于 Debian 的 Linux 发行版,例如 Ubuntu。
通过阅读本教程,您不仅会获得列出已安装软件包的简单说明。您还将更加熟悉不同的包管理器及其管理包的命令。
本教程中描述的所有说明均包含屏幕截图,以便所有 Linux 用户轻松理解和遵循。
Debian 软件包管理器简介
在展示列出 Debian 上所有软件包的实用技术之前,我们先向您介绍一下每个软件包。
dpkg 软件包管理器是所有软件包管理器的 Debian 基础。其他已知的替代方案如 apt 或 apt-get 是 dpkg 的前端,而 aptitude 是 apt 的前端。
apt 和 apt-get 前端比 dpkg 具有重要优势:
他们可以解决依赖关系。
他们可以使用简单的命令从互联网安装软件包。
它们不仅可以提供本地文件的信息,还可以提供远程文件的信息。
aptitude 前端甚至更好,包括以下功能:
它可以比 apt 更好地解决依赖关系。
它告知软件包的安装方式(手动或自动)。
它显示系统中的包更改。
它提供命令行和基于 ncurses 的交互式界面。
使用 dpkg/dpkg-query 列出 Debian 11 上所有已安装的软件包
本教程的部分介绍了如何使用 dpkg 和 dpkg-query 工具列出 Debian 上已安装的软件包。
本文中教授的第一个命令将使用 dpkg 显示 Debian 11 系统中所有已安装软件包的完整列表。
为此,只需运行 dpkg ,然后运行 -l (列表)标志,如屏幕截图所示以下。
如您所见,该命令将显示以下五列,解释如下。
了解dpkg 输出
第一列将显示 2 个字符,显示包的状态(在上一个屏幕截图中为“i”)。每个字母都有自己的含义,其中第一个字母显示所需的包状态,如输出第一行中所述。可能的期望状态包括:
i: 选择要安装的软件包。
r:选择删除该包。
p: 选择要清除的包(已删除,包括所有相关文件和目录)。
u:包裹状态未知。
h: 该软件包由 dpkg 保留且不受管理。
第二个字符(在下面的屏幕截图中也是“i”)显示包的当前状态。因此,如果第二个字符是“r”,第一个字符是“i”,则表示该软件包当前已安装,但被用户选择删除。包裹当前状态有 8 个可能的字母:
i: 软件包已安装。
n: 该软件包未安装在系统中。
c: 该软件包未安装,但其配置文件仍然存在。
f:系统删除配置文件失败。
u: 包裹已拆封。
h:软件包安装已开始,但由于未知原因未安装。
f: 该软件包已解压并部分配置,但由于未知原因未安装。
w: 包正在等待被另一个包触发。
t: 该包已被另一个包触发。
第二列显示包名称。
第三列显示软件包版本。
第四列显示包架构。
最后,第五列显示包描述。
获得相同输出的另一种方法是使用 dpkg-query 命令,后跟 -l 标志,如下图所示。
dpkg-query 命令还有附加功能;例如,您可以将已安装软件包的完整列表导出到一个文件,稍后可以使用该文件来安装文件中列出的所有软件包。这是在新系统中安装当前系统中的所有软件包的好方法。
以下命令将创建一个名为 installedpackages 的文件,其中包含所有现有软件包的列表。文件名是任意的。
您可以使用 less 命令等读取命令查看导出的列表,如下所示。
这就是您如何使用 dpkg 和 dpkg-query 命令列出 Debian Linux 中已安装的软件包。继续阅读下面的内容,列出使用替代命令的软件包。
使用 apt 列出 Debian 11 上所有已安装的软件包
apt(高级软件包工具)命令是 Debian 和基于 Ubuntu 的 Linux 发行版上可用的另一个软件包管理器。虽然使用 dpkg 查找软件包信息比 apt 有优势,但 apt 更好,因为它可以解决安装软件时的依赖关系。而且 apt 对于列出软件包并获取有关它们的信息也很有用。
要使用 apt 打印已安装软件包的完整列表,请运行如下命令:
正如您所看到的,输出是人类可读的,但dpkg和dpkg-query都返回按列排序的更用户友好的输出。
使用 aptitude 在 Debian 11 上按状态列出软件包
正如本文简介中所述,aptitude 命令是 apt 的前端,具有交互式和命令行界面。
要使用 aptitude 通过命令行界面列出所有已安装的文件,请运行 aptitude 命令,然后运行 search ~ i选项,如下图所示。
如您所见,该命令返回 4 列,其中第一列显示软件包状态(i 表示软件包已安装)。第二列显示了软件包的安装方式;在上面的示例中,A 字母表示该软件包已自动安装。第三列显示包名称,第四列显示包的描述。
要使用交互模式列出已安装的软件包,请运行 aptitude,后跟 -i 标志,如下所示。
输出将显示所有已安装的软件包,包括它们的状态。如上一张屏幕截图所示,列表将开始显示选择要删除的已安装软件包。通过向下滚动,您将看到选择保留的软件包和自动安装的软件包。
您还可以通过简单地运行不带标志的 aptitude 来显示按状态排序的所有已安装软件包。
如下图所示,您可以显示系统中按以下类别排序的所有文件:
可升级包。
新套餐。
未安装的软件包。
过时的和本地创建的包。
虚拟包。
任务。
这个交互界面很直观;根据您要列出的包的状态浏览它们。
这些是列出 Debian 11、其早期版本和基于 Debian 的 Linux 发行版上已安装软件包的可用方法。
结论
正如您所看到的,每个程序(dpkg、dpkg-query、apt 和 aptitude)都有自己的优点和缺点。任何 Linux 用户级别都可以运行本教程中介绍的命令来列出系统中已安装的软件包。对于任何系统管理员来说,了解您的软件都是必须的。本文中解释的所有替代方案都很有用,对于不喜欢使用 Linux 终端的用户来说,aptitude 是最好的选择。我的建议是学习所有这些以熟悉不同的包管理器。
感谢您阅读本教程,解释如何列出 Debian 11 上所有已安装的软件包。我希望它对您有用。继续阅读 Linux 提示,了解更多 Linux 技巧和教程。