加油
努力

从CentOS 7.6升级到8.0会带来哪些核心变化?

从 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

7. 系统初始化和服务管理

  • systemd 进一步深化
    • 所有服务均使用 systemd 管理,不再支持传统的 SysV init 脚本(兼容层有限)
    • 启动速度更快,依赖管理更精确

8. 安全与加密

  • OpenSSL 1.1.1:支持 TLS 1.3
  • 更强的默认加密策略(通过 crypto-policies 包管理)
  • SELinux 仍默认启用,策略进一步强化

9. 容器与云原生支持增强

  • Podman 替代 Docker
    • 默认提供 Podman(无守护进程的容器引擎),兼容 Docker CLI
    • 支持 rootless 容器,更安全
  • BuildahSkopeo 集成,便于构建和管理镜像
  • 更好地集成 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 8Rocky Linux 8,它们是 RHEL 8 的 1:1 兼容重建版本,且提供长期支持。

云服务器