yum list 和 repoquery的区别

yum listrepoquery 查看仓库包信息时,可能会出现两个命令查看的包数量对不上的问题。这通常是由于两者默认的过滤和行为模式不同导致的。

为了让你快速了解,它们的主要区别可见下表:

特性对比 yum list --all repoquery --repoid=patches --all
显示范围 默认只显示当前系统架构(如x86_64)和noarch的包 默认显示指定仓库中所有架构的包
重复版本 默认隐藏旧版本,通常只显示最新可用版本 默认显示所有版本 (除非使用--show-duplicates
输出格式 格式固定 输出格式更灵活,可通过--queryformat自定义
命令来源 yum核心命令 来自yum-utils工具包
依赖解析 会考虑依赖关系 更侧重于直接查询仓库元数据

命令repoquery --repoid=patches --all--repoid=指定yum仓库ID,可通过yum repolist命令查看具体ID。

🧐 应该以哪个为准?

对于你的漏扫打补丁 场景,repoquery --repoid=patches --all 的结果通常更全面、更准确,因为它会列出仓库中所有架构的所有包,不会因系统架构过滤而遗漏。你可以用它生成的完整包列表来编写你的安装脚本。

🔍 如何获取更精确的列表

想要验证并获取最准确的包列表,可以尝试以下命令:

  1. yum list 显示所有架构的包 (效果更接近 repoquery):

    bash 复制代码
    yum --disablerepo="*" --enablerepo="patches" list available --showduplicates
    • --showduplicates:这个选项会告诉 yum list 显示一个软件的所有版本,而不是只显示最新版本。
  2. 使用 repoquery 并精确输出

    bash 复制代码
    repoquery --repoid=patches --all --queryformat="%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}"

    这会输出所有包的完整名称(NAME-VERSION-RELEASE.ARCH),方便你写脚本处理。

  3. 统计包数量进行对比

    分别用以下命令统计数量,看是否一致:

    bash 复制代码
    # 统计yum list看到的包数量(包含所有版本和架构)
    yum --disablerepo="*" --enablerepo="patches" list available --showduplicates | wc -l
    # 注意:yum list的输出包含表头,实际数量需要减一
    
    # 统计repoquery看到的包数量
    repoquery --repoid=patches --all | wc -l

💡 注意事项

  • 确保仓库元数据最新 :在查询前,最好运行 yum clean all && yum makecache 清理并重建缓存,确保获取的是最新信息。
  • 理解 --all 选项 :对于 repoquery--all 表示列出指定仓库中的所有包。
  • 仓库配置 :确认你的 patches 仓库配置正确且处于启用状态(enabled=1)。
相关推荐
码出钞能力3 小时前
更换libc.so导致linux变砖,通过LD_PRELOAD挽救
linux·服务器
小马学嵌入式~3 小时前
嵌入式 SQLite 数据库开发笔记
linux·c语言·数据库·笔记·sql·学习·sqlite
小猪咪piggy4 小时前
【JavaEE】(24) Linux 基础使用和程序部署
linux·运维·服务器
Haven-4 小时前
Linux常见命令
linux·基本指令
IT 小阿姨(数据库)4 小时前
PgSQL中pg_stat_user_tables 和 pg_stat_user_objects参数详解
linux·运维·数据库·sql·postgresql·oracle
MChine慕青4 小时前
顺序表与单链表:核心原理与实战应用
linux·c语言·开发语言·数据结构·c++·算法·链表
虎头金猫5 小时前
如何在Linux上使用Docker在本地部署开源PDF工具Stirling PDF:StirlingPDF+cpolar让专业操作像在线文档一样简单
linux·运维·ubuntu·docker·pdf·开源·centos
努力学习的小廉6 小时前
深入了解linux系统—— 线程同步
linux·服务器·数据库·算法
2301_810154556 小时前
VM中CentOS 7密码重置
linux·运维·centos