CentOS 8 相比 CentOS 7.9 在软件包管理上有以下主要区别:
1. 包管理器变更
- CentOS 7: 使用
yum(基于 Python 2) - CentOS 8: 使用
dnf(Dandified YUM)作为默认包管理器yum命令仍然存在,但实际上是dnf的符号链接- 性能更好,依赖解析更高效
- 支持模块化内容
2. 模块化仓库(AppStream)
CentOS 8 引入了模块化仓库概念:
- BaseOS: 提供核心操作系统组件
- AppStream: 包含应用程序、运行时环境和工具
- 允许同一软件包有多个版本共存
- 通过模块流(module streams)管理不同版本
# 查看可用模块
dnf module list
# 启用特定版本的软件(如不同Python版本)
dnf module enable python39
3. 软件包格式
- CentOS 7: 主要使用 RPM 包
- CentOS 8: 继续使用 RPM,但通过模块提供更灵活的版本管理
4. 关键命令变化
# CentOS 7
yum install package
yum update
yum search pattern
# CentOS 8(兼容yum语法,但实际使用dnf)
dnf install package
dnf update
dnf search pattern
# 新功能:历史记录查看
dnf history
dnf history undo <id>
5. Python 版本
- CentOS 7: Python 2.7 为系统默认
- CentOS 8: Python 3.6 为默认 Python 版本
- Python 2 仍可通过模块安装
6. 仓库配置
- CentOS 8 使用
.repo文件格式与 CentOS 7 类似 - 但仓库结构不同(BaseOS/AppStream 分离)
7. 性能改进
dnf比yum有更快的依赖解析- 更少的内存占用
- 支持并行下载
8. 软件包可用性
某些在 CentOS 7 中可用的软件包在 CentOS 8 中:
- 可能已被移除
- 可能转移到 AppStream 模块
- 可能需要从 EPEL 或其他第三方仓库获取
迁移注意事项
- 脚本中的
yum命令通常可以继续使用 - 但某些高级功能可能需要调整为
dnf语法 - 模块化功能需要重新学习配置方式
- Python 相关工具需要适配 Python 3
重要提示:CentOS 8 已于 2021 年底结束支持,建议考虑迁移到 RHEL、Rocky Linux、AlmaLinux 或 CentOS Stream 等替代发行版。
CLOUD技术笔记