CentOS 8.0 相比于 CentOS 7.6 在软件包管理和版本支持方面有显著的改进和变化,主要体现在以下几个方面:
1. 从 YUM 到 DNF 的转变
-
CentOS 7.6:
- 使用传统的
YUM(Yellowdog Updater, Modified)作为默认的包管理器。 - 基于
RPM和Python 2,依赖解析较慢,功能相对有限。
- 使用传统的
-
CentOS 8.0:
- 默认使用 DNF(Dandified YUM),是 YUM 的下一代替代品。
- DNF 使用
Hawkey库进行依赖解析,更高效、准确。 - 支持模块化软件流(Modularity),允许安装同一软件的不同版本(如 Python 3.6、3.8 等)。
- 命令语法与 YUM 兼容,大多数命令可以直接替换(如
yum install→dnf install)。
✅ 示例:在 CentOS 8 中,你可以通过
dnf module list查看可用的模块。
2. 引入 RPM 包格式增强
- CentOS 8 使用更新版本的
RPM 4.14,支持更多元数据和更强的依赖处理能力。 - 更好的签名验证机制(支持更强的加密算法)。
- 改进了事务回滚和包数据库性能。
3. 软件包版本更新
- CentOS 8 基于 RHEL 8,因此其软件包整体版本较新:
- 内核:从 3.10(CentOS 7)升级到 4.18(CentOS 8)。
- Python:默认提供 Python 3.6(不再默认安装 Python 2.7)。
- GCC:升级到 GCC 8。
- Systemd:升级到较新版本(v239+),提供更多功能。
- Web 服务:Apache 2.4、Nginx、PHP 7.2+、MariaDB 10.3、PostgreSQL 10 等。
⚠️ 注意:CentOS 8 不再包含一些旧软件或默认不启用某些仓库(如 EPEL 需手动添加)。
4. 模块化仓库(Application Streams)
- CentOS 8 引入了 Application Streams (AppStream),将用户空间应用程序与核心操作系统分离。
- BaseOS 仓库:包含系统核心组件(如内核、systemd、glibc)。
- AppStream 仓库:包含应用软件(如数据库、语言运行时、Web 服务器等)。
- 用户可以通过
dnf module命令启用/禁用特定软件流(stream),例如选择 Node.js 12 或 14 版本。
✅ 示例:
dnf module install nodejs:14
5. 仓库结构变化
- CentOS 8 使用新的仓库命名和组织方式:
BaseOS:基础操作系统组件。AppStream:应用程序和开发工具。PowerTools(原devtools):开发者工具(需手动启用)。
- 不再默认启用所有附加仓库,需要手动配置(如 PowerTools)。
6. 生命周期和支持周期
- CentOS 7.6:
- 发布时间:2018 年 10 月。
- 主流支持至 2020 年,维护支持已于 2024 年 6 月 30 日结束。
- CentOS 8.0:
- 发布时间:2019 年 9 月。
- 原计划支持至 2029 年,但 CentOS 8 已于 2021 年底停止更新(转为 CentOS Stream)。
- 实际上,CentOS 8 的标准版本支持仅持续到 2021 年 12 月,后续推荐使用 CentOS Stream 或迁移到 Rocky Linux / AlmaLinux。
⚠️ 这意味着 CentOS 8 虽然技术先进,但实际长期支持不如预期。
总结对比表
| 特性 | CentOS 7.6 | CentOS 8.0 |
|---|---|---|
| 包管理器 | YUM(基于 Python 2) | DNF(现代,模块化) |
| 软件包格式 | RPM | RPM(更新版本) |
| 模块化支持 | 不支持 | 支持(AppStream + Module Streams) |
| 软件版本 | 较旧(如 Python 2.7, GCC 4.8) | 较新(Python 3.6+, GCC 8) |
| 仓库结构 | 单一主仓库 + EPEL | BaseOS + AppStream 分离 |
| 内核版本 | 3.10.x | 4.18.x |
| 生命周期 | 已于 2024 年终止 | 标准版已于 2021 年终止 |
| 推荐用途 | 遗留系统维护 | 已不推荐用于新部署 |
建议
由于 CentOS 8 和 7 都已进入或接近生命周期终点,建议新项目使用 Rocky Linux 或 AlmaLinux,它们是 RHEL 的下游重建发行版,提供长期支持和稳定性。
如有进一步需求(如迁移建议或 DNF 使用技巧),欢迎继续提问!
云小栈