从 CentOS 7.6 升级到 CentOS 8.0 是一次重大版本升级(major version upgrade),涉及底层架构、软件包管理、系统工具和默认配置的显著变化。以下是核心变化的详细总结:
1. 基础架构与内核更新
- 内核版本升级:
- CentOS 7.6:使用 Linux 内核 3.10.x(长期支持版本)
- CentOS 8.0:升级至 Linux 内核 4.18.0,带来更好的硬件支持、性能优化和新特性(如 eBPF、改进的调度器等)
2. 软件包管理系统变更
-
从 YUM 到 DNF:
- CentOS 8 使用 DNF(Dandified YUM) 作为默认包管理器,取代了传统的 YUM。
- DNF 基于 RPM 和 libsolv,依赖解析更高效,支持模块化。
yum命令仍可用,但实际是 DNF 的符号链接。
-
RPM 包格式增强:
- 支持更大的包大小、更强的依赖管理和文件级依赖。
3. 引入 RPM 模块(Modularity)
-
AppStream 仓库:
- 软件生命周期与操作系统分离,允许在同一系统上安装多个版本的用户空间组件(如 Python、Node.js、PHP 等)。
- 示例:可同时启用 Python 3.6 和 Python 3.9(通过模块流 module streams)。
-
BaseOS + AppStream 双仓库结构:
- BaseOS:提供核心操作系统功能,类似传统 CentOS 7 的 base repo。
- AppStream:提供运行时语言、数据库、工具等应用软件。
4. 默认文件系统与分区方案
- XFS 成为默认文件系统(CentOS 7 已使用 XFS,但 8 进一步优化)
- 安装程序使用 LVM 默认开启,简化存储管理
- 引入 Stratis(实验性本地存储管理器),用于简化高级存储功能(如快照、精简配置)
5. 网络与防火墙工具更新
- nftables 取代 iptables 作为后端:
firewalld仍然可用,但底层由 nftables 驱动,性能更好,规则更简洁。
NetworkManager成为核心网络管理工具,推荐替代传统的network服务。
6. Python 版本变化
- Python 2 被弃用:
- CentOS 8 不再默认安装
python(即 Python 2) - 推荐使用
python3,并需显式安装(如dnf install python3) - 系统脚本逐步迁移到 Python 3
- CentOS 8 不再默认安装
7. 系统初始化和服务管理
- systemd 进一步深化:
- 所有服务均使用 systemd 管理,不再支持传统的 SysV init 脚本(兼容层有限)
- 启动速度更快,依赖管理更精确
8. 安全与加密
- OpenSSL 1.1.1:支持 TLS 1.3
- 更强的默认加密策略(通过
crypto-policies包管理) - SELinux 仍默认启用,策略进一步强化
9. 容器与云原生支持增强
- Podman 替代 Docker:
- 默认提供 Podman(无守护进程的容器引擎),兼容 Docker CLI
- 支持 rootless 容器,更安全
- Buildah 和 Skopeo 集成,便于构建和管理镜像
- 更好地集成 Kubernetes 和 CRI-O 运行时
10. 安装与部署方式
- Anaconda 安装器更新:图形化和文本安装界面现代化
- Kickstart 支持改进
- 引入 CoreOS 风格的镜像部署理念(为后续 CentOS Stream 做铺垫)
11. 生命周期与发布模式转变(重要背景)
- CentOS 8 采用较短生命周期(5年),每年发布一个次版本(8.0, 8.1…)
- 后续转向 CentOS Stream(滚动更新的开发版),不再是稳定的下游版本
⚠️ 注意:CentOS 8 已于 2021 年底提前终止支持(原定 2029),建议迁移到 RHEL、AlmaLinux、Rocky Linux 或 Oracle Linux。
升级注意事项
- 不支持就地升级(in-place upgrade):
- Red Hat 和 CentOS 官方不支持从 7 直接升级到 8。
- 必须进行全新安装(clean install),然后迁移数据和配置。
- 应用兼容性需测试(尤其是依赖旧版库或 Python 2 的程序)
- 第三方仓库(如 EPEL)需确认是否支持 CentOS 8
总结:核心变化一览表
| 方面 | CentOS 7.6 | CentOS 8.0 |
|---|---|---|
| 包管理器 | YUM | DNF |
| 软件仓库 | Base/Updates/EPEL | BaseOS + AppStream(模块化) |
| 内核 | 3.10.x | 4.18.0 |
| Python 默认 | Python 2 | Python 3(需安装) |
| 防火墙后端 | iptables | nftables |
| 容器引擎 | Docker(第三方) | Podman(原生) |
| 文件系统 | XFS(默认) | XFS + Stratis(实验) |
| 升级路径 | 支持小版本升级 | 不支持从 7 升级 |
✅ 建议:若需从 CentOS 7 迁移,推荐选择 AlmaLinux 8 或 Rocky Linux 8,它们是 RHEL 8 的 1:1 兼容重建版本,且提供长期支持。
云小栈