EL 9:工具链全面更新
EL 9 的工具链换代把内核带到 5.14、GCC 带到 11、系统默认 Python 带到 3.9、glibc 带到 2.34,并把 OpenSSL 一举从 1.1 系换到 3.0;容器侧 Podman 进入 4.x。其中 OpenSSL 3.0 与 Python 3.6 退役是破坏性最强的两项。
这是什么变化
Section titled “这是什么变化”- OpenSSL 3.0:全新的 provider 架构,MD4、RC2、Blowfish、单 DES 等旧算法移入 legacy provider 且默认不加载(详见 EL 9:OpenSSL 3.0)。
- Python 3.6 退役:EL 8 的默认 Python 3.6 在 EL 9 被 3.9 取代;3.6 上游早已停止支持,依赖它的老脚本与 pip 包需要迁移。
- GCC 11:默认 C++ 标准提升到 C++17,一批诊断从警告变为错误,老代码与第三方内核模块需要适配。
- kernel 5.14:新硬件支持、io_uring 改进、cgroup v2 默认(见 EL 9:cgroup v2 成为默认)。
- Podman 4:EL 9 GA 时的容器栈;后续小版本更新已把官方仓库的 Podman 推到 5.x 系(与 4.x 命令兼容),当前版本以版本对照表为准。
EL 8 → EL 9 对比
Section titled “EL 8 → EL 9 对比”| 组件 | EL 8 | EL 9 | 备注 |
|---|---|---|---|
| kernel | 4.18 | 5.14 | |
| GCC | 8 | 11 | 默认 C++17,诊断更严 |
| glibc | 2.28 | 2.34 | |
| Python(系统默认) | 3.6 | 3.9 | 3.6 上游已 EOL |
| OpenSSL | 1.1.1 | 3.0.x | provider 架构,旧算法入 legacy |
| Podman | 3.x | 4.x |
各发行版官方仓库的当前精确版本见常用软件版本对照表。
- 链接 OpenSSL 1.1 的自研程序:EL 9 只提供 OpenSSL 3.x,需按 3.0 API 重新编译验证;使用旧哈希/旧密码套件的服务可能被默认策略拒绝。
- Python 3.6 脚本:语法与新关键字冲突、移除的stdlib(如部分 asyncio 旧 API)需要逐一修复;建议直接面向 3.9+ 重写验证。
- C/C++ 构建:GCC 11 的
-Werror场景更容易触发新警告;out-of-tree 内核模块需适配 5.14 内核 API。 - 监控与容器代理:读 cgroup v1 路径的工具在 EL 9 默认环境失效,参见 cgroup v2 专题页。
uname -rgcc --version | head -1python3 --versionopenssl version- 在 EL 9 容器/虚拟机中对自研组件做完整编译与回归;
- 用
openssl list -providers确认是否触发 legacy 算法需求; - 排查监控/代理对 cgroup 路径的依赖。
- 常用软件版本对照表 — 跨发行版全量版本对照
- EL 9:OpenSSL 3.0 — provider 架构与 legacy 算法
- EL 8:工具链全面更新 — 上一代换代内容
- EL 8 → EL 9 升级 — 升级步骤与注意事项