yum clean all 会把所有缓存一次性清掉,既包括元数据,也包括 .rpm 包,不过一般并不建议动不动就这么做;更常用、也更实在的做法,其实是 yum clean packages(只删除 .rpm 包,保留元数据,后续操作会更快)和 yum clean metadata(只刷新元数据,适合软件源有变动,或者出现相关错误提示时使用)。清理完成后,最好马上执行 yum makecache,把缓存重新建起来。

CentOS怎么清理yum缓存文件

yum clean all 能清掉所有缓存,但多数时候没必要——它会连元数据一起删,下次 yum installyum search 就得重新下载,拖慢操作速度。真正该做的,是按需清理。

只删 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.xmlprimary.xml.gz 等索引文件,强制 yum 下次运行时重新拉取最新仓库结构。 - 常见错误现象:yum list available 显示旧版本,yum update 找不到新包 - 不要混用:yum clean metadata 后立即执行 yum makecache,否则后续命令会卡在“retrieving”阶段 - 避免在批量部署脚本里无条件调用——元数据重建需网络 IO,可能超时失败

手动删缓存前必须确认的三件事

直接 rm -rf /var/cache/yum/* 看似彻底,但风险明显: - yum 进程正在写缓存时执行,可能破坏目录结构,导致后续 yumIOError: [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 allyum 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 看似省事,实则把缓存机制的优势全抹掉了。

本文转载于:https://www.php.cn/faq/2978414.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。