从 CentOS 7.9 升级到 CentOS 8 是一个重大版本升级,涉及架构、软件包和工具链的显著变化。以下是主要变化和注意事项:
一、核心变化
-
软件包管理
- YUM 被 DNF 取代:CentOS 8 使用 DNF(Dandified YUM)作为默认包管理器,语法与 YUM 类似但性能更好,依赖解析更高效。
- 模块化仓库(Application Streams):提供更灵活的软件版本管理(如 Python 3.6/3.8、Node.js 等可并行安装)。
-
内核与系统架构
- 内核版本:从 3.x 升级到 4.18+,支持新硬件和特性(如 BPF、文件系统改进)。
- 默认文件系统:XFS 支持共享数据块和 reflink,提升效率。
-
编程语言与运行时
- Python 3 为默认:CentOS 8 默认安装 Python 3.6(
/usr/bin/python3),Python 2 需手动安装。 - 其他运行时:GCC 8.2、OpenJDK 11、Ruby 2.5 等。
- Python 3 为默认:CentOS 8 默认安装 Python 3.6(
-
安全与网络
- 防火墙:
firewalld使用 nftables 后端(替代 iptables)。 - 身份管理:FreeIPA 集成增强。
- 防火墙:
-
服务管理
- Systemd 版本升级:改进容器集成和资源管理。
二、升级注意事项
-
不支持直接升级
CentOS 官方不提供从 7 到 8 的直接升级路径(无类似yum upgrade的平滑升级)。需通过以下方式:- 全新安装:备份数据后重新安装 CentOS 8。
- 迁移工具:可使用
redhat-upgrade-tool(非官方,有风险)或第三方工具(如 ELevate),但需充分测试。
-
兼容性问题
- 旧软件包可能不兼容:需检查自定义应用、驱动(如第三方内核模块)是否支持 CentOS 8。
- 配置差异:服务配置文件路径或格式可能变化(如 Apache/Nginx)。
-
硬件要求
- 确保硬件支持 UEFI/GPT(建议),旧 BIOS/MBR 可能需调整。
-
生命周期
CentOS 8 已提前终止维护(原定 2029 年,实际 2021 年底结束),建议考虑替代方案:- Rocky Linux/AlmaLinux:CentOS 8 的社区接替版本。
- CentOS Stream:滚动发布版本(介于 Fedora 和 RHEL 之间)。
- RHEL 开发者订阅:免费用于小型生产环境。
三、建议升级步骤
-
评估与备份
- 运行
rpm -qa记录已安装软件包。 - 备份数据、配置文件及数据库。
- 运行
-
测试环境验证
- 在虚拟机中模拟升级,测试关键应用兼容性。
-
选择替代系统
若坚持使用 CentOS 系列,推荐:CentOS 7.9 → Rocky Linux 8/AlmaLinux 8(直接迁移)或考虑 Ubuntu LTS、Debian 等稳定发行版。
-
执行安装
- 全新安装目标系统,恢复数据并重新配置服务。
四、常见问题
- Python 2 脚本报错:需修改脚本指向 Python 3 或手动安装 Python 2。
- 旧内核模块失效:需联系供应商提供 CentOS 8 兼容版本。
- 仓库配置变化:重新配置第三方仓库(如 EPEL 8)。
总结
从 CentOS 7.9 到 8 是跳跃式升级,需谨慎规划。由于 CentOS 8 已停止维护,建议直接迁移到 Rocky Linux 8 或 AlmaLinux 8(提供官方迁移工具)。生产环境务必先在测试环境中验证!
CLOUD技术笔记