查已安装软件详细版本信息需按包管理器区分:1. Debian/Ubuntu用dpkg -s 或apt show ;2. RHEL/CentOS/Fedora用rpm -qi 或dnf info ;3. Arch Linux用pacman -Qi ;4. 非包管理器安装则用snap list、flatpak list、pip show或程序自身--version参数。

要查已安装软件的详细版本信息,得先确认它是不是通过系统包管理器装的——不是所有“能运行”的程序都留有版本记录。不同发行版用的包管理器不同,命令也不同,不能混用。
Debian/Ubuntu 系统:查 .deb 包的版本详情
对 apt 或 dpkg 安装的软件,推荐用以下两个命令:
-
dpkg -s
:显示完整状态,含版本号、架构、依赖、安装时间、描述等。比如 dpkg -s nginx会输出Version: 1.18.0-6ubuntu14.4这类精确信息;注意包名必须完全匹配(大小写敏感),不确定时可先用dpkg -l | grep -i nginx找准名字。 -
apt show
:比 dpkg -s 多显示来源仓库、安装建议、冲突关系等,适合排查版本来源。例如 apt show curl会明确标出APT-Sources: http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages。
如果看到 [installed,local] 字样(如 apt list --installed | grep vim 输出中),说明是手动 dpkg -i 安装的,没关联任何仓库,后续不会被 apt upgrade 更新。
RHEL/CentOS/Fedora 系统:查 .rpm 包的完整元数据
rpm 是底层权威来源,dnf/yum 是上层封装,查版本细节优先用 rpm:
-
rpm -qi
:最常用。输出包括版本( Version)、发布号(Release)、构建时间(Build Date)、签名(Signature)、安装路径(Install Date)和完整描述。例如rpm -qi httpd显示Version : 2.4.57和Release : 1.el9,合起来就是完整版本标识2.4.57-1.el9。 -
dnf info
:补充 rpm -qi 的信息,额外显示仓库来源( From repo)、依赖树、可用升级建议。适合判断是否该更新或换源。
注意:rpm -q <package-name></package-name> 只输出一行版本字符串(如 httpd-2.4.57-1.el9),简洁但信息少;而 rpm -qa | grep 是查全量列表,不推荐用于单个包查版本。
Arch Linux 系统:查 pacman 包的版本与构建信息
pacman -Qi 是 Arch 下对应 rpm -qi 的命令:
-
pacman -Qi
:显示 Name、Version、Description、Architecture、Build Date、Install Date、Packager、URL、Groups、Provides、Depends On、Optional Deps 等。Version 字段即为完整版本号(如 vim-9.1.0320-1)。 -
pacman -Q
:只输出一行 name version,适合脚本提取,例如pacman -Q python返回python 3.12.4-1。
如果是 AUR 手动编译安装(如 yay -S some-app),pacman -Qi 仍有效;但若用 make install 或解压到 /usr/local,则这些命令查不到,需直接运行 /usr/local/bin/some-app --version 或 which some-app 后看二进制本身是否支持版本参数。
非包管理器安装的软件:绕过数据库直接问程序自己
当 dpkg、rpm、pacman 都查不到,但 which program 或 command -v program 能定位到可执行文件时,说明它很可能是:
- 通过 snap 安装:用
snap list | grep program查版本列(Version); - 通过 flatpak 安装:用
flatpak list | grep program,Version 列即所求; - 通过 pip(尤其 --user):用
pip show program或pip3 show program; - 源码编译或二进制释放:直接运行
program --version、program -v或program -V;多数主流工具支持,如curl --version、node -v、gcc --version。
这类方式不依赖系统数据库,但无法得知安装时间、依赖关系或配置路径。


















