Leapp升级RHEL7.9至Rocky8.6时ELevate-Upgrade-Initramfs阶段失败
解决RHEL 7.9升级Rocky Linux 8.6时Leapp重启阶段DNF事务AttributeError问题
第一步:定位完整错误上下文
升级失败后系统会回退到RHEL 7.9,直接查看/var/log/leapp/leapp-upgrade.log中AttributeError: can't set attribute的完整堆栈信息,重点确认:
- 错误触发的具体Python模块/函数(比如DNF内部的哪个类属性无法修改)
- 报错时正在处理的包名或事务操作
第二步:检查并修复系统RPM包完整性
- 执行
rpm -Va扫描所有RPM包的完整性,重点关注DNF、Python相关包(如python2-dnf、rpm-python)以及桌面依赖包 - 对校验失败的包执行重装:
yum reinstall <包名> - 清理YUM缓存:
yum clean all && rm -rf /var/cache/yum
第三步:调整Leapp升级配置
- 编辑
/etc/leapp/answerfile,添加以下配置(避免PAM组件干扰事务):[remove_pam_pkcs11_module_check] confirm = True - 若服务器已脱离红帽订阅,执行
leapp preupgrade --no-rhsm,再重新生成升级镜像:leapp upgrade
第四步:提前排查依赖冲突
- 在RHEL 7.9环境中临时添加Rocky 8基础源:
cat > /etc/yum.repos.d/temp-rocky8.repo << EOF [rocky8-base] name=Rocky Linux 8 Base baseurl=https://dl.rockylinux.org/pub/rocky/8/BaseOS/x86_64/os/ gpgcheck=1 gpgkey=https://dl.rockylinux.org/pub/rocky/RPM-GPG-KEY-Rocky-8 enabled=1 EOF - 模拟升级事务检查依赖:
yum update --releasever=8 --skip-broken,根据输出卸载或替换冲突的第三方包
第五步:重置Leapp环境重试
- 清理Leapp临时文件与状态:
leapp cleanup rm -rf /var/lib/leapp /var/log/leapp - 重新执行完整升级流程:
注意处理leapp preupgrade leapp upgradeleapp preupgrade输出的所有警告(需确认answerfile对应选项)
内容的提问来源于stack exchange,提问作者Raphyyy
相关产品推荐
相关产品推荐

