最常用且安全的清理方式是执行yum clean all或dnf clean all,可释放/var/cache/yum或/var/cache/dnf空间;建议先用du -sh查看缓存实际大小,再按需选择clean packages(删rpm包)、clean metadata(删元数据)等精准命令,清理后运行yum makecache或dnf makecache重建索引。

直接执行 yum clean all 或 dnf clean all 是最常用、最安全的清理方式,能有效释放 /var/cache/yum 或 /var/cache/dnf 占用的空间,尤其当根目录(/)因缓存堆积而告急时。
确认缓存实际占用再动手
盲目清理前先看一眼到底占了多少空间:
- 查 YUM 缓存大小:
sudo du -sh /var/cache/yum - 查 DNF 缓存大小:
sudo du -sh /var/cache/dnf - 如果结果是几百 MB 甚至几个 GB,说明缓存确实成了“空间杀手”
- 注意:有些系统(如较老 CentOS 7)可能只用
yum;Fedora 22+、CentOS 8+、RHEL 8+ 默认用dnf,命令兼容但底层更高效
精准清理比全量更稳妥
clean all 一步到位,但有时你只想清包不碰元数据,或反之。按需选择更可控:
-
sudo yum clean packages或sudo dnf clean packages→ 只删下载好的 RPM 文件(通常最占空间) -
sudo yum clean metadata或sudo dnf clean metadata→ 只删仓库元数据(较小,但下次makecache或update会重新拉取) -
sudo yum clean expire-cache→ 刷新过期标记,不删文件,适合更新失败后快速重试 - 真正需要“全清”时再用:
sudo yum clean all或sudo dnf clean all
清理后别忘重建本地缓存
清完缓存后,首次运行 yum update 或 dnf update 会明显变慢——因为要重新下载元数据。可主动触发同步:
- YUM 系统:
sudo yum makecache - DNF 系统:
sudo dnf makecache - 该操作不下载安装包,只更新索引,耗时短、网络开销小
- 建议在非高峰时段执行,避免影响其他运维任务
长期维护:加个定时清理更省心
手动清理容易遗忘,设个 cron 每周自动跑一次很实用:
- 编辑 root 的定时任务:
sudo crontab -e - 添加一行(例如每周日凌晨 3 点执行):
0 3 * * 0 dnf clean packages && dnf clean metadata - 用
packages+metadata组合而非all,避免误清插件等次要缓存 - 生产环境建议先在测试机验证,确认不影响日常 yum/dnf 使用逻辑











