从 CentOS 7.6 升级到 CentOS 8.2 是一次重大版本升级(major version upgrade),不仅仅是补丁或小版本更新,而是跨越了两个主要发行版。这会带来许多核心架构和系统组件的显著变化。以下是主要的核心变化:
1. 底层系统架构变化
| 项目 | CentOS 7.6 | CentOS 8.2 |
|---|---|---|
| 内核版本 | 3.10.x 系列(基于 Linux 3.10 LTS) | 4.18.x 系列(基于 Linux 4.18 LTS) |
| init 系统 | System V init + systemd 共存 | 完全使用 systemd(System V 被弃用) |
| 文件系统默认 | XFS(但 ext4 仍广泛支持) | 默认为 XFS,对 Btrfs 支持有限,引入 Stratis(实验性存储管理) |
✅ 影响:内核升级带来更好的硬件支持、性能优化和安全增强。
2. 软件包管理系统变更
| 项目 | CentOS 7.6 | CentOS 8.2 |
|---|---|---|
| 包管理器 | yum(基于 rpm 和 Python 2) |
dnf(Dandified YUM,基于 rpm 和 Python 3) |
| 默认仓库格式 | yum metadata (repodata) | 使用更高效的 YUM 4 / DNF 与 Solv 求解器 |
| 软件包命名 | 多数软件包以传统方式提供 | 引入 RPM 模块(modularity) |
🔧 模块化(Modularity):
- 允许在同一系统上安装多个版本的软件(如 Python 3.6、3.8、Node.js 10/12/14)
- 使用命令如:
dnf module install nodejs:14
3. Python 环境变化
- CentOS 7:默认 Python 2.7,Python 3 需手动安装
- CentOS 8:默认无
python命令指向解释器,需显式使用python3或通过 alternatives 设置 - Python 2 已被标记为废弃,不再默认安装
⚠️ 注意:依赖
#!/usr/bin/python的脚本可能失效,建议改为#!/usr/bin/python3
4. 网络和防火墙工具
| 组件 | CentOS 7.6 | CentOS 8.2 |
|---|---|---|
| 默认防火墙 | firewalld(支持 iptables 后端) |
firewalld + nftables 后端(取代 iptables) |
| 网络配置 | network-scripts(ifcfg 文件) |
推荐使用 NetworkManager + nmcli/nmtui |
| ifup/ifdown | 可用 | 不再推荐,逐渐废弃 |
📡 建议:使用
nmcli进行网络管理,避免直接编辑 ifcfg 文件。
5. 安全与认证机制增强
- OpenSSH 更新:支持更现代的加密算法,禁用弱算法(如 SSHv1、MD5)
- SELinux:继续默认启用,策略更严格
- 身份管理集成:对 IdM(Identity Management) 和 SSSD 支持更好
- 引入 FIPS 140-2 支持 更完善
6. 容器与云原生技术支持提升
- 内置支持 Podman(替代 Docker 的无守护进程容器运行时)
- 支持 Buildah(构建容器镜像)、Skopeo(镜像复制)
- 默认不安装 Docker,鼓励使用 Podman
- 更好地集成 Kubernetes 和 CRI-O
☸️ 适合现代 DevOps 和云环境部署。
7. 生命周期与支持时间
- CentOS 7:支持至 2024年6月30日
- CentOS 8:已于 2021年底停止维护(因 CentOS 项目转向 Stream)
⚠️ 重要提示:CentOS 8.2 已于 2021 年 12 月 31 日结束生命周期(EOL),不再接收安全更新。
❗ 建议不要在生产环境中使用 CentOS 8,考虑迁移到:
- AlmaLinux 8 / 9
- Rocky Linux 8 / 9
- CentOS Stream 8 / 9
8. 其他重要变化
- time synchronization:
chronyd成为默认 NTP 客户端(取代ntpd) - 文本编辑器:
vim-minimal默认安装,完整版需手动安装 - GUI 支持:GNOME 3.28+,Wayland 成为默认显示服务器(可切换回 Xorg)
- 编译工具链更新:
- GCC 版本升级(GCC 8+)
- glibc 更新到 2.28+
- binutils、make 等工具更现代
总结:核心变化一览
| 类别 | 主要变化 |
|---|---|
| 内核与系统 | 升级到 4.18,全面使用 systemd |
| 包管理 | yum → dnf,引入模块化 |
| Python | Python 2 废弃,Python 3 成为主流 |
| 网络 | network-scripts 废弃,推荐 NetworkManager |
| 安全 | nftables 替代 iptables,FIPS 支持增强 |
| 容器 | 原生支持 Podman、Buildah |
| 生命周期 | CentOS 8 已 EOL,建议迁移至替代发行版 |
升级建议
- 不推荐直接在线升级(从 7 到 8),官方未提供稳定工具(Leapp 工具存在风险)
- 推荐采用 全新安装 + 数据迁移 的方式
- 在升级前充分测试应用兼容性(特别是依赖旧库或 Python 2 的程序)
- 考虑跳过 CentOS 8,直接迁移到 Rocky Linux 8/9 或 AlmaLinux 8/9
如你正在规划升级,请优先评估是否应迁移到 CentOS 的继任者发行版,而非停留在已终止支持的 CentOS 8。
云小栈