首页/系统/Linux 运维命令速查/dnf/yum 缓存清理与元数据修复

dnf/yum 缓存清理与元数据修复

报错 Error: Failed to download metadata、cache 冲突或下载慢时:clean all + makecache 重建缓存;必要时换镜像源。

Linux 运维命令速查系统更新于 2026-10-13

dnf clean 与 makecache 解决什么

dnf clean all 清空 /var/cache/dnf 下的元数据与已下载的包,dnf makecache 按当前 repo 配置重新拉取元数据。元数据损坏、镜像不同步、签名校验失败、换源之后,重建缓存是标准第一步。RHEL 8、CentOS 8/Stream、Rocky、Alma、Fedora 用 dnf;RHEL 7/CentOS 7 用 yum,8 系里 yum 是 dnf 的兼容入口,配置文件分别是 /etc/dnf/dnf.conf 与 /etc/yum.conf。

基本信息

适用平台RHEL/CentOS/Rocky/Alma/Fedora
权限要求root(缓存目录写入与装包都需要)
缓存目录/var/cache/dnf(7 系为 /var/cache/yum)
仓库配置/etc/yum.repos.d/*.repo
日志/var/log/dnf.log 与 /var/log/dnf.rpm.log

典型使用场景

  • 报 Failed to download metadata for repo:元数据损坏或镜像暂时不同步
  • 新增或切换镜像源之后,让新配置立即生效
  • 改过 baseurl、gpgcheck、exclude 等 repo 参数后刷新缓存
  • 磁盘吃紧时清掉已下载的 rpm 释放空间
  • 弱网机房提前预热元数据,缩短后续安装等待

常用示例

常用示例
dnf repolist -v                     # 先确认 repo 列表与其 baseurl 是否可达
du -sh /var/cache/dnf              # 看缓存占用有多大,判断值不值得清
dnf clean all                      # 清元数据与包缓存,不影响已安装的软件包
dnf makecache                      # 按当前 repo 重建元数据
dnf makecache --refresh            # 忽略缓存有效期,强制重新拉取
dnf repolist                       # 复核 repo 数量与包总数是否正常
dnf install -y nginx               # 实装一个包做端到端验证

clean 子命令怎么选

子命令清掉什么使用建议
clean all元数据 + 包缓存 + dbcache 全清缓存疑似损坏或换源后用;弱网环境重下成本高
clean packages只清已下载的 rpm磁盘紧张时最安全的选择
clean metadata只清元数据一般无需手动执行,dnf 会按元数据有效期自动处理
clean dbcacherepo 的 sqlite 解析缓存元数据反复出错时可以一试
makecache --refresh忽略有效期强制刷新换源、镜像不同步后的首选动作
别用 rm 手工删 /var/cache/dnf,容易留下不一致的 dbcache 与错误属主,后续出现权限或元数据异常的假故障;统一走 dnf clean 子命令。
yum 与 dnf 在 8 系是同一个程序的两套入口:脚本里写 yum 在只装了 dnf 的最小化镜像上可能找不到命令,写 dnf 在 7 系则不存在。跨版本脚本先探测命令是否存在。
默认情况下 dnf 由 dnf-makecache.timer 在后台定期刷新元数据,手工 makecache 多用于换源或排障之后立即验证;如果元数据总在老化,先看这个 timer 是否被禁用。

易错点

  • clean all 之后在离线或弱网环境重下全部元数据,时间与带宽成本远超预期;先试 clean packages 或 makecache --refresh
  • 只清缓存不查源:镜像不同步、DNS 或证书问题时清多少次都还是失败,先 dnf repolist -v 看 baseurl 是否可达
  • gpgcheck=1 而仓库签名密钥尚未导入时,反复 makecache 一直报错,被误当成缓存问题;先装好对应的 release 包或导入密钥
  • 缓存目录被误改属主后报权限错误,继续 clean 也修不回来,需要核对目录属主与 SELinux 上下文

数据来源与参考

  • man 8 dnf(clean/makecache)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌