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

Oracle Linux 8执行yum update报corosync/pacemaker依赖冲突错误

问题产生原因

出现该依赖冲突的核心原因是软件仓库配置不全:

  • 初始化安装时仅启用了ol8_appstream、ol8_baseos_latest、ol8_addons三个仓库,漏了Oracle Linux 8专门维护高可用集群组件的独立仓库ol8_ha。
  • Oracle从OL8 Update6版本开始,就将pacemaker、corosync、pcs、sbd所有集群相关组件的正式稳定更新,统一迁移到ol8_ha仓库维护,之前放在ol8_addons仓库里的旧版集群包不再同步后续更新。
  • 执行yum update时,dnf会默认选择所有可用源里最高版本的包作为更新候选,但因为没开ol8_ha源,源里的集群相关包版本是断层的:已安装的corosync、pacemaker主程序停在3.1.5-1.el8、2.1.0-8.0.1.el8旧版本,却能抓到零散推送的高版本依赖库(比如corosynclib-3.1.5-2、pacemaker-libs-2.1.2-4),而集群组件主程序和依赖库要求严格同版本匹配,最终触发多版本包无法共存的依赖报错。
无损坏完成系统更新的操作步骤

集群环境必须逐节点滚动更新,禁止同时操作所有节点,避免业务中断或集群配置损坏:

  • 先补启缺失的HA仓库,在所有节点执行命令:
    sudo dnf config-manager --enable ol8_ha
    
  • 对单个节点执行更新前,先将节点设为备用状态,迁走上面运行的所有集群资源:在任意正常集群节点执行
    pcs node standby <待更新节点的主机名>
    
    等待1-2分钟,执行pcs status确认待更新节点状态变为standby,所有资源已经漂移到其他在线节点后,再进行后续操作。
  • 登录到待更新的节点,先重建dnf缓存确保源数据正确:
    sudo dnf clean all && sudo dnf makecache
    
  • 直接执行系统更新即可,不要一开始就加报错提示里的--allowerasing、--skip-broken参数:
    sudo dnf update
    

    正常情况下此时不会再报依赖冲突:启用ol8_ha源后,dnf能拉取到完整匹配的同版本全量集群组件包,会自动将之前从addons源安装的旧版集群组件平滑替换为ha源的正式维护版本,全程不会修改或删除/etc/corosync/、/var/lib/pacemaker/目录下的现有集群配置,pcs的集群配置信息也会完整保留。

  • 更新完成后重启节点(如果更新包含内核、corosync、pacemaker核心包,必须重启才能加载新版本):
    sudo reboot
    
  • 节点重启完成后,登录确认corosync、pacemaker服务正常启动,再将节点切回正常工作状态:
    pcs node unstandby <当前节点主机名>
    
  • 执行pcs status确认节点恢复为Online状态,资源运行正常后,再对下一个节点重复上述 standby迁资源 -> 登节点更新 -> 重启 -> 恢复节点状态 的操作,直到所有集群节点更新完成。
注意事项
  • 未启用ol8_ha源的情况下,不要直接加--allowerasing参数强制更新,该参数可能误卸载集群核心组件,导致集群崩溃。
  • 不要跳过节点设为standby的步骤直接更新,否则更新过程中pacemaker、corosync服务重启会触发资源异常切换,可能导致业务中断。
  • 所有节点更新完成后,可执行pcs cluster verify --full做全集群校验,确认所有节点组件版本一致、配置无异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 13:51:27