CentOS 8.0(基于RHEL 8)相比 CentOS 7.6 引入了大量新特性和工具,涉及系统架构、包管理、容器支持、安全性、内核等多个方面。以下是主要的新特性和工具对比:
1. 全新的包管理系统:DNF 替代 YUM
- CentOS 7.6:使用
YUM(基于rpm和Python 2),依赖处理较慢。 - CentOS 8.0:
- 使用
DNF(Dandified YUM)作为默认包管理器,性能更好,依赖解析更高效。 - DNF 基于
Hawkey库,支持模块化软件流(modularity)。 - 自动清理缓存,减少磁盘占用。
- 使用
2. 软件包模块化(Application Streams / modularity)
- CentOS 8.0 新增:
- 允许在同一系统中安装多个版本的用户空间应用程序(如 Python、Node.js、PHP、Ruby 等)。
- 例如:可以同时安装 Python 3.6 和 Python 3.9,并通过模块选择启用特定版本。
- 使用命令如:
dnf module list python3 dnf module enable python3:3.9
CentOS 7.6 不支持此功能。
3. 新的文件系统:XFS 成为默认,Btrfs 不再推荐
- CentOS 8.0:
- 默认使用 XFS 文件系统(与 7.x 相同),但进一步优化。
- 移除了对 Btrfs 的支持(不再作为安装选项)。
- 支持 Stratis(见下文)。
4. Stratis:本地存储管理新工具
- CentOS 8.0 新增:
- Stratis 是一个结合了 LVM、XFS 和设备映射器的“混合”存储管理器,提供类似 ZFS 的简化体验(如快照、精简配置等)。
- 适合桌面和中小型企业环境。
- 示例:
stratis pool create mypool /dev/sdb stratis filesystem create mypool fs1
CentOS 7.6 没有 Stratis。
5. 容器与容器化工具增强
- Podman(替代 Docker CLI):
- 无需守护进程,支持 rootless 容器。
- 与 Docker CLI 兼容(
podman run,build,pull等)。
- Buildah:用于构建 OCI 镜像,无需 Dockerfile 或守护进程。
- Skopeo:用于复制、检查容器镜像。
- CRI-O:轻量级 Kubernetes 容器运行时。
这些在 CentOS 7.6 中需要手动安装或社区支持。
6. Systemd 升级与服务管理改进
- CentOS 8.0:
- 使用更新版
systemd(v239+),提供更多单元类型和控制功能。 - 支持 socket 激活、cgroup v2(可选)、更精细的资源控制。
- 支持
systemd-mount、systemd-homed等新组件。
- 使用更新版
7. 内核升级
- CentOS 8.0:基于 Linux Kernel 4.18 LTS。
- CentOS 7.6:基于 Kernel 3.10 LTS。
- 新内核带来更好的硬件支持(尤其是新 CPU、NVMe、GPU)、性能优化、安全补丁。
8. 网络管理:nmcli 成为主导,ifcfg 脚本弱化
- NetworkManager 成为核心网络管理工具。
nmtui提供文本界面配置。- 传统
/etc/sysconfig/network-scripts/ifcfg-*文件仍然存在,但建议使用nmcli管理。 - 支持更复杂的网络场景(如 teaming、bonding、VLAN via NM)。
9. Web 控制台:Cockpit
- CentOS 8.0 默认集成 Cockpit:
- 图形化 Web 管理界面(端口 9090)。
- 可管理存储、网络、容器、服务、用户等。
- 支持插件扩展。
- 启用方式:
systemctl enable --now cockpit.socket
CentOS 7.6 需要手动安装 Cockpit。
10. 安全增强
- SELinux 更严格默认策略。
- 支持 OpenSCAP 安全合规扫描(集成到安装器和系统中)。
- 默认禁用不安全协议(如 SSLv3)。
- 支持 FIPS 140-2 加密标准(需启用)。
11. Python 版本变更
- CentOS 8.0:
- 默认不安装
python命令,需显式选择python2或python3。 - 推荐使用 Python 3(Python 3.6+)。
- 使用
alternatives管理 Python 版本。
- 默认不安装
- CentOS 7.6:默认提供 Python 2.7。
12. 废弃和移除的功能
- 不再支持 iptables 作为默认防火墙后端:
- 使用
nftables作为底层,firewalld仍为前端。
- 使用
- 移除 postfix 的 sendmail 兼容层(部分)。
- 不再提供 e2fsprogs 的 debugfs 默认启用。
- 停止支持 i386 架构(仅支持 x86_64、aarch64 等)。
13. 编译与开发工具更新
- GCC 升级到 8.x 版本。
- C++17、Fortran 2008 支持增强。
- devtoolset 工具集更新(如 devtoolset-9 提供 GCC 9)。
总结:CentOS 8.0 相比 7.6 的核心变化
| 类别 | CentOS 7.6 | CentOS 8.0 |
|---|---|---|
| 包管理 | YUM + RPM | DNF + RPM + 模块化 |
| 容器支持 | Docker(第三方) | Podman, Buildah, Skopeo(原生) |
| 存储管理 | LVM, mdadm | Stratis(新增) |
| Python | Python 2.7 默认 | Python 3 为主,无默认 python 命令 |
| 内核 | 3.10 | 4.18 |
| 网络管理 | ifcfg 脚本为主 | NetworkManager + nmcli |
| 安全 | SELinux, firewalld | SELinux, firewalld + nftables, OpenSCAP |
| Web 管理 | 无默认 | Cockpit 集成 |
| 多版本应用 | 不支持 | Application Streams(模块化) |
⚠️ 注意:CentOS 8 已于 2021 年底停止维护(EOL),官方推荐迁移到 CentOS Stream、Rocky Linux 或 AlmaLinux。建议评估生产环境是否继续使用 CentOS 8。
如需长期支持,建议升级到 RHEL 8/9 克隆版本(如 Rocky Linux 8/9)。
云小栈