1. 概览与前提要求
IT 运维必看:CentOS/RedHat 环境中用 yum 更新系统包的详细步骤与注意事项,核心在于通过有计划的变更实现安全性与稳定性提升。
关键目标是确保系统镜像中的软件包得到及时修复与功能改进,同时避免因为更新带来的服务中断或不可预期的问题。
在正式进行更新之前,检查网络连通性与 仓库可用性是第一步。若仓库不可用,后续更新将无法获取元数据与软件包。
1.1 网络与仓库的可达性
在更新前,请确保主机能访问互联网并能解析镜像源域名,且 /etc/yum.repos.d/ 目录下的仓库配置是可用的。若企业环境使用代理,请务必在全局或 yum 配置中正确设置代理信息,以免更新失败。
测试连通性是最直接的验证办法,尤其是在存在网络分段或防火墙策略时,请确认镜像源端口(通常是 80/443)对主机开放。
ping -c 4 mirrors.aliyun.com
如果遇到 DNS 解析或端口阻塞,请先解决网络问题,以确保后续步骤的顺利执行。
1.2 备份与变更窗口
更新前应对关键配置与数据进行备份,降低回滚成本。尤其是 /etc、/var/lib、/opt 等目录中存放的自定义配置与应用数据,建议进行快照或压缩备份。
另外,设定一个明确的变更窗口,并在非高峰期执行更新,确保在出现问题时有可控的容错时间。
tar czf /root/system-config-backup.tar.gz /etc /var/lib /opt
在执行更新前后,也应准备好紧急回滚计划与监控策略,以便快速发现并应对潜在问题。
2. 使用 yum 更新的详细步骤
2.1 清理缓存与检测更新
更新前先清理缓存,确保从最新的元数据缓存中获取更新信息。清理操作有助于避免过时的缓存导致的更新失败。
之后通过检查更新来了解将要发生的变更,关注将被更新的包清单,以便评估对关键服务的影响。
yum clean all
yum check-update
2.2 全量更新系统包
在确认无重大风险后,可以执行全量更新,以应用所有可用的安全修补与版本改进。若你希望在最短时间内完成更新,请使用 自动确认选项。更新完成后,重点关注内核与核心服务的变动。
yum update -y
如果系统使用多仓库源,请确保优先级配置合理,以避免版本冲突或回滚困难。
2.3 安全更新优先
在高安全性要求的环境中,优先应用安全更新。安全补丁往往修复已知漏洞,降低被攻击的风险,但也要防止与现有业务的兼容性问题。
yum --security update -y
若你的系统未安装 security 更新插件,需先安装相关插件以支持该功能。
2.4 排除特定包的更新
在某些场景下,某些组件对稳定性要求极高,因此需要锁定版本避免自动更新。先安装版本锁插件,再进行排除配置。
yum install -y yum-plugin-versionlock
随后对需要固定版本的包进行锁定,例如锁定某个中间件或自定义组件:
yum versionlock add httpd
若需要移除锁定,可使用 yum versionlock delete。请在变更前评估依赖关系,以避免破坏性变更。
2.5 更新后核查与重启
更新完成后,关键是核查运行状态并判断是否需要重启系统。使用 needs-restarting 命令可以判断是否有需要重启的进程,-r 选项会给出是否应重启的明确指引。
needs-restarting -r
如果涉及内核更新,通常需要重启以使新内核生效。请在变更窗口内安排系统重启并校验服务的可用性。
reboot
2.6 回滚与应急方案
若更新引发不可预期的问题,应具备回滚能力。常见思路包括使用系统快照、备份回滚以及应用层回滚策略。对于虚拟化环境,可以借助快照恢复或创建基线镜像,以实现快速回退。
回滚策略应在更新前就明确并测试过,确保在发生故障时能快速降级至可用状态。
2.7 演练与 dry-run
在正式生产环境进行大规模更新前,建议进行演练以验证流程的可行性。可通过 dry-run 来预演更新过程,确保没有意外行为。
yum update --assumeno
3. 更新后的注意事项
3.1 服务影响与监控
更新完成后,务必对关键服务进行快速健康检查,确保日志无异常、连接正常、性能符合预期。系统与应用日志的快速排错能力是保障稳定性的关键。
常用的核查动作包括查看服务状态、查询最近的日志条目,以及监控 CPU、内存、网络等指标。
systemctl status httpd
journalctl -u httpd -n 100 --since "1 hour ago"
另外,可以结合监控告警系统对关键指标设置阈值,以便在异常时及时通知运维人员。
3.2 安全与合规
更新过程要遵循组织的变更管理流程,确保有变更记录和审计痕迹。对涉及安全修补的更新,需在合规范围内完成,并及时验证修补效果。
定期回顾仓库策略、签名校验和软件源的信任链,确保 软件包签名验证机制有效,避免遭遇恶意镜像或中间人攻击。
3.3 故障排查常见问题
若更新后出现问题,优先排查依赖冲突、仓库元数据损坏、以及内核变更导致的启动失败等常见原因。遇到 GPG 签名错误时,应重新导入正确的 GPG 公钥并重新验证。
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
yum clean all
yum check-update
通过这些排查步骤,可以快速定位问题并恢复服务。强烈建议在生产环境中逐步应用、记录变更日志,并在必要时执行回滚以确保业务连续性。


