首页/系统/信创系统运维速查/dnf list 与已装包核查
命令与包管理65 条

dnf list 与已装包核查

核查系统已装软件版本:list installed 看全量、list 指定包看仓库与已装两态、配合过滤做资产盘点与版本合规检查。

信创系统运维速查系统更新于 2026-10-13

这条命令在查什么

dnf list 用来列出软件包的三类信息:已安装的、仓库可用的、以及带版本号的查询结果。核查资产与版本合规时最常用的是 list installed,它只读本地 rpmdb,不访问网络,因此可以当作离线盘点工具使用;不带子命令的 dnf list 会把仓库里的全部可装包一并列出,语义和输出量完全不同。

基本信息

全量已装dnf list installed
单包两态dnf list nginx(同时显示已装与仓库版本)
只看某来源dnf list installed --repo <repo id>
过滤输出配合 grep/awk,或在脚本里用 dnf repoquery 更精细
导出留档重定向到文件,用于审计与基线比对
权限要求普通用户可查;查询全部包信息通常需 root 或 sudo

典型使用场景

  • 接手上线系统时快速摸清装了哪些中间件与运行时
  • 等保或合规审计要求提供软件清单,按月导出留档
  • 迁移前比对源机与目标机的包差异,避免遗漏依赖
  • 排查漏洞公告影响面:按包名过滤确认版本是否命中受影响区间
  • 批量终端巡检时把清单收集回管理平台做统一比对

资产盘点示例

资产盘点示例
dnf list installed | wc -l                       # 已装包总数,作为盘点基准值
dnf list installed | grep -E 'nginx|java|mysql'  # 按关键字过滤关键组件
dnf list nginx                                   # 同时看已装版本与仓库可用版本
dnf list installed > /tmp/pkgs-$(date +%F).txt   # 落盘留档,文件名带日期便于版本比对
dnf repoquery --installed -a | wc -l             # 只列包名,输出更规整,适合脚本消费

版本比对与差异核对

版本比对与差异核对
dnf list installed nginx          # 第一列是包名.架构,第二列版本号,第三列是来源仓库
diff <(cut -d' ' -f1 old.txt) <(cut -d' ' -f1 new.txt)   # 两次盘点结果比对,定位新增与缺失
rpm -q --qf '%{NAME} %{VERSION}-%{RELEASE}\n' nginx      # 需要精确版本号时用 rpm 查询

输出逐列读法

列含义正常与异常
第一列包名与架构(如 nginx.x86_64)出现 i686 等非预期架构需确认是否需要清理
第二列版本-发布号(epoch 有时前置)与基线不一致说明版本漂移
第三列来源仓库标识显示 @System 或 @命令行为本地安装,非仓库来源要留意
首行标题Installed Packages 或 Available Packages确认当前输出的是已装还是可装,避免看错语义
无任何输出该包未安装排查依赖缺失时先确认包名拼写与仓库是否启用
dnf list installed 读的是本地 rpmdb,断网可用;而 dnf list 不带参数会尝试同步仓库元数据,内网源不可达时会报错或长时间等待。
需要机器可读的稳定输出时,优先用 dnf repoquery 或 rpm -qa,格式比 dnf list 更适合脚本解析。

易错点

  • 把 dnf list 与 dnf list installed 混用:前者会拉仓库元数据并在内网断源时报错,盘点场景应固定用 installed
  • 在大系统上直接 dnf list installed 并重定向,输出量大且慢,脚本里先按关键字过滤再落盘可显著缩短时间
  • 只留一份最新清单,缺历史版本无法做差异比对,应保留带日期的历史文件
  • 把非仓库来源安装的包(显示 @System)当成官方包,未登记来源的第三方包往往是合规审计的关注点
  • 依赖 dnf list 的版本列做精确比对,遇到 epoch 前缀或不同仓库的 release 号容易误判,精确比对应使用 rpm -q --qf

数据来源与参考

  • dnf list 手册
  • openEuler 文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌