服务器测评网
我们一直在努力

如何查看Linux系统中已安装的所有软件包列表?

在Linux系统中,软件包管理是系统维护的核心操作之一,无论是安装、更新还是卸载软件,都离不开对软件包的有效查看与管理,不同Linux发行版采用不同的包管理器,如基于Debian/Ubuntu系统的dpkgapt、基于RHEL/CentOS系统的rpmyum(或dnf),以及适用于Arch Linux的pacman等,掌握查看软件包的方法,不仅能帮助用户了解系统已安装的软件信息,还能在依赖冲突、版本回滚等问题中快速定位原因,本文将详细介绍主流Linux发行版中查看软件包的常用命令及其使用场景。

如何查看Linux系统中已安装的所有软件包列表?

基于Debian/Ubuntu系统的软件包查看方法

Debian及其衍生版(如Ubuntu)使用dpkg作为底层包管理器,配合apt系列工具提供更高级的功能,查看软件包信息主要通过以下命令实现。

查看已安装软件包列表

dpkg -l是最基础的命令,用于列出系统中所有已安装的软件包,包括软件包名称、版本号和安装状态(如ii表示正常安装),输出结果中,每行以空格分隔的三列状态信息为核心,例如ii python3 3.8.10-0ubuntu1~20.04表示python3已正常安装,若需过滤特定软件包,可结合grep命令,如dpkg -l | grep python仅显示名称包含“python”的软件包。

查看软件包详细信息

若需了解某个软件包的详细描述、依赖关系、安装文件路径等信息,可使用dpkg -l <包名>apt show <包名>apt show nginx会输出Nginx的版本、 maintainer、依赖项、下载大小等元数据,其中Depends:字段明确列出了运行该软件包所需的其他软件包,便于排查依赖问题。

查询软件包安装的文件

有时需要确认某个软件包在系统中安装了哪些文件,可通过dpkg -L <包名>实现。dpkg -L curl会列出curl工具的所有安装路径,包括可执行文件/usr/bin/curl、配置文件/etc/curlrc等,反向查询(通过文件查找所属软件包)则使用dpkg -S <文件路径>,如dpkg -S /usr/bin/ls会返回coreutils包,表明ls命令由该包提供。

搜索软件仓库中的可用软件包

在安装前,若需确认软件包是否存在于仓库中,可使用apt search <关键词>apt search text editor会列出所有名称或描述中包含“text editor”的可用软件包,并显示版本和简短说明,结合apt install <包名>即可完成安装。

基于RHEL/CentOS/Fedora系统的软件包查看方法

Red Hat系列发行版使用rpm作为底层包管理器,早期通过yum管理依赖,新版本(如Fedora 22+、CentOS 8+)则推荐使用dnf,两者的命令参数高度相似,且dnf兼容yum的大部分语法。

如何查看Linux系统中已安装的所有软件包列表?

列出已安装软件包

rpm -qa用于列出所有已安装的软件包,输出格式为“包名-版本-发布架构”,例如nginx-1.18.0-1.el7.ngx.x86_64,与dpkg -l类似,可通过rpm -qa | grep httpd过滤包含“httpd”的软件包。yum list installeddnf list installed则以表格形式展示软件包名称、版本和仓库来源,更易读。

查看软件包元数据

rpm -qi <包名>可显示软件包的详细信息,包括名称、版本、发布时间、描述、许可证等,相当于apt show的功能。rpm -qi vim会输出Vim编辑器的详细说明和作者信息,若需查看软件包的依赖关系,rpm -qR <包名>会列出所有依赖的库文件或其他软件包,而rpm -qR --provides <包名>则显示该软件包提供的功能(如可执行文件、库文件等)。

查询软件包安装的文件

rpm -ql <包名>列出指定软件包的所有安装文件,如rpm -ql mariadb-server会显示MariaDB数据库服务器的配置文件、服务脚本、库文件等路径,反向查询使用rpm -qf <文件路径>,例如rpm -qf /bin/bash返回bash-4.2.46-34.el7.x86_64,表明bash属于该包。

搜索软件仓库中的可用软件包

使用yum search <关键词>dnf search <关键词>可搜索仓库中的软件包,例如dnf search archive会列出所有与“archive”(归档)相关的软件包,并提供简要描述,搜索后可通过yum info <包名>查看软件包的详细信息,确认是否符合需求。

Arch Linux及衍生版的软件包查看方法

Arch Linux采用pacman作为包管理器,其设计简洁高效,命令参数直观,适合喜欢自定义系统的用户。

列出已安装软件包

pacman -Q列出所有已安装的软件包及其版本,pacman -Qe仅显示手动安装的软件包(排除依赖包),pacman -Qd则显示作为依赖安装的软件包,过滤时可通过pacman -Q | grep grep实现。

如何查看Linux系统中已安装的所有软件包列表?

查看软件包详细信息

pacman -Qi <包名>显示软件包的完整信息,包括名称、版本、描述、依赖、安装时间、大小等。pacman -Gi firefox会展示Firefox浏览器的详细元数据,若需查看软件包的依赖关系,pacman -Qi <包名> | Depends会列出直接依赖,而pacman -Qdt则显示系统中无用的孤立依赖(可被清理)。

查询软件包安装的文件

pacman -Ql <包名>列出软件包安装的所有文件,如pacman -Ql zsh会显示Zsh shell的配置文件路径、可执行文件位置等,反向查询使用pacman -Qo <文件路径>,例如pacman -Qo /usr/bin/vim返回vim /usr/bin/vim is owned by vim 9.0.1000-1

搜索软件仓库中的可用软件包

pacman -Ss <关键词>用于同步数据库并搜索软件包,例如pacman -Ss network会列出所有名称或描述包含“network”的软件包,并显示版本和仓库来源,搜索后通过pacman -Si <包名>查看详细信息,确认后使用pacman -S <包名>安装。

跨发行版的通用工具

除了原生包管理器,还有一些通用工具可帮助查看软件包信息,

  • apt-file:在Debian/Ubuntu系统中,用于搜索软件包包含的文件,需先安装并更新数据库(apt-file update),之后可通过apt-file search <文件名>查找包含该文件的软件包。
  • repoquery:基于yum/dnf的工具,需安装dnf-utilsyum-utils,提供更强大的查询功能,如repoquery -l <包名>列出软件包文件,repoquery -R <包名>查看依赖。
  • neofetch/screenfetch:虽主要用于显示系统信息,但部分版本会列出已安装的软件包数量,适合快速概览。

查看Linux软件包的方法因发行版而异,但核心逻辑一致:通过包管理器命令列出已安装软件包、查看详细信息、查询安装文件及搜索可用软件包,熟练掌握dpkg/aptrpm/yum/dnfpacman等工具的基本操作,不仅能提升系统管理效率,还能在遇到软件依赖、版本冲突等问题时快速定位解决方案,对于跨平台用户而言,理解不同包管理器的设计理念,也有助于更好地适应各类Linux环境。

赞(0)
未经允许不得转载:好主机测评网 » 如何查看Linux系统中已安装的所有软件包列表?