从 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) |
| 默认文件系统 | XFS(推荐),ext4 可选 | XFS(默认) |
| 初始化系统 | systemd(已使用) | systemd(继续使用,但更新到新版) |
| 软件包管理器 | yum + rpm |
dnf(取代 yum,基于 DNF 技术) |
💡 说明:CentOS 8 使用
dnf作为默认包管理器,它是yum的下一代替代品,性能更好、依赖解析更准确。
2. 软件包与模块化支持(Modularity)
- 引入 RPM 包集合(AppStream):
- CentOS 8 将软件分为 BaseOS 和 AppStream。
- BaseOS:提供核心操作系统功能(如内核、systemd 等)。
- AppStream:提供应用程序、语言运行时和工具(如 Python、Node.js、PHP、数据库等)。
- CentOS 8 将软件分为 BaseOS 和 AppStream。
- 模块化(Modularity):
- 允许在同一系统上安装多个版本的软件(例如 Python 3.6 和 Python 3.9)。
- 使用命令如
dnf module list,dnf module enable来管理。
✅ 优势:更灵活地管理应用版本,避免“版本锁定”问题。
3. Python 默认版本变化
- CentOS 7:默认 Python 2.7,Python 3 需手动安装。
- CentOS 8:Python 3 成为默认,Python 2 已被弃用并最终移除。
- 脚本应使用
python3或明确指定解释器。 - 注意:许多旧脚本若写
#!/usr/bin/python可能出错。
- 脚本应使用
4. 网络配置工具变更
- NetworkManager 成为核心:
- 推荐使用
nmcli或nmtui进行网络管理。
- 推荐使用
- 传统 ifcfg 文件仍在支持,但推荐使用 NetworkManager。
network.service在 CentOS 8 中默认可能不启用,需手动启用。
⚠️ 建议:迁移到
nmcli或使用ip/ss命令替代旧的ifconfig/netstat。
5. 防火墙工具
- firewalld 是默认防火墙(与 CentOS 7 相同)。
iptables服务不再默认启用,但仍可通过iptables-services安装。- 推荐使用
firewall-cmd管理规则。
6. 安全与加密增强
- OpenSSL 更新:从 1.0.2 升级到 1.1.1,支持 TLS 1.3。
- 更强的默认加密策略(通过
crypto-policies包管理):- 可通过
update-crypto-policies切换策略(如 LEGACY、FUTURE 等)。
- 可通过
- SELinux 继续默认启用,但策略有所更新。
7. 容器与云原生支持增强
- Podman 成为默认容器引擎(替代 Docker):
- 无守护进程(daemonless)、兼容 Docker CLI。
- 支持 rootless 容器。
- Buildah 和 Skopeo 预装,用于构建和管理镜像。
- 更好的 Kubernetes/CRI-O 集成。
🐳 如果你使用容器技术,建议学习 Podman 替代 Docker。
8. 废弃和移除的功能
- Python 2:在 CentOS 8.2 中仍存在,但在后续版本中被彻底移除。
- iptables 服务脚本:不再默认启用。
- ifconfig/netstat:虽可安装
net-tools,但推荐使用ip和ss。 - 专有驱动支持减弱:CentOS Stream 模式影响未来长期支持预期。
9. 生命周期与支持模型变化
- CentOS 7:支持至 2024 年 6 月 30 日。
- CentOS 8:原计划支持至 2029 年,但 Red Hat 在 2020 年底宣布 提前终止 CentOS 8(2021 年底停止更新),转向 CentOS Stream(滚动发布)。
⚠️ 重要提示:CentOS 8.2 实际已于 2021 年底停止维护!
建议迁移至 Rocky Linux、AlmaLinux 或 Oracle Linux 等 RHEL 兼容替代品。
10. 硬件支持改进
- 内核 4.18 提供更好的现代硬件支持(如 NVMe、新 CPU 架构、虚拟化扩展等)。
- 更好的云平台集成(AWS、Azure、GCP、OpenStack)。
总结:显著变化一览
| 类别 | 显著变化 |
|---|---|
| 包管理 | yum → dnf,引入模块化(Modularity) |
| Python | 默认使用 Python 3,Python 2 被淘汰 |
| 容器 | 推荐 Podman,Docker 不再默认支持 |
| 网络 | NetworkManager 为主,nmcli 成标准 |
| 安全 | 更强的加密策略,默认 TLS 1.3 支持 |
| 生命周期 | CentOS 8 已停止维护,需考虑替代方案 |
升级建议
⚠️ 注意:官方不推荐直接从 CentOS 7 升级到 8。Red Hat 提供了 leapp 工具进行升级,但仍风险较高,建议:
- 备份所有数据和配置。
- 在测试环境验证升级流程。
- 考虑 全新安装 CentOS 8(或其替代品) 并迁移应用。
- 鉴于 CentOS 8 已停更,建议迁移到 Rocky Linux 8 或 AlmaLinux 8。
如你需要长期稳定支持,推荐选择 Rocky Linux 或 AlmaLinux,它们是 CentOS 7/8 的精神继承者,提供更可预测的支持周期。
云小栈