2512高可用构建失败

2512高可用构建的时候报错,具体如下:

bingo.log日志如下:

环境信息

  • 操作系统:[如 Ubuntu 24.04]

  • conan版本,bingo版本几bmcgo版本如下:

看起来是构建过程中尝试使用 Conan 安装一个名为 bmcgo_cases 的包,具体该怎么解决?

答案内容由AI生成,仅供参考:

2512高可用构建失败问题分析与解决方案

根据您提供的日志信息,本次构建失败的根本原因已明确。以下是详细的分析与解决建议。


:magnifying_glass_tilted_left: 问题定位

:cross_mark: 核心错误信息:

ERROR: Package 'bmcgo_cases/[>=1.0.0]@openubmc/stable' not resolved: Version range '[>=1.0.0]' from requirement 'bmcgo_cases/[>=1.0.0]@openubmc/stable' required by 'None' could not be resolved.

:warning: 错误类型:

该错误属于 Package Not Resolved 类型(在知识库中定义为 Conan 无法解析依赖包的版本约束)。

这表示:
构建系统在 Conan 远程仓库中找不到满足 bmcgo_cases/[>=1.0.0]@openubmc/stable 版本范围要求的 bmcgo_cases 包。


:puzzle_piece: 根本原因分析

  1. 组件未发布
    bmcgo_cases 组件尚未被发布到 openubmc/stable 通道,或者发布时版本号低于 1.0.0,无法满足 [>=1.0.0] 的版本约束。

  2. 依赖版本约束错误
    使用了版本范围 [>=1.0.0],但远程仓库中没有任何可用版本能匹配此范围(可能是组件根本不存在,或是命名/通道有误)。

  3. Conan 依赖解析失败
    尽管 Conan 成功连接了远程仓库(如 openubmc_sdk, openubmc_opensource),但在依赖图计算阶段未能找到该组件,最终报错退出。


:white_check_mark: 解决方案

:white_check_mark: 方法一:确认组件是否已正确发布

执行以下命令检查 bmcgo_cases 是否存在于远程仓库中:

conan search "bmcgo_cases/*" -r openubmc
# 或者尝试
conan search "bmcgo_cases/*" -r openubmc_dev

如果返回为空或没有符合 >=1.0.0 的版本,则说明:

  • 该组件尚未发布
  • 或者发布的版本号过低
  • 或者使用的远程仓库不正确

:white_check_mark: 方法二:修改版本约束(临时方案)

若当前仅有旧版本可用(例如 0.9.0),可在构建配置文件(如 manifest.ymlsubsys 配置)中将依赖项改为具体版本:

dependencies:
  - conan: "bmcgo_cases/0.9.0@openubmc/stable"

:warning: 注意:避免使用浮动版本范围(如 [>=1.0.0])在关键构建流程中,可能导致不确定性。


:white_check_mark: 方法三:发布正确的组件版本

如果 bmcgo_cases 尚未发布,请执行以下步骤进行发布:

  1. 进入 bmcgo_cases 组件源码目录
  2. 使用 bingo build 打包并发布:
cd bmcgo_cases
bingo create
bingo publish

确保发布版本 ≥ 1.0.0 且发布通道为 @openubmc/stable


:white_check_mark: 方法四:检查远程仓库 URL 配置

确保 Conan 配置中已正确添加 openubmc 远程地址:

conan remote list

应包含类似:

openubmc: https://conan.openubmc.cn/conan_1 [Verify SSL: False]

若缺少,需手动添加:

conan remote add openubmc https://conan.openubmc.cn/conan_1 --insecure

:locked_with_key: --insecure 用于禁用 SSL 校验(适用于内网环境)


:light_bulb: 建议与最佳实践

建议项 说明
依赖显式声明 避免使用 [>=x.x.x] 等动态版本,推荐使用固定版本以保证构建可重现性
组件发布归一化 所有参与构建的组件都应在 CI/CD 中自动发布至指定通道(如 stable
构建前检查依赖 在执行 bingo build 前,可通过 conan graph info . 预检依赖图
定期清理缓存 若 Conan 缓存异常,可清理后重试:
rm -rf ~/.conan2/p(Conan v2)

:pushpin: 参考知识库依据

  • Package Not Resolved:Conan 在无法满足版本约束时抛出此错误(见 KG 实体描述)。
  • Conan:作为 C/C++ 依赖管理工具,负责解析、下载和构建二进制包。
  • Openubmcopensource:为 https://conan.openubmc.cn/openubmcopensource,是 openUBMC 使用的主要远程仓库之一。
  • Rodrick 用户案例:曾因依赖缺失导致构建失败,最终通过修正 URL 和 SHA256 解决。
  • Bakbad 用户建议:提出可通过修改 Conan 远程 URL 解决构建失败问题。

:white_check_mark: 总结

项目 内容
根本原因 bmcgo_cases/[>=1.0.0]@openubmc/stable 依赖无法解析
解决路径 检查组件是否存在 → 修正版本或发布新版本 → 调整配置
推荐操作 使用 conan search 检查组件存在性,并使用固定版本代替浮动范围

:check_mark: 最终建议动作
请维护 bmcgo_cases 的团队尽快将其 ≥1.0.0 版本发布至 openubmc/stable 通道,并通知集成方更新依赖配置。


如有进一步日志或组件源码路径信息,可进一步协助排查发布流程。

相关链接:

  1. 【提问求助】25.06源码构建qemu固件包失败
  2. 【教学培训篇】新增组件
  3. 【storage】【问题求助】9440-8i raid卡信息不显示,raid功能操作失败
  4. 25.12版本编译失败
  5. 构建工程 | 文档中心 | openUBMC

我们也遇到同样的问题,请问后面解决了吗,看起来是webui组件编译异常,单独编译webui组件也是失败的,task.log如下: