yum clean all 会彻底清除所有缓存(含元数据和.rpm包),但通常不推荐;最实用的是 yum clean packages(仅删.rpm包,保留元数据以加速后续操作)和 yum clean metadata(仅刷新元数据,适用于源变更或错误提示),清理后应立即执行 yum makecache 重建缓存。

yum clean all 能清掉所有缓存,但多数时候没必要——它会连元数据一起删,下次 yum install 或 yum search 就得重新下载,拖慢操作速度。真正该做的,是按需清理。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
只删 rpm 包缓存,保留元数据
yum clean packages 是最常被低估的命令。它只清掉 /var/cache/yum/*/packages/ 下已下载但未安装的 .rpm 文件,而 repodata/ 里的元数据完好无损。这样既释放磁盘空间(通常占缓存 80% 以上),又不影响后续依赖解析和搜索速度。
- 适用场景:磁盘空间告急,但不想等几分钟重建元数据
- 注意:keepcache=1(默认)才会有包缓存;若设为 0,此命令无效果
- 查看占用:运行 du -sh /var/cache/yum/*/packages 确认实际大小
只刷新元数据,不碰 rpm 包
yum clean metadata 适合源地址变更、镜像同步延迟或遇到 Cannot retrieve metalink for repository 错误时。它删的是 repodata/ 目录下的 repomd.xml、primary.xml.gz 等索引文件,强制 yum 下次运行时重新拉取最新仓库结构。
- 常见错误现象:yum list available 显示旧版本,yum update 找不到新包
- 不要混用:yum clean metadata 后立即执行 yum makecache,否则后续命令会卡在“retrieving”阶段
- 避免在批量部署脚本里无条件调用——元数据重建需网络 IO,可能超时失败
手动删缓存前必须确认的三件事
直接rm -rf /var/cache/yum/* 看似彻底,但风险明显:
- yum 进程正在写缓存时执行,可能破坏目录结构,导致后续 yum 报 IOError: [Errno 2] No such file or directory
- 某些插件(如 fastestmirror)依赖 timedhosts 文件,删了会影响镜像选择逻辑
- /var/cache/yum 下可能有非空子目录(如 plugins/),rm -rf 会一并清除插件状态
- 正确做法:先停掉所有 yum 进程(ps aux | grep yum),再用 yum clean all,最后检查 ls -la /var/cache/yum 是否只剩空目录结构
清理后不重建缓存,等于白清
yum clean all 或 yum clean metadata 执行完,如果不跟 yum makecache,首次 yum install 会卡住十几秒到几分钟,且无法显示进度条。这不是 bug,而是 yum 默认行为:它边下载边构建缓存,期间不响应 Ctrl+C。
- 生产环境建议:清理后立刻跑 yum makecache --quiet(加 --quiet 避免刷屏)
- 若网络不稳定,可加 --setopt=metadata_expire=0 强制跳过本地过期检查
- 注意:yum repolist 也会触发缓存重建,但输出更冗长,不如 makecache 干净
真正关键的不是“清得干净”,而是“清得及时且可控”。/var/cache/yum 里元数据比 rpm 包更重——它决定你能看到什么包、依赖是否能解出来。盲目 clean all 看似省事,实则把缓存机制的优势全抹掉了。










