CentOS 7 没有“源更新频率”配置项,实际可调的是 metadata_expire(控制元数据缓存有效期)和 yum-cron(控制软件包自动更新频率),二者分别管理元数据刷新和包安装行为。

CentOS 7 没有“源更新频率”这个配置项——你真正能控制的是元数据缓存刷新时机和软件包自动更新行为,二者常被混淆。
为什么 yum makecache 不是“更新源频率”
执行 yum makecache 只是把当前配置的源(比如阿里云、清华源)里最新的软件包列表、版本、依赖关系等元数据下载到本地 /var/cache/yum,供后续 yum install 或 yum update 查询用。它不改变源本身,也不决定“多久检查一次新包”。源地址写死在 .repo 文件里,只要没改文件,就永远连那个地址。
- 每次运行
yum makecache都会全量拉取元数据,耗时且没必要频繁做 - 默认情况下,yum 会在执行命令前自动检查缓存是否过期(基于
metadata_expire参数),过期才重拉 - 这个过期时间由每个
.repo文件里的metadata_expire控制,不是全局开关
修改 metadata_expire 控制元数据缓存有效期
这是最贴近“源更新频率”的实际可调参数:它决定 yum 多久认为本地元数据已失效、需要重新从源拉取。默认值通常是 90m(90 分钟)或 6h,但国内镜像源建议设长些,减少无效请求。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 编辑任一 repo 文件,例如
/etc/yum.repos.d/CentOS-Base.repo - 在
[base]、[updates]等段落下添加或修改:metadata_expire=24h(表示 24 小时内不重拉元数据) - 支持单位:秒(
3600)、分(90m)、小时(6h)、天(1d) - 设为
metadata_expire=never可禁用自动过期(不推荐,可能漏安全更新)
用 yum-cron 控制软件包自动更新频率
如果你真正想限制的是“系统多久自动装新包”,那得靠 yum-cron,它才是 CentOS 7 官方支持的自动更新调度机制。
- 安装并启用:
yum install yum-cron→systemctl enable --now yum-cron - 核心配置在
/etc/yum/yum-cron.conf,关键参数:-
update_cmd = security:只自动装安全更新(比default更稳妥) -
update_interval = 1:每天检查一次(单位是天,不能设成小时) -
download_updates = yes:提前下好包,避免更新时卡住 -
apply_updates = no:默认不自动安装,建议保持no,人工确认后再跑yum update
-
- 注意:
yum-cron不影响元数据缓存,它只是定时触发yum check-update和yum update
别碰 /etc/yum.conf 里的 keepcache 和 minrate
这两个参数常被误认为能控“频率”,其实完全无关:
-
keepcache=1只决定升级后是否保留下载的 RPM 包(节省磁盘 or 方便重装),不影响任何时间逻辑 -
minrate和maxrate是带宽限速用的(如minrate=10000表示最低 10KB/s),不是时间间隔 - 强行设
minrate=0可能导致某些镜像站拒绝连接,反而让更新失败
真要降低更新频次,只该动 metadata_expire 或 yum-cron.conf,其他地方改了也白改。

















