在linux系统中查询已安装软件包及特定程序是否已安装,应根据系统类型使用对应命令:1. 对于rpm系统(如centos、fedora),使用 rpm -qa 列出所有软件包,rpm -q 查询特定软件包是否安装,rpm -qi 查看详细信息,rpm -ql 列出包内文件,rpm -qf 通过文件路径反查所属包;2. 对于deb系统(如ubuntu、debian),使用 dpkg -l 列出所有软件包,dpkg -s 查询特定包状态及详细信息,dpkg -l 列出包内文件,dpkg -s 通过文件路径反查所属包,结合 grep 可实现快速过滤与状态判断,从而全面掌握系统软件安装情况。

在Linux系统里,想知道机器上到底装了些什么软件,或者某个特定程序是不是已经到位,核心就是用两个命令:
rpm
dpkg
rpm
dpkg
在我看来,查询已安装软件包,核心就是掌握那么几个常用参数。这就像是你的系统里有个巨大的图书馆,这两个命令就是图书馆的索引卡片系统。
对于基于RPM的系统(比如CentOS、Fedora、RHEL):
rpm -qa
这个命令会把所有安装的RPM包一股脑儿列出来。输出可能会很长,所以通常我会结合
grep
nginx
rpm -qa | grep nginx
rpm -qi <package_name>
例如:
rpm -qi httpd
rpm -ql <package_name>
比如:
rpm -ql bash
bash
对于基于DEB的系统(比如Ubuntu、Debian、Mint):
rpm -qa
dpkg -l
这个命令的输出会显示软件包的状态(如
ii
grep
dpkg -l | grep apache2
dpkg -s <package_name>
例如:
dpkg -s openssh-server
rpm -ql
dpkg -L <package_name>
比如:
dpkg -L systemd
systemd
这大概是日常运维中最常见的需求了。你可能刚接手一台服务器,或者在部署一个新应用,第一步往往就是确认某个关键组件是不是已经躺在那里了。
对于RPM系统,我通常会直接用
rpm -q <package_name>
rpm -q vim
如果
vim
vim-enhanced-8.0.1763-16.el8.x86_64
而对于DEB系统,我更倾向于使用
dpkg -s <package_name>
dpkg -s nginx
如果
nginx
Status: install ok installed
grep
dpkg -s nginx | grep "Status"
这样就能快速看到状态行,如果显示
Status: install ok installed
这部分就深入了。光知道一个包装没装,有时候不够。比如,你需要确认一个软件包的版本是不是符合要求,或者某个关键的配置文件到底被放在了哪里。
rpm -qi <package_name>
Summary
Description
至于文件列表,
rpm -ql <package_name>
在DEB系统这边,
dpkg -s <package_name>
Depends
而
dpkg -L <package_name>
rpm -ql
dpkg -L
这绝对是一个高级技巧,但又非常实用。想象一下,你发现系统里有一个奇怪的文件,或者一个关键的命令突然无法执行,你想知道这个文件到底是谁“生”的,属于哪个软件包。这时候,反向查找就显得尤为重要。
在RPM系统里,这个功能由
rpm -qf <file_path>
/usr/bin/ls
rpm -qf /usr/bin/ls
通常你会得到类似
coreutils-8.30-10.el8.x86_64
DEB系统这边,对应的命令是
dpkg -S <file_path>
rpm -qf
/bin/bash
dpkg -S /bin/bash
它会告诉你
bash: /bin/bash
bash
/bin/bash
总的来说,无论是
rpm
dpkg
以上就是如何查询已安装的软件包 rpm和dpkg命令使用详解的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号