centos 7 的 yum 缓存由系统自动管理,不支持直接修改缓存大小值;可通过 keepcache=1 保留已下载 rpm 包,cachedir 更改缓存路径(需权限与手动创建),yum clean all 清空全部缓存而非调整数值。

CentOS 7 不能直接“修改本地缓存值”——缓存路径和行为由 YUM 自动管理,但你可以控制缓存开关、位置和清理策略。
为什么 yum clean all 是最常被误认为“改缓存值”的操作
很多人想“调大缓存”或“指定缓存大小”,但 YUM 没有类似 cache_size=1G 的配置项。它的缓存是元数据(repodata)和已下载 RPM 包的混合存储,默认放在 /var/cache/yum/ 下,按仓库名分目录,不设硬性上限。
-
yum clean all清的是整个缓存目录内容,不是“清空某个数值” - 缓存增长取决于你执行过多少
yum install、yum update,以及是否启用keepcache=1 - 频繁
clean all反而降低后续安装速度,因为每次都要重新下载 repodata
keepcache=1 才真正影响本地 RPM 包是否保留
YUM 默认下载完 RPM 就删掉(keepcache=0),只留元数据。若想让已安装的包保留在本地供复用或离线重装,需改配置:
- 编辑
/etc/yum.conf - 找到
keepcache=0这一行,改成keepcache=1 - 保存后,后续
yum install下载的 RPM 包会留在/var/cache/yum/<repo>/packages/</repo>目录下 - 注意:这不会增大“元数据缓存”,只会多占磁盘存二进制包;
yum clean packages可单独清掉这些 RPM,不影响 repodata
想换缓存目录?可以,但不推荐
YUM 允许通过 cachedir 配置项指定缓存根路径,比如:
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
cachedir=/data/yum-cache
但这需要:
- 确保目标路径存在且
yum进程有写权限(通常是root) - 所有仓库配置(
.repo文件)中不能硬编码baseurl到旧路径 - 首次运行前必须手动
mkdir -p /data/yum-cache,否则yum makecache会失败并报错IOError: [Errno 2] No such file or directory - 实际收益有限:默认
/var/cache/yum已经是标准位置,换路径反而增加维护成本
验证当前缓存状态的三个命令
别猜,直接看:
-
yum repolist enabled—— 确认哪些仓库生效,避免无效源拖慢缓存生成 -
du -sh /var/cache/yum/*—— 查看各仓库缓存实际占用,区分元数据(小)和 packages(可能很大) -
yum makecache --verbose—— 观察 repodata 下载是否卡在某个镜像,这常被误判为“缓存异常”
真正容易被忽略的是:keepcache=1 开启后,没人定期清理 /var/cache/yum/*/packages/,几个月下来可能占几十 GB,而系统日志里从不报警。










