2512 LTS SP1高可用包构建报错

问题描述

基于2512 LTS SP1分支,集成高可用二进制后整包构建报错

ERROR: Package 'iam/1.100.13@openubmc/stable' not resolved: Unable to find 'iam/1.100.13@openubmc/stable' in remotes. Required by 'ibmc/25.12.01.01@openubmc/stable'
^[[31mERROR: 执行命令 conan graph build-order . -pr=profile.ini -pr:b profile.dt.ini -r openubmc_dev -s:h build_type=Debug  -o *:module_symvers=ca7d466b391e7ba1e7f5576666e3fec47f8c3d90d6010c4d53704c14a5147f0f -o firmware_mgmt/*:community_enable=False -o vpd/*:board_name=openUBMC -o fructrl/*:manufacture=True -o chassis/*:manufacture=True -o webui/*:energy_enabled=False -o webui/*:webvnc_enabled=True -o account/*:manufacture=True -o help/*:board_name=openUBMC -o remote_console/*:webvnc_supported=True -o nsm/*:webvnc_supported=True -o bmc_time/*:manufacture=True -o */*:enable_luajit=True --order-by=recipe -f json --out-file=/home/host/hutianye/projects/manifest2512/temp/build_openUBMC_debug_dev/graph.order --user=openubmc --channel=stable --build=missing --lockfile-out=/home/host/hutianye/projects/manifest2512/temp/build_openUBMC_debug_dev/openubmc.lock 错误, 日志: /home/host/hutianye/projects/manifest2512/temp/log/task.log^[[0m

环境信息

  • 操作系统:Ubuntu 24.04.3 LTS
  • 软件版本:OpenUBMC2512 LTS SP1

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

:white_check_mark: 总结

项目 内容
问题本质 Conan 找不到 iam/1.100.13@openubmc/stable
最可能原因 组件未发布到远程仓库,或 SDK 未正确导入
推荐解决 1. 检查并发布 iam 组件
2. 使用 SDK 中的依赖包导入 Conan 缓存
长期建议 规范 SDK 发布流程,隔离版本仓库,避免依赖污染

:speech_balloon: 如仍无法解决,请提供以下信息以便进一步排查:

  • conan remote list
  • ls bmc_sdk/dependencies/iam*
  • cat manifest.yml 中的 dependencies 片段

:white_check_mark: 最终目标:确保所有依赖组件在远程仓库或本地缓存中 可定位、可解析、可安装

点击此处查看详细分析解答

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

根据您提供的构建环境和错误日志,本次构建失败的核心问题是 Conan 无法解析依赖组件 iam/1.100.13@openubmc/stable。以下是详细的分析与推荐解决方案。


:magnifying_glass_tilted_left: 问题定位

:police_car_light: 核心错误信息

ERROR: Package 'iam/1.100.13@openubmc/stable' not resolved: Unable to find 'iam/iam/1.100.13@openubmc/stable' in remotes.
Required by 'ibmc/25.12.01.01@openubmc/stable'

:cross_mark: 错误类型

  • Package Not Found / Version Not Resolved
    Conan 在远程仓库(remotes)中未能找到指定版本的 iam 组件包。
  • 此问题属于 依赖解析失败,发生在构建系统尝试解析 ibmc 包的依赖链时。

:gear: 根本原因分析

结合知识库中的实体和文档信息,可能的原因如下:

1. 组件未发布至远程仓库

  • iam/1.100.13@openubmc/stable 可能尚未被发布到 Conan 远程仓库(如 openubmc_sdkopenubmc_opensource)。
  • 虽然该组件存在于代码中,但若未执行发布流程(conan upload 或通过 bingo build -u),则远程无法访问。

:pushpin: 关联信息:[知识库] Missing Build 表示 missing packages should be built,但前提是组件存在;而当前是 包不存在于 remote

2. 版本命名或通道不匹配

  • 版本号 1.100.13 是否正确?
  • @openubmc/stable 是否为正确的 user/channel?是否存在命名错误?

:red_exclamation_mark: 注:社区版本如 25.12-LTS-SP1 对组件版本管理更严格,需确保所有二进制组件与 SDK 版本对齐。

3. 远程仓库未正确配置或连通性问题

  • 虽然日志中未显示连接失败,但仍需确认:
    • 是否正确配置了 remote 地址(如 conan remote list 检查)
    • 当前用户是否有权限访问 openubmc/stable 通道

:white_check_mark: 解决方案

:white_check_mark: 方案一:确认 iam 组件是否已发布

1. 检查远程仓库是否存在该包

conan search iam/1.100.13@openubmc/stable -r all
  • 若返回“Package not found”,说明该版本未发布。

2. 确认应使用的组件版本

  • 查看 2512 LTS SP1 分支对应的 manifest.ymldependencies 文件:
    dependencies:
      - conan: iam
    
  • 若未指定版本号,应使用 SDK 包中默认提供的版本

:light_bulb: 建议参考:bmc_sdk.zip 解压后查看 dependencies 目录下的组件列表。


:white_check_mark: 方案二:使用 SDK 中正确的组件版本

背景

  • 2512 LTS SP1 依赖于特定版本的 SDK(如 iBMC_SDK_5.12.01.01)。
  • SDK 提供的组件包(如 iam, vpd 等)必须从 SDK 中提取并导入 Conan 缓存或上传到私有仓。

解决步骤:

  1. 从 SDK 中导出 dependencies

    # 解压 bmc_sdk.zip
    unzip bmc_sdk.zip -d bmc_sdk
    # 将 dependencies 导入 conan 本地缓存
    conan config install bmc_sdk/dependencies
    
  2. 或上传到远程仓库(推荐用于团队协作)

    参考知识库中的指导:

    “缺少包一般原因是没有从 bmc_sdk 中解压出 dependencies 并合并到 conan 缓存 / 或上传到 conan 中心仓。”

    # 示例:上传 iam 包到 remote
    conan upload iam/1.100.13@openubmc/stable -r openubmc_sdk --all
    

:white_check_mark: 方案三:修改依赖版本以匹配已有包

如果 iam/1.100.13 不存在,但存在其他版本(如 1.100.12),可临时修改依赖版本。

方法一:在 manifest.yml 中指定兼容版本

dependencies:
  - conan: "iam/1.100.12@openubmc/stable"

方法二:使用版本范围(谨慎使用)

dependencies:
  - conan: "iam/[>=1.100.0]@openubmc/stable"

:warning: 注意:版本范围可能导致构建不稳定,仅用于调试。


:white_check_mark: 方案四:启用 --build=missing 并确保源码可用

若允许从源码构建缺失组件:

conan install ... --build=missing

但前提:

  • iam 组件的源码已存在于工作区
  • conanfile.py 配置正确
  • 依赖项(如 CMake、编译器)已就绪

:warning: 高可用构建通常不建议动态构建底层组件,以防版本不一致。


:hammer_and_wrench: 预防措施与最佳实践

建议 说明
使用独立的 Conan 仓库隔离不同版本 如:为 25.1225.12-LTS-SP1 分别设置不同 remote 仓库
发布 SDK 时同步上传 dependencies 到中心仓 避免“本地有包,远程无包”问题
定期清理并重建 Conan 缓存 避免缓存污染导致依赖解析异常
使用 conan graph info . 预检依赖关系 提前发现版本冲突或缺失问题

:puzzle_piece: 补充说明:关于 2512 LTS SP1 环境

  • 2512 LTS SP1 是一个长期支持版本(LTS),发布于 Ubuntu 24.04 环境。
  • 其稳定性要求高,所有依赖必须经过严格验证。
  • 推荐使用官方发布的 bmc_sdk.zip 初始化环境:
    python3 init.py -path ./bmc_sdk.zip -user xxx -psw xxx
    

:link: 官方资源:openUBMC 社区发行版 提供 25.12 LTS SP1 的完整源码与 SDK。


:white_check_mark: 总结

项目 内容
问题本质 Conan 找不到 iam/1.100.13@openubmc/stable
最可能原因 组件未发布到远程仓库,或 SDK 未正确导入
推荐解决 1. 检查并发布 iam 组件
2. 使用 SDK 中的依赖包导入 Conan 缓存
长期建议 规范 SDK 发布流程,隔离版本仓库,避免依赖污染

:speech_balloon: 如仍无法解决,请提供以下信息以便进一步排查:

  • conan remote list
  • ls bmc_sdk/dependencies/iam*
  • cat manifest.yml 中的 dependencies 片段

:white_check_mark: 最终目标:确保所有依赖组件在远程仓库或本地缓存中 可定位、可解析、可安装

从现象看应该是没有替换本地~/sdk文件夹

目前使用的高可用包提供的sdk,还是得用https://repo.openubmc.cn/25.12-LTS-SP1/sdk/bmc_sdk.zip的sdk吗?

bmc_sdk.zip版本要匹配,如果不清楚,可以联系项目支持(PAE)

重新部署了一下环境,大致步骤如下:
1 用2512 LTS SP1分支的init.py初始化环境
2 导入2512 LTS SP1对应的高可用组件二进制包、sdk、rtos_compiler
3 整包构建bmcgo build -b openUBMC
构建失败,报错:

============================================================
[INFO unified_error_analyzer.py:187 analyze_errors]  开始统一错误分析
[INFO unified_error_analyzer.py:188 analyze_errors] ============================================================
[INFO unified_error_analyzer.py:343 _output_unified_analysis]     统一分析完成!
[INFO unified_error_analyzer.py:344 _output_unified_analysis]    分析文件数量: 28 个
[INFO unified_error_analyzer.py:345 _output_unified_analysis]    日志条目总数: 696 条
[INFO unified_error_analyzer.py:346 _output_unified_analysis]    日志文件案例: 2 个
[INFO unified_error_analyzer.py:347 _output_unified_analysis]    命令失败案例: 0 个
[INFO unified_error_analyzer.py:348 _output_unified_analysis]    总案例: 2 个
[INFO unified_error_analyzer.py:354 _output_unified_analysis] 
============================================================
[INFO unified_error_analyzer.py:355 _output_unified_analysis]  详细错误分析
[INFO unified_error_analyzer.py:356 _output_unified_analysis] ============================================================
[INFO unified_error_analyzer.py:141 _output_unified_case]  案例 1: 组件包未找到
[INFO unified_error_analyzer.py:144 _output_unified_case] ──────────────────────────────────────────────────
[INFO unified_error_analyzer.py:146 _output_unified_case]     发生时间: 未知时间
[INFO unified_error_analyzer.py:147 _output_unified_case]     来源: 日志文件
[INFO unified_error_analyzer.py:150 _output_unified_case]     文件: /root/.bmcgo_log/bingo.log
[INFO unified_error_analyzer.py:152 _output_unified_case]     问题描述: 组件包未找到
[INFO unified_error_analyzer.py:159 _output_unified_case]     相关输出:
[INFO unified_error_analyzer.py:160 _output_unified_case]       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. Required by 'cli'
[INFO unified_error_analyzer.py:171 _output_unified_case]     解决方案: 组件包未找到,请检查该组件是否发布
[INFO unified_error_analyzer.py:173 _output_unified_case] ──────────────────────────────────────────────────
[INFO unified_error_analyzer.py:141 _output_unified_case]  案例 2: 无法在远程仓找到对应conan组件包
[INFO unified_error_analyzer.py:144 _output_unified_case] ──────────────────────────────────────────────────
[INFO unified_error_analyzer.py:146 _output_unified_case]     发生时间: 未知时间
[INFO unified_error_analyzer.py:147 _output_unified_case]     来源: 日志文件
[INFO unified_error_analyzer.py:150 _output_unified_case]     文件: /home/host/manifest2512/temp/log/task.log
[INFO unified_error_analyzer.py:152 _output_unified_case]     问题描述: 无法在远程仓找到对应的conan组件包,请确认组件是否发布
[INFO unified_error_analyzer.py:159 _output_unified_case]     相关输出:
[INFO unified_error_analyzer.py:160 _output_unified_case]       ERROR: Package 'power_strategy/1.81.1@openubmc/stable' not resolved: Unable to find 'power_strategy/1.81.1@openubmc/stable' in remotes. Required by 'ibmc/25.12.01.01@openubmc/stable'
[INFO unified_error_analyzer.py:171 _output_unified_case]     解决方案: 常见场景:conan组件包未发布,请优先发布组件包

[INFO unified_error_analyzer.py:173 _output_unified_case] ──────────────────────────────────────────────────

Conan仓:

openubmc_sdk: https://conan.openubmc.cn/bmc_sdk_25.12-LTS-SP1 [Verify SSL: False, Enabled: True]
openubmc_opensource: https://conan.openubmc.cn/openubmc_opensource [Verify SSL: False, Enabled: True]
openubmc_dev: https://conan.openubmc.cn/conan_1 [Verify SSL: True, Enabled: True]

bmcgo_cases在本地仓和远端仓都没找到。
power_strategy为高可用二进制,本地仓版本为power_strategy/1.80.26@openubmc/stable。

manifest.yml修改后解决

1 个赞

OK。大家新引入bmc_sdk时,要同步更新manifest仓中组件包、ibmc_sdk的版本。