在linux中查询软件包信息需根据发行版选择rpm或dpkg命令;2. rpm系统使用rpm -q及选项查询已安装包,如-q、-qa、-qi、-ql、-qc、-qd、-qf,-qp用于未安装的.rpm包;3. dpkg系统使用dpkg -l、-s、-l、-s、--info、--contents分别列出包、查看状态、文件列表、文件归属及未安装包内容;4. 实用技巧包括通过which定位命令所属包、结合grep过滤、检查包是否安装及使用高级工具如dnf或apt辅助查询,这些方法在系统维护中极为实用且有效。

在 Linux 系统中,查询软件包信息是系统管理和维护中的常见操作。不同发行版使用的包管理系统不同,常见的有基于 RPM 的系统(如 CentOS、RHEL、Fedora)和基于 DPKG 的系统(如 Debian、Ubuntu)。本文将详细介绍如何使用
rpm和
dpkg命令查询软件包信息,并解释常用参数的含义和用法。
一、RPM 系统:使用 rpm
查询软件包信息
RPM(Red Hat Package Manager)是 Red Hat 系列系统中用于管理
.rpm包的工具。查询已安装或未安装的软件包信息时,主要使用
-q(query)选项。
常用查询命令格式:
rpm -q [选项] [包名]
常见查询参数详解:
-
-q
:查询某个已安装的软件包是否存在rpm -q bash
输出示例:
bash-5.1.4-2.el8.x86_64
-
-qa
:查询系统中所有已安装的软件包rpm -qa
可结合
grep
过滤:rpm -qa | grep nginx
-
-qi
:显示软件包的详细信息(名称、版本、描述、安装时间等)rpm -qi httpd
-
-ql
:列出软件包安装的所有文件路径rpm -ql tree
常用于查找某个命令属于哪个包。
-
-qc
:列出软件包的配置文件rpm -qc httpd
-
-qd
:列出软件包的文档文件rpm -qd bash
-
-qf
:查询某个文件是由哪个软件包安装的rpm -qf /usr/bin/ls
注意:文件必须存在且是由 RPM 安装的。
-
-qp
:查询未安装的.rpm
包文件(需配合其他选项)rpm -qpi package.rpm
:查看未安装包的详细信息rpm -qpl package.rpm
:查看未安装包会安装哪些文件rpm -qpc package.rpm
:查看未安装包的配置文件
二、DPKG 系统:使用 dpkg
查询软件包信息
DPKG 是 Debian 及其衍生系统(如 Ubuntu)的底层包管理工具,用于管理
.deb包。
常用查询命令格式:
dpkg -l [包名模式] dpkg -s [包名] dpkg -L [包名] dpkg -S [文件路径]
常见查询参数详解:
-
-l
:列出已安装(或匹配)的软件包dpkg -l
输出格式说明:
- 第一列:状态(ii 表示已安装,rc 表示已删除但配置保留)
- 第二列:包名
- 第三列:版本
- 第四列:简要描述
可配合
grep
使用:dpkg -l | grep nginx
-
-s
:显示软件包的详细状态信息dpkg -s curl
包括版本、依赖、安装状态、描述等。
-
-l
:列出软件包安装的所有文件dpkg -L vim
-
-s
:查找某个文件属于哪个软件包dpkg -S /usr/bin/python3
注意:文件必须存在。
-
--info
:查看未安装的.deb
包信息dpkg --info package.deb
-
--contents
:查看.deb
包中包含哪些文件(不安装)dpkg --contents package.deb
三、实用技巧与常见场景
-
查找某个命令属于哪个包
- RPM 系统:
rpm -qf $(which systemctl)
- DPKG 系统:
dpkg -S $(which awk)
- RPM 系统:
-
查看软件包版本并排序
rpm -qa | grep nginx | sort dpkg -l | grep apache | awk '{print $2}' -
检查某个包是否安装
- RPM:
rpm -q nginx || echo "未安装"
- DPKG:
dpkg -l nginx > /dev/null 2>&1 && echo "已安装" || echo "未安装"
- RPM:
-
结合高级包管理器使用
- RPM 系统常用
yum
或dnf
:dnf info httpd yum list installed | grep package
- DPKG 系统常用
apt
:apt list --installed | grep package apt show package-name
- RPM 系统常用
基本上就这些。掌握
rpm和
dpkg的查询参数,能帮助你快速定位软件包状态、文件归属和安装内容。虽然现代系统多使用高级包管理器(如 yum/dnf/apt),但在离线或脚本环境中,直接使用
rpm和
dpkg依然非常实用。不复杂,但容易忽略细节。










