怎么通过命令的形式列出各个linux系统已经安装的软件包?
使用过linux系统的运维应该都有在上面安装过软件包,有时候我们需要查询即将要安装的包有没有在这个系统上已经安装,如果不先查一下,或多或少会出现问题,比如版本不一致等等。
本文将从一些系统进行展开:
- Arch Linux
- Alpine Linux
- Debian
- Ubuntu
- RHEL
- Fedora
- CentOS
- openSUSE
在 Arch Linux 中使用 pacman 显示已安装的包
Pacman是 Arch Linux 及其衍生产品(如 EndeavourOS 和 Manjaro Linux)的默认包管理器。
要列出Arch Linux 及其衍生产品中使用pacman显示所有已安装软件包,如下:
代码语言:txt复制$ pacman -Q
如果要逐页查看输出,请将输出通过管道传输到more命令
代码语言:txt复制$ pacman -Q | more
仅列出显式安装的软件包和版本:
代码语言:txt复制$ pacman -Qe
要仅列出 Arch Linux 中已安装软件包的总数,请将pacman输出通过管道传输到wc命令:
代码语言:txt复制$ pacman -Q | wc -l
134
正如你在上面的输出中看到的,我已经在我的 Arch Linux 系统中安装了134 个包。
在Alpine Linux中使用apk命令获取已安装包列表
Apk是 Alpine Package Manager 的缩写,是 Alpine Linux 的默认包管理器。
在 Alpine Linux 中查看已安装包列表的命令是:
代码语言:txt复制$ apk info
如果要查看已安装的软件包列表以及版本号和软件包描述,请使用-vv如下标志:
代码语言:txt复制$ apk info -vv
要仅列出 Alpine Linux 中所有已安装软件包的总数,请将apk info输出通过管道发送到wc如下命令:
代码语言:txt复制$ apk info | wc -l
86
在 Debian、Ubuntu 中使用 apt 命令查找已安装的包
Apt为 Debian、Ubuntu 和其他基于 Debian 的系统中的包管理系统提供了高级命令行界面。
要在 Debian、Ubuntu、Linux Mint 和其他基于 DEB 的系统中显示已安装软件包的列表,请运行:
代码语言:txt复制$ apt list --installed
显示基于 Debian 的系统中已安装软件包的总数,将apt命令的输出通过管道传输到wc命令,如下所示:
代码语言:txt复制$ apt list --installed | wc -l
2575
在 Debian、Ubuntu 中使用 dpkg 命令
dpkg是一个用于安装、构建、删除和管理 Debian 软件包的命令行工具。
要使用dpkg命令列出所有已安装的软件包的版本和详细信息,请运行:
代码语言:txt复制$ dpkg -l
或者,使用dpkg-query命令列出所有已安装的 Debian 软件包。
代码语言:txt复制$ dpkg-query -l
仅列出基于 Debian 的系统中已安装软件包的总数:
代码语言:txt复制$ dpkg -l | wc -l
2668
代码语言:txt复制$ dpkg-query -l | wc -l
2668
在RHEL、Fedora、CentOS中使用yum命令
yum,是命令行管理工具安装和基于红帽系统管理软件包。
要在 Fedora、RHEL 、 CentOS、中查找已安装软件包的列表,请运行:
代码语言:txt复制$ yum list installed
使用yum和wc命令仅列出已安装软件包的总数:
代码语言:txt复制$ yum list installed | wc -l
347
在RHEL、Fedora、CentOS中使用dnf命令
DNF是 YUM 的下一代版本,自 Fedora 22、RHEL 8 和 CentOS 8 以来一直是默认的包管理器,DNF 用法与 Yum 相同。
要使用 查找 RHEL、Fedora、CentOS 中已安装软件包的列表dnf,请运行:
代码语言:txt复制$ dnf list installed
如果只想使用dnf命令显示包的总数,请运行:
代码语言:txt复制$ dnf list installed | wc -l
在openSUSE中使用zypper命令
Zypper是默认的命令行包管理器,用于在 SUSE 和 openSUSE 中安装和管理包。
要使用 列出 openSUSE 中已安装的软件包zypper,请运行:
代码语言:txt复制$ zypper se --installed-only
使用rpm命令
RPM命令,是用来安装和管理基于红帽系统从命令行应用程序。
要列出系统上安装的每个 RPM 包,请运行:
代码语言:txt复制$ rpm -qa
要逐页查看输出,请将输出通过管道传输到more命令:
代码语言:txt复制$ rpm -qa | more
还可以使用--last如下标志将所有安装的软件包与最新的软件包放在顶部:
代码语言:txt复制$ rpm -qa --last
以下两种是通用方法,可以在任何安装了snap或flatpak工具的系统上使用这些命令:
列出使用 snap 安装的软件包
Snap是 Canonical 开发的软件部署和包管理系统。
要列出系统上安装的所有 snap 应用程序,请运行:
代码语言:txt复制$ snap list
使用 flatpak 列出已安装的包
Flatpak是一个独立于平台的包管理系统,用于在 Linux 上构建、安装和运行沙盒桌面应用程序和运行时。
要列出 Linux 中所有已安装的 flatpak 应用程序,请运行:
代码语言:txt复制$ flatpak list --app
![列出 Linux 中使用 flatpak 安装的软件包
](https://cdn.jsdelivr.net/gh/chjswr/picgo/img/202109181506307.png)