Linux怎么查已安装包?,查看Linux软件包命令是什么?

要查Linux服务器下当前存在的包,核心思路就一句话:用发行版自带的包管理器查询命令,不同系统命令不同,rpm系用yum/dnf/rpm,Debian系用apt/dpkg。这是每个运维人员都必须掌握的基本功,但很多人只会用一个yum list,遇到其他发行版就卡壳,这篇文章把主流Linux系统的查包方法全部拆开讲清楚,包括如何过滤、如何统计数量、如何区分手动安装与依赖安装,帮你彻底搞定这个问题。

怎么查Linux服务器下当前存在的包:先分清你的发行版

行业共识认为,Linux服务器查包的第一步不是敲命令,而是确认你用的是哪套包管理体系,摸错门路,命令再对也是白搭。

Linux命令精讲之apt/dpkg(Debian系包管理)
加载中
Linux命令精讲之apt/dpkg(Debian系包管理)
全
全栈二把刀
335--
原视频地址

目前服务器市场主流就两大派系:

  • RPM系:CentOS、RHEL、Rocky Linux、Alibaba Cloud Linux、openEuler等,包后缀是.rpm,用yum或dnf管理
  • Debian系:Ubuntu Server、Debian、Deepin等,包后缀是.deb,用apt或dpkg管理

还有少数特殊场景,比如源码编译安装的软件、容器镜像里的精简系统,这些另说。

判断方法极其简单,执行下面任意一条命令即可:

cat /etc/os-release
rpm --version   # 能输出版本号就是RPM系
dpkg --version  # 能输出版本号就是Debian系

搞清楚了系统类型,接下来就看具体命令,需要说明的是,查询包列表是只读操作,不会影响系统,放心大胆执行。

Linux服务器查看已安装包的命令有哪些:RPM系全解

如果你用的是CentOS 7、Rocky Linux 8/9、RHEL这类系统,查询已安装包的方法比较丰富,下面从最常用到最进阶的顺序列出。

yum list installed:最直观的查包方式

CentOS 7和早期版本中,yum list installed是最常用的命令,它会把所有通过yum安装的包列出来,每一行包含包名、版本号、仓库来源。

yum list installed

如果想分页查看,加个管道:

yum list installed | less

如果只想看某个软件包是否安装,用grep过滤:

yum list installed | grep nginx

注意这里的grep会匹配包名中包含nginx的所有包,比如nginx-mod-stream、nginx-filesystem等,要精确匹配,用正则:

yum list installed | grep -w nginx

rpm -qa:更底层的查询命令

rpm是RPM包管理的底层工具,rpm -qa列出所有已安装包,不带版本信息以外的冗余内容,输出格式是“包名-版本号-发行版本.架构”。

rpm -qa

这个命令的优点是速度极快,在包数量多的服务器上也几乎瞬间完成,配合grep使用是运维日常高频操作:

rpm -qa | grep -i mysql

加上-i参数忽略大小写,方便查MySQL、mysql、MYSQL这类名称不固定的软件包。

dnf list installed:新一代系统的默认工具

RHEL 8、Rocky Linux 8以上、CentOS Stream等系统,yum已被dnf取代(实际yum命令软链接到dnf),dnf命令设计更友好,和其他子命令风格统一。

dnf list installed

dnf的查询结果包含三列:包名、版本、安装来源,如果你看到@System字样,说明这个包是通过依赖自动安装的,不是手动安装的。

完整命令对比,方便你选择:

命令 适用场景 速度
yum list installed 包名+版本+仓库来源 日常查看,信息完整 中等
rpm -qa 包名-版本-架构 快速过滤、脚本处理 极快
dnf list installed 包名+版本+来源 新版系统日常查看 中等

查包必看:Debian系系统的查看安装包方法

Ubuntu Server、Debian系列的查包命令和RPM系完全不同,很多从CentOS转过来的运维最容易在这里栽跟头。

dpkg -l:Debian系的核心查询命令

dpkg是Debian系底层的包管理工具,作用相当于rpm。dpkg -l列出所有包的详细状态信息,输出格式为四列:状态标记、包名、版本号、简介。

dpkg -l

状态标记通常是ii,第一个i表示期望状态是已安装,第二个i表示实际状态已安装,如果看到rc,说明包已删除但配置文件残留。

过滤nginx相关包:

dpkg -l | grep nginx

apt list –installed:更接近现代风格的查法

在Ubuntu 16.04+、Debian 9+系统中,apt命令封装了dpkg,体验更好:

apt list --installed

输出格式为“包名/仓库名 版本 架构”,信息干净利落,同样支持grep过滤:

apt list --installed | grep redis

另外还有一个宽泛一点的命令:

apt --installed list

两者效果等同,写法不同而已。

按条件精确过滤已安装包

有时某个服务的包特别多,比如OpenStack、Kubernetes相关组件,全部列出来太长了,可以按关键字精确搜索:

dpkg -l | grep -E "^(ii)\s+nginx"

这个命令只列出完整的、状态为ii的nginx包,也可以用apt的search参数结合dpkg查询:

apt list --installed "nginx"

通配符帮你在不额外安装工具的情况下模糊匹配包名。

实战技巧:如何区分手动安装的包和依赖自动安装的包

服务器跑久了,包越积越多,但哪些是当时手动装的,哪些是被依赖拉进来的,很多人分不清,这块内容对于排查问题和精简系统特别有用。

RPM系查询手动安装的包

RHEL系系统中,yum会记录每个包的安装事务,执行:

yum history list

这个命令列出所有安装事务,包括时间、操作类型、涉及的包数量,标记为“Install”且是你自己执行的事务,对应的就是手动安装的包。

查看具体某次事务安装了什么:

yum history info <事务ID>

想直接列出所有手动安装的包,用yumdb查询(CentOS 7及以上):

yumdb search command_line ""

输出会带上安装该包时执行的完整命令。command_line为空,说明是通过依赖自动安装的。

Debian系查询手动安装的包

apt记录了包的自动安装标记(auto/manual),apt-mark命令可以查询所有手动安装的包:

apt-mark showmanual

输出的包列表就是手动明确安装的,依赖包不会出现在这个列表里。

对应地,查看所有自动安装的依赖包:

apt-mark showauto

配合grep可以快速验证某个包是不是手动装的:

apt-mark showmanual | grep python3

这个功能在清理无用依赖时很有价值,此时可以安全地用apt autoremove清除不再需要的依赖包。

统计包数量与核对依赖信息

查包不仅是看列表,服务器上到底装了多少个包、某个依赖是否被其他包引用,这些运维场景同样属于“查包”范畴。

统计当前已安装包的总数

RPM系:

rpm -qa | wc -l

Debian系:

dpkg -l | grep -c ^ii

或者用apt的方式:

apt list --installed 2>/dev/null | grep -c "^"

统计结果只是参考值。“包数量多并不意味着系统臃肿”,因为不少基础依赖是必需的,比如glibc、openssl-libs这类底层库,删了系统就崩了。

查询某个文件属于哪个包

服务器上发现有个奇怪的二进制文件,想查它属于哪个包,这是另一个高频场景。

RPM系用:

rpm -qf /usr/bin/nginx

Debian系用:

dpkg -S /usr/bin/nginx

这两条命令返回完整的包名和版本号,帮助你判断该包是否可以安全升级或删除。

查询某个包依赖了哪些其他包

排查“为什么这个软件跑不起来”时,需要查依赖关系:

rpm -qR nginx

Debian系对应:

apt depends nginx

反过来查“有哪些包依赖这个包”:

rpm -q --whatrequires libssl.so.10

Debian系用:

apt rdepends libssl1.1

依赖查询在升级核心库之前务必执行一遍,否则可能拉垮一堆服务。

排查服务器问题时怎么用好查包命令

查包不是孤立操作,实际运维中它服务于排障、审计、安全加固等具体场景。

服务启动失败,怀疑包被误删

systemctl status nginx   # 查看服务状态,提示找不到可执行文件
rpm -q nginx             # 查询包是否还在
rpm -V nginx             # 校验包文件完整性

rpm -V返回的输出项如果有SM5DLUGT等标记,说明对应文件被修改过,配合rpm -qf定位文件归属,可以快速判断是包缺失还是文件损坏。

安全审计时排查漏洞相关包

CVE漏洞通告出来后,需要确认服务器上是否存在受影响版本的包。

rpm -qa | grep openssl
dpkg -l | grep openssl

结合版本号比对,判断是否在受影响的版本区间内,这个流程在所有安全应急响应中都会用到。

新接手的服务器,快速摸清环境

不清楚陌生服务器上装了什么东西,先看几个关键维度:

rpm -qa | grep -E "nginx|httpd|mysql|php|java"   # 看常见Web服务
yum grouplist installed                            # 看安装的软件组(RPM系)
dpkg -l | grep -E "nginx|apache|mysql|php"        # Debian系Web服务检查

再看系统架构和内核信息,结合包列表,大概就能判断这台服务器是干什么用的,以及有哪些潜在风险点。

常见问题:关于查Linux服务器已安装包的几个疑问

查不了包列表,提示“command not found”,是什么原因?

大多数情况下是因为yum、apt等命令未加入PATH路径,比如精简安装的系统,可能不带包管理工具,排查步骤:先确认系统类型(cat /etc/os-release),再查看包管理器是否安装(ls /usr/bin/yum或ls /usr/bin/apt),如果确实没有,RPM系可以从安装光盘挂载rpm包手动安装,Debian系用dpkg从本地deb文件安装,容器场景中,部分极简镜像(如Alpine)用的是apk命令,不是yum也不是apt。

如何查询某软件包在仓库里的最新版本和当前已安装版本?

RPM系用两条命令:

yum info nginx        # 查看仓库最新版本
yum list installed nginx   # 查看本地已安装版本

Debian系用:

apt show nginx        # 查看仓库信息
dpkg -l nginx         # 查看本地已安装信息

对比输出中的Version字段,就能判断是否需要升级。

只想列出一类软件包,有没有比grep更高效的方式?

对于RPM系,使用yum的search参数:

yum list installed | grep -E "^nginx|^php"

Debian系中,用apt的通配符更直接:

apt list --installed "php"

这两种方式都不过滤仓库信息,输出更聚焦,grep依然是所有发行版通用的最保险手段,适合习惯统一化操作的人。

查Linux服务器下当前存在的包,核心就是先认系统,再选命令,RPM系用yum/dnf/rpm,Debian系用apt/dpkg,再配合grep过滤、管道统计、apt-mark区分手动安装,你就能对服务器上的软件包了如指掌,不管日常维护还是排查问题,这套方法都够用了,把这些命令记牢,遇到任何Linux发行版都能顺手查清楚。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/790164.html

赞 (0)
上一篇 2026年11月9日 09:06
下一篇 2026年11月9日 09:07

相关推荐

  • 怎么使用服务器上的ip地址是什么东西

    服务器ip地址是什么东西:先理解成服务器的门牌号服务器IP地址就是服务器在网络中的唯一门牌号,别人想访问你的网站、连上你的数据库,全靠这个数字地址找到你的服务器,没有它,你的服务器就像没有门牌号的商铺,客户找上门都费劲,服务器ip地址是什么,为什么不能没有IP地址全称是Internet Protocol Add……

    2026年9月8日
    600
  • AIoT能源是什么?AIoT能源管理解决方案有哪些

    AIoT能源管理已成为实现“双碳”目标与降本增效的关键路径,其核心在于通过人工智能与物联网的深度融合,打破传统能源系统的“数据孤岛”,实现从被动监测向主动优化的跨越,这一技术模式不仅能够提升能源利用效率,更能通过预测性维护与智能调度,重构企业的能源管理逻辑,是工业与建筑领域数字化转型的必经之路,技术融合重构管理……

    2026年3月19日
    11600
  • 哈弗H6服务器内部错误怎么办,车机服务器异常怎么解决

    哈弗h6服务器内部错误并非车辆硬件故障,而是车联网后台通信链路中断,按顺序执行重启、网络重置和系统修复三步操作即可解决,哈弗h6服务器内部错误解决办法:先分清问题层级很多车主一看到”服务器内部错误”这行红字就慌了,以为是车机系统崩溃了,这个提示是哈弗智联后台返回的标准错误代码,含义是车辆无法与云端服务器建立有效……

    2026年9月24日
    500
  • win10显示服务器运行失败怎么解决,是什么原因

    win10提示“服务器运行失败”时,绝大多数情况是系统服务组件卡死或关联配置损坏,按顺序修复服务状态和网络组件即可恢复正常,win10服务器运行失败常见原因与快速判断这个提示不会无缘无故出现,根据大量用户反馈,八成以上和“Software Protection服务”或“RPC服务”这两个系统核心服务有关,它们负……

    2026年9月26日
    400
  • PS4连EA服务器为何老失败,频繁掉线怎么办?

    PS4连接EA服务器难的本质是多重网络兼容性问题,多数情况下只能通过优化本地网络和更换连接方式缓解,无法彻底根治,作为一名常年泡在Apex和FIFA里的老玩家,我太懂那种盯着“无法连接到EA服务器”提示时的心情了,那不是单纯的网速卡顿,更像是有人在你和服务器之间砌了一堵看不见的墙,今天不聊虚的,直接拆解这堵墙到……

    程序编程 2026年11月8日
    200
  • 服务器ecs属于什么类型,云服务器ecs属于哪类产品

    服务器ECS属于一种高性能、可弹性伸缩的云计算基础设施服务,其本质是虚拟化的计算资源租用,在云端架构中承担着核心计算与数据处理的关键角色,它不再局限于传统的物理硬件形态,而是通过虚拟化技术将物理服务器集群的资源进行切分与重组,为用户提供安全、可靠、灵活的计算能力支持,核心定位:云时代的计算基石从专业架构视角分析……

    2026年4月3日
    9600
  • 老服务器BIOS设置U盘启动为何无效,启动不了怎么解决?

    老服务器BIOS设置U盘启动不了怎么办老服务器装系统时卡在U盘启动这一步,十有八九不是U盘坏了,而是BIOS设置和启动方式不匹配导致的, 解决思路很简单:先确认服务器型号和BIOS类型,再调整启动顺序和U盘格式,最后用支持传统模式的引导方式写入镜像,老服务器U盘启动失败的常见原因老服务器不像现在的PC,BIOS……

    2026年8月24日
    1000
  • Kuai Che Dao中秋家宽69折是真的吗?香港宽带优惠怎么选

    Kuai Che Dao中秋特惠期间,香港家宽全线享受69折优惠,这是目前获取高性价比跨境网络服务的最佳时机,中秋佳节不仅是团圆的时刻,也是网络需求激增的节点,对于需要连接香港与内地、东南亚或全球各地的用户而言,稳定的高速网络是刚需,Kuai Che Dao推出的这一促销活动,直击痛点,将原本高昂的国际专线或高……

    2026年6月18日
    2510
  • 浪潮nf5280m4怎么做RAID?,RAID如何设置?

    浪潮nf5280m4做raid,核心就一句话:开机自检看到RAID卡LOGO时按Ctrl+H进入WebBIOS界面,创建Virtual Drive并选好RAID级别,再把启动项设为该阵列,装系统时记得挂驱动,这台机器看起来唬人,配置阵列的思路和多数LSI方案服务器一致,本篇直接带你走一遍完整流程,浪潮nf528……

    2026年9月16日
    800
  • AIoT时代如何构建?智能家居生态布局指南

    AIoT时代的构建核心在于打破数据孤岛,通过边缘计算与云原生架构的深度融合,实现从“连接”到“智能决策”的闭环,而非单纯增加设备数量,从万物连接到万物智联:底层逻辑的重构过去十年,我们谈论物联网(IoT)时,焦点往往在于“连接”,只要设备能联网,能上传数据,似乎就完成了使命,但在2026年的今天,这种观点已经过……

    2026年6月12日
    3600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注