EL 8:工具链全面更新
EL 7 是一个超长服役的版本(2014—2024),因此 EL 8 的换代落差格外大:内核从 3.10 跨到 4.18,GCC 从 4.8 跨到 8,Python 从 2.7 跨到 3.6,glibc 从 2.17 跨到 2.28,OpenSSL 从 1.0.2 跨到 1.1.1;连 yum 命令本身也换成了 DNF 的前端。
这是什么变化
Section titled “这是什么变化”- Python 2 → 3:EL 8 不再默认提供
/usr/bin/python;系统工具全面迁到 Python 3.6,Python 2 仅以python2包形式保留供老脚本使用。这是 EL 生态与 Python 2 告别的起点。 - yum → DNF:
yum命令保留,但底层换成 DNF(libsolv 依赖求解、事务更可靠、C++ 实现)。日常命令语法不变,yum 插件生态需要换成 dnf 插件。 - GCC 8 / glibc 2.28:默认 C++ 标准提升、新警告;glibc 带来更完整的 C11 线程与线程局部存储支持。
- OpenSSL 1.1.1:TLS 1.3 支持进入默认栈,为后来的加密策略打下基础。
- kernel 4.18:eBPF 能力显著增强、新硬件支持面扩大。
EL 7 → EL 8 对比
Section titled “EL 7 → EL 8 对比”| 组件 | EL 7 | EL 8 | 备注 |
|---|---|---|---|
| kernel | 3.10 | 4.18 | |
| GCC | 4.8 | 8 | |
| glibc | 2.17 | 2.28 | |
| Python(系统) | 2.7 | 3.6 | /usr/bin/python 默认不存在 |
| OpenSSL | 1.0.2 | 1.1.1 | TLS 1.3 |
| 包管理前端 | yum(yum3) | yum → DNF 前端 | 命令兼容 |
各发行版当前版本见常用软件版本对照表。
- Python 2 脚本:shebang 为
#!/usr/bin/python或#!/usr/bin/env python的脚本在 EL 8 上直接找不到解释器;需改python3或安装python2并显式指定。 - yum 插件与封装:依赖 yum Python API 的插件/工具失效,需迁到 dnf 插件或
dnfCLI。 - 自研 C/C++:GCC 8 的新默认警告与 glibc 符号变化可能要求重新编译验证。
- TLS 交互:1.1.1 默认禁用一部分旧密码套件,与极老客户端/设备的握手需要评估。
uname -rgcc --version | head -1python3 --versionls -l /usr/bin/python 2>&1 # EL 8 默认无此文件- 全仓扫描
#!/usr/bin/python与 yum 插件依赖; - 在 EL 8 环境重编译自研组件;
- 老设备 TLS 握手做一次连通性回归。
- 常用软件版本对照表 — 全量版本对照
- DNF 基础 — DNF 命令与仓库管理
- EL 8:BaseOS 与 AppStream — 同版本的仓库结构革命
- EL 9:工具链全面更新 — 下一代换代内容