CentOS需手动配置Yum自动更新,推荐使用yum-cron并设置update_cmd=security仅应用安全更新,同时启用yum-plugin-security插件、禁用冲突第三方仓库,并做好更新后验证与回滚准备。

CentOS系统默认不启用Yum自动更新,需手动配置才能实现安全、可控的定期升级。关键在于合理启用官方安全仓库(如centos-upstream或updates中的安全通道),并避免全包无差别更新带来的兼容性风险。
启用并验证安全更新仓库
CentOS 7/8 默认的 updates 仓库包含所有常规更新,但不区分安全补丁。要精准获取安全修复,需确认是否启用了 centos-upstream(仅限 CentOS Stream)或通过 yum-plugin-security 插件识别安全更新。
- 安装安全插件:
yum install yum-plugin-security - 查看可用安全更新:
yum updateinfo list security all - 检查仓库状态:
yum repolist enabled | grep -E "(base|updates|centos-upstream)" - 若缺少安全源,可编辑
/etc/yum.repos.d/CentOS-Base.repo,确保[updates]段中enabled=1,且未被第三方仓库覆盖
配置Yum自动更新(推荐使用yum-cron)
yum-cron 是 CentOS 官方推荐的轻量级自动更新服务,支持定时检查、下载和安装,并可精细控制更新类型(如仅安全更新)。
- 安装服务:
yum install yum-cron - 启用并启动:
systemctl enable --now yum-cron - 编辑主配置:
/etc/yum/yum-cron.conf - 关键设置示例:
update_cmd = security(只应用安全更新)update_messages = yes(发送邮件通知)download_updates = yes(预下载,减少安装时长)apply_updates = yes(自动安装,设为no则仅提醒)
禁用高风险仓库与冲突源
第三方仓库(如 EPEL、Remi、RPMForge)可能提供非标准版本,与安全更新冲突,甚至引入漏洞。生产环境应严格管控。
- 列出已启用第三方源:
yum repolist enabled | grep -i -E "(epel|remi|rpmforge|ius)" - 临时禁用:
yum --disablerepo=epel update - 永久禁用:编辑对应 repo 文件,将
enabled=1改为enabled=0,或使用yum-config-manager --disable epel - 建议策略:EPEL 可保留但设为
enabled=0,仅在明确需要时启用;其他非主流仓库建议直接卸载
更新后验证与回滚准备
自动更新虽便捷,但必须配套验证机制和应急手段,防止核心服务异常。
- 更新后检查关键服务状态:
systemctl list-units --state=failed - 记录变更:
rpm -qa --last | head -20查看最近安装包 - 启用历史记录备份:
yum history list和yum history undo [id]可快速回退 - 重要系统建议在更新前创建快照(如 LVM 快照或虚拟机快照)










