You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

故障转移测试中如何对比两台Linux主机已安装的RPM软件包?

对比RHEL主备服务器已安装RPM的标准方法

针对你遇到的卫星仓库不同导致yum list installed对比干扰的问题,推荐以下几种精准方案:

1. 用rpm命令提取纯净包信息(最直接)

yum list installed会包含仓库字段,而rpm可直接输出不含仓库的包核心标识(名称、版本、发布号、架构),完全规避仓库差异干扰:

  • 在主服务器执行:
    rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" | sort > primary_rpms.txt
    
  • 在备用服务器执行相同命令,输出到secondary_rpms.txt
  • 将其中一个文件传到另一台服务器,用diff对比差异:
    diff primary_rpms.txt secondary_rpms.txt
    
    或用comm命令更直观展示两边独有的包:
    comm -3 primary_rpms.txt secondary_rpms.txt
    

2. 使用dnf repoquery(适用于RHEL 8+)

如果服务器用dnf(RHEL 8及以上版本),可通过repoquery过滤仓库信息,只提取已安装包:

dnf repoquery --installed --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" | sort > rpms.txt

后续对比步骤和上述一致。

3. 用ansible批量对比(多服务器场景)

若有批量管理需求,ansible可直接在本地对比两台服务器的已安装包,无需手动传文件:

ansible -m shell -a "rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort" primary_server,secondary_server > rpm_comparison.txt

之后可在本地用文本工具或脚本分析输出差异。

这些方法仅关注RPM包本身的核心属性,完全忽略仓库来源差异,能精准判断主备服务器已安装包是否一致。

内容的提问来源于stack exchange,提问作者JKPerry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 10:25:39