You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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包完整性

  1. 执行rpm -Va扫描所有RPM包的完整性,重点关注DNF、Python相关包(如python2-dnf、rpm-python)以及桌面依赖包
  2. 对校验失败的包执行重装:yum reinstall <包名>
  3. 清理YUM缓存:yum clean all && rm -rf /var/cache/yum

第三步:调整Leapp升级配置

  1. 编辑/etc/leapp/answerfile,添加以下配置(避免PAM组件干扰事务):
    [remove_pam_pkcs11_module_check]
    confirm = True
    
  2. 若服务器已脱离红帽订阅,执行leapp preupgrade --no-rhsm,再重新生成升级镜像:leapp upgrade

第四步:提前排查依赖冲突

  1. 在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
    
  2. 模拟升级事务检查依赖:yum update --releasever=8 --skip-broken,根据输出卸载或替换冲突的第三方包

第五步:重置Leapp环境重试

  1. 清理Leapp临时文件与状态:
    leapp cleanup
    rm -rf /var/lib/leapp /var/log/leapp
    
  2. 重新执行完整升级流程:
    leapp preupgrade
    leapp upgrade
    
    注意处理leapp preupgrade输出的所有警告(需确认answerfile对应选项)

内容的提问来源于stack exchange,提问作者Raphyyy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 10:10:30