linux系统下查询软件包信息需要根据不同的发行版选择对应的包管理工具,主流的发行版分为基于rpm体系和基于dpkg体系两大类,不同的体系对应不同的查询命令,接下来分别介绍具体的操作方法。

基于rpm体系的发行版查询方法
基于rpm体系的发行版包括CentOS、RHEL、Fedora、openSUSE等,常用的包管理工具是rpm、yum、dnf,以下是常用的查询命令。
使用rpm命令查询
rpm是底层的rpm包管理工具,支持查询本地已安装的软件包信息,常用参数如下:
- -q:查询指定的软件包是否安装
- -qi:查询已安装软件包的详细信息
- -ql:查询已安装软件包包含的所有文件路径
- -qf:查询指定文件属于哪个已安装的软件包
- -qa:查询系统中所有已安装的软件包
下面是具体的使用示例:
# 查询nginx软件包是否安装 rpm -q nginx # 查询已安装的nginx软件包详细信息 rpm -qi nginx # 查询已安装的nginx软件包包含的所有文件 rpm -ql nginx # 查询/usr/sbin/nginx文件属于哪个软件包 rpm -qf /usr/sbin/nginx # 查询所有已安装的软件包,可配合grep过滤 rpm -qa | grep php
使用yum或dnf命令查询
yum和dnf是rpm体系的高级包管理工具,支持查询本地和远程仓库的软件包信息,常用参数如下:
- info:查询软件包的详细信息,包括可安装版本、描述等
- list:列出软件包,可指定已安装、可安装等状态
- deplist:查询软件包的依赖关系
- provides:查询哪个软件包提供指定的文件或功能
具体使用示例:
# 查询nginx软件包的详细信息(包括未安装的) yum info nginx # 如果使用dnf,命令类似 dnf info nginx # 列出所有已安装的软件包 yum list installed # 列出所有可安装的nginx相关软件包 yum list available | grep nginx # 查询nginx软件包的依赖关系 yum deplist nginx # 查询哪个软件包提供libssl.so.1.1文件 yum provides libssl.so.1.1
基于dpkg体系的发行版查询方法
基于dpkg体系的发行版包括Ubuntu、Debian、Linux Mint等,常用的包管理工具是dpkg、apt、apt-get,以下是常用的查询命令。
使用dpkg命令查询
dpkg是底层的dpkg包管理工具,主要用于查询本地已安装的deb包信息,常用参数如下:
- -s:查询已安装软件包的状态和详细信息
- -l:列出已安装的软件包,可配合通配符过滤
- -L:查询已安装软件包包含的所有文件路径
- -S:查询指定文件属于哪个已安装的软件包
使用示例:
# 查询nginx软件包是否安装及详细信息 dpkg -s nginx # 列出所有已安装的软件包,配合grep过滤 dpkg -l | grep php # 查询已安装的nginx软件包包含的所有文件 dpkg -L nginx # 查询/usr/sbin/nginx文件属于哪个软件包 dpkg -S /usr/sbin/nginx
使用apt或apt-get命令查询
apt是dpkg体系的高级包管理工具,比apt-get更友好,支持查询本地和远程仓库的软件包信息,常用参数如下:
- show:查询软件包的详细信息,包括版本、依赖、描述等
- list:列出软件包,可指定已安装、可升级等状态
- depends:查询软件包的依赖关系
- rdepends:查询哪些软件包依赖指定的软件包
- search:根据关键词搜索软件包
- content:查询哪个软件包包含指定的文件
使用示例:
# 查询nginx软件包的详细信息 apt show nginx # 列出所有已安装的软件包 apt list --installed # 列出可升级的软件包 apt list --upgradeable # 查询nginx软件包的依赖关系 apt depends nginx # 查询哪些软件包依赖nginx apt rdepends nginx # 根据关键词搜索软件包 apt search mysql # 查询哪个软件包包含/usr/bin/mysql文件 apt content mysql
通用查询技巧
如果不确定当前系统属于哪种体系,可以先通过以下命令判断:
# 查看是否存在rpm命令 which rpm # 查看是否存在dpkg命令 which dpkg
另外,如果需要在不同的包管理工具间快速回忆命令,可以参考下面的参数对比表:
| 查询场景 | rpm系列命令 | dpkg系列命令 |
|---|---|---|
| 查询已安装包详情 | rpm -qi 包名 | dpkg -s 包名 |
| 查询包包含的文件 | rpm -ql 包名 | dpkg -L 包名 |
| 查询文件所属包 | rpm -qf 文件路径 | dpkg -S 文件路径 |
| 查询所有已安装包 | rpm -qa | dpkg -l |
| 查询远程仓库包信息 | yum info 包名 / dnf info 包名 | apt show 包名 |
实际使用过程中,根据具体的需求选择对应的命令即可,高级包管理工具(yum、dnf、apt)的查询功能更全面,推荐优先使用。如果遇到软件依赖问题,可以通过查询依赖关系的命令快速定位问题根源。