dnf 缓存异常?
dnf 元数据缓存异常导致行为怪异的原因与清缓存方法:仓库变了缓存没刷新、缓存损坏、多机共用缓存目录错乱,给排查命令。
简短答案
“dnf 行为怪”十有八九是元数据缓存旧了:换了源、清了旧源,本地缓存还指着上次的仓库版本。标准动作是 dnf clean all 后重建元数据再验证;反复清还报错,多半是缓存文件损坏,删掉缓存目录重拉。
现象对照表
| 现象 | 原因 |
|---|---|
| 明明源里已删的包还能列出 | 元数据缓存过期 |
| 换源后行为不变 | 缓存未刷新 |
| clean 后报解压/哈希错误 | 缓存文件损坏 |
| 多机互相影响 | 共享缓存目录配置错 |
排查步骤
# 标准清缓存三连
dnf clean all
dnf makecache
dnf check-update # 看可更新列表,验证源是否真生效
# 缓存损坏:删缓存目录重来
# 缓存位置以系统配置为准(一般在 /var/cache/ 下,可用配置项确认)
# 删掉对应缓存后重跑 dnf makecache
处理办法
- 源变更后必须
dnf clean all,这是第一优先级; - 反复下载失败:查网络与仓库服务可达性(
curl -I测试 repo 里的 baseurl); - 多台机器共用一台源服务器时,缓存问题逐台独立清,不要共用缓存目录;
- 系统基线对照 服务器 V11 条目;整环境兜底时介质取 银河麒麟镜像列表,U 盘写法参考 Rufus 启动盘条目。
操作小结
- 源变了就 clean all,别无脑查包;
- 缓存损坏直接删缓存重拉;
- 用 dnf check-update 验证源生效;
- 多机环境缓存独立管理。