CentOS7升级至Stream8后,如何将dnf从el7版本升级到el8?
解决CentOS Stream 8中升级dnf至el8版本的问题
1. 修复CentOS Stream 8仓库配置
先清理残留的CentOS 7仓库,确保系统使用正确的Stream 8源:
- 查看当前仓库列表:
dnf repolist all - 禁用所有el7相关仓库,启用Stream 8核心仓库:
dnf config-manager --disable '*el7*' dnf config-manager --enable baseos appstream extras
2. 优先升级rpm组件
问题核心是当前系统的rpmlib版本来自CentOS 7,无法满足el8版dnf的依赖要求,先升级rpm及关联包:
dnf update rpm rpm-libs rpm-python --best --allowerasing
该命令会自动处理冲突,将rpm组件升级至Stream 8版本,解决rpmlib版本不兼容问题。
3. 升级dnf至el8版本
完成rpm升级后,执行dnf升级命令:
dnf update dnf --best --allowerasing
4. 验证升级结果
检查dnf版本是否切换至el8系列:
dnf --version
正常输出应显示类似 4.2.23-1.el8 及以上的el8版本号。
极端情况的兜底方案
若上述步骤仍失败,可手动下载el8版dnf包强制安装(仅作为最后手段,可能引发后续依赖问题):
- 下载对应架构的dnf核心包(以x86_64为例):
curl -O https://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/dnf-4.2.23-1.el8.noarch.rpm curl -O https://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/dnf-data-4.2.23-1.el8.noarch.rpm curl -O https://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/libdnf-0.36.0-1.el8.x86_64.rpm - 强制安装:
rpm -Uvh --force --nodeps dnf-data-4.2.23-1.el8.noarch.rpm libdnf-0.36.0-1.el8.x86_64.rpm dnf-4.2.23-1.el8.noarch.rpm
内容的提问来源于stack exchange,提问作者linux_tester
相关产品推荐
相关产品推荐

