温馨提示×

CentOS如何更新Linux系统版本

小樊
43
2025-12-29 13:40:45
栏目: 智能运维

CentOS系统更新与跨版本升级指南

一、先明确目标与准备

  • 明确目标:是做同版本的补丁与安全更新,还是跨版本的主版本升级(如从CentOS 7CentOS Stream 8/9或迁移至AlmaLinux/Rocky Linux)。
  • 备份与评估:备份关键数据与配置(如**/etc、/var、数据库**),在测试环境验证业务兼容性,规划回滚方案与维护窗口。
  • 检查现状:查看当前系统版本与内核,确认仓库可用。
    • 查看版本:cat /etc/redhat-release
    • 查看内核:uname -r
  • 重要提醒:CentOS 7已于2024-06-30停止维护(EOL),2024-12-31起官方仓库已下线,继续驻留存在安全与合规风险;建议优先规划迁移至CentOS Stream 8/9AlmaLinux/Rocky Linux 8/9

二、同版本更新与内核升级(推荐先做)

  • CentOS 7(YUM)
    • 刷新缓存并更新:sudo yum clean all && sudo yum makecache && sudo yum update -y
    • 仅安全补丁:sudo yum update --security -y
    • 重启:sudo reboot
  • CentOS 8/Stream(DNF)
    • 更新:sudo dnf update -y
  • 可选:仅升级内核(以获取新驱动/特性)
    • 导入ELRepo并安装主线稳定内核(示例为CentOS 7):
      • sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
      • sudo yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
      • sudo yum --enablerepo=elrepo-kernel install kernel-ml -y
      • 确认默认启动新内核(检查/boot/grub2/grub.cfg或使用grub2-set-default 0后生成配置),重启:sudo reboot
    • 验证:uname -r
  • 自动化安全更新(可选)
    • CentOS 7:sudo yum install yum-cron -y && sudo systemctl enable --now yum-cron
    • 编辑/etc/yum/yum-cron.conf,将apply_updates=yes以启用自动应用。

三、跨版本升级路径与步骤

  • 路径A(原地跨版本升级,适用于有明确升级路径的场景)
    • CentOS 7 → CentOS Stream 8/9(使用ELevate)
      • 准备与检查:sudo yum update -y,安装ELevate与Leapp:sudo yum install -y elevate-release leapp leapp-data-centos
      • 预检:sudo leapp preupgrade(按报告修复阻断项)
      • 执行升级:sudo leapp upgrade
      • 重启:sudo reboot
    • CentOS 8 → CentOS Stream 8(就地切换)
      • sudo dnf swap centos-linux-repos centos-stream-repos -y && sudo dnf distro-sync -y
      • sudo reboot
  • 路径B(迁移替代,推荐用于生产)
    • CentOS 7/8迁移至AlmaLinux/Rocky Linux 8/9(使用官方迁移工具)
      • 备份与评估后,按发行版官方迁移文档执行(如almalinux-deploymigrate2rocky),全程在维护窗口内完成并充分回归测试。
  • 不建议的路线
    • 传统preupgrade-assistant/redhat-upgrade-tool主要用于RHELRHEL的升级,对CentOS→CentOS跨主版本支持有限且易出问题,优先采用ELevate迁移替代

四、离线更新与无外网环境

  • 挂载ISO作为本地仓库并更新
    • 挂载:sudo mkdir -p /mnt/cdrom && sudo mount -o loop /path/to/CentOS.iso /mnt/cdrom
    • 备份并配置本地源:
      • sudo mkdir /etc/yum.repos.d/bak && sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
      • 新建/etc/yum.repos.d/local.repo
        [local]
        name=CentOS Local Repo
        baseurl=file:///mnt/cdrom
        enabled=1
        gpgcheck=0
        
    • 更新与重启:
      • sudo yum clean all && sudo yum makecache
      • sudo yum update -y
      • sudo reboot
  • 说明:离线方式主要用于补丁/小版本更新;跨主版本离线升级风险高、依赖复杂,建议在有外网的预备环境完成升级后再迁移。

五、升级后验证与回滚建议

  • 版本与内核核验
    • 系统版本:cat /etc/redhat-release
    • 内核版本:uname -r
    • 已安装包与变更:rpm -qa --last | headdnf history(或yum history
  • 服务与业务回归
    • 校验关键服务(如SSH、数据库、Web/中间件)、网络与存储挂载、定时任务与日志告警。
  • 回滚预案
    • 使用LVM快照虚拟机快照全量/增量备份在升级前建立恢复点;跨版本升级失败时应优先回滚到快照/备份,再评估迁移路径。

0