使用manifest编译出包时,无法找到 openubmc_opensource

编译命令:bingo build -b openUBMC -r openubmc_opensource
运行环境:

root@d05fde94ec3a:/workdir/workdir1/openubmc/manifest# conan remote list
openubmc_sdk: https://conan.openubmc.cn/bmc_sdk_latest [Verify SSL: False, Enabled: True]
openubmc_opensource: https://conan.openubmc.cn/openubmc_opensource [Verify SSL: False, Enabled: True]
root@d05fde94ec3a:/workdir/workdir1/openubmc/manifest# bingo -v
>> whoami
root
WARN: /opt/RTOS安装了多个RTOS工具版本,版本不匹配将导致编译失败,建议只保留其中一个,本次将使用208.9.0构建。
bingo 版本为: 0.6.146
bmc-studio 版本为: 1.2.0
root@d05fde94ec3a:/workdir/workdir1/openubmc/manifest# conan -v
Conan version 2.23.0

task.log

答案内容由AI生成,仅供参考:
:white_check_mark: 总结:本次问题是由于依赖仍指向已废弃的 @openbmc/stable 命名空间及 openbmc_opensource 远程所致。通过更新远程配置 + 修正依赖命名 + 清理缓存即可恢复正常构建流程。

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

编译失败问题分析与解决方案:无法找到 openubmc_opensource 远程仓库组件

根据您提供的编译环境信息和日志,当前在使用 bingo build 构建 openUBMC 项目时出现了依赖包无法下载的问题。根本原因如下:

:magnifying_glass_tilted_left: 问题定位

task.log 日志可明确看出,构建过程中尝试从 openbmc_opensource 远程仓库下载组件 rackmount/1.113@openbmc/stable,但返回了 404 Not Found 错误:

ERROR: Recipe 'rackmount/1.113@openbmc/stable' not found
ERROR: 404: Not found. [Remote: openbmc_opensource]

而您的 conan remote list 配置中实际添加的是 openubmc_opensource,而非 openbmc_opensource

openubmc_opensource: https://conan.openubmc.cn/openubmc_opensource

这表明:
:cross_mark: 构建流程中引用了错误的远程仓库名称 openbmc_opensource,而该仓库并不存在或已废弃。
:white_check_mark: 当前应使用的正确开源远程仓库是:openubmc_opensource


:puzzle_piece: 根本原因分析

  1. 远程仓库名称不匹配
    项目 manifest.yml 或构建脚本中依赖的组件使用了旧的命名格式(@openbmc/stable),导致 Conan 自动尝试访问已弃用的 openbmc_opensource 仓库。

  2. 组件命名空间迁移未同步
    openUBMC 社区已完成从 openbmcopenubmc 的命名空间迁移。旧组件路径如:

    rackmount/1.113@openbmc/stable
    

    应更新为:

    rackmount/1.113@openubmc/stable
    
  3. 远程仓库配置虽正确,但依赖未适配
    虽然您已正确配置了 openubmc_opensource 仓库,但如果构建仍查找 openbmc_opensource,说明项目配置未同步到最新规范。


:white_check_mark: 解决方案

:white_check_mark: 步骤一:确认并修正远程仓库配置

确保只保留正确的远程仓库,删除已废弃的:

# 删除错误/旧远程(如果存在)
conan remote remove openbmc-opensource 2>/dev/null || true
conan remote remove openbmc_sdk 2>/dev/null || true
conan remote remove openbmc_opensource 2>/dev/null || true

# 添加正确的远程仓库
conan remote add openubmc_dev https://conan.openubmc.cn/conan_1/ --insecure --force
conan remote add openubmc_sdk https://conan.openubmc.cn/bmc_sdk_latest --insecure --force
conan remote add openubmc_opensource https://conan.openubmc.cn/openubmc_opensource --insecure --force

:white_check_mark: 推荐仓库列表:

  • openubmc_dev:开发版组件
  • openubmc_sdk:SDK 及工具链
  • openubmc_opensource:开源组件

:white_check_mark: 步骤二:检查 manifest.yml 中的依赖项命名

进入 manifest/build/product/openUBMC/manifest.yml,搜索是否存在类似以下格式的依赖:

dependencies:
  - conan: "rackmount/1.113@openbmc/stable"

将其修改为 openUBMC 命名空间:

dependencies:
  - conan: "rackmount/1.113@openubmc/stable"

:light_bulb: 可执行以下命令快速查找问题依赖:

grep -r "@openbmc" . --include="*.yml"

:white_check_mark: 步骤三:升级 bingo 工具至最新版本

旧版本 bingo 可能未完全适配新远程结构。建议升级:

bingo upgrade
# 或手动更新
pip install --upgrade bingo

确保版本 ≥ 0.6.121,当前您使用的是 0.6.146,符合要求。


:white_check_mark: 步骤四:清除 Conan 缓存以避免冲突

旧缓存可能导致依赖解析错误:

# 清除 Conan v2 缓存
rm -rf ~/.conan2/p/*

# (可选)仅清除相关包缓存
conan remove "rackmount*" -c

:white_check_mark: 步骤五:重新执行构建命令

推荐使用标准参数进行构建:

# 推荐构建命令
bingo build -b openUBMC -r openubmc_dev --stage rc -bt release

:warning: 注意:不要指定 -r openubmc_opensource 作为主远程,应使用 openubmc_dev 主控构建流程,系统会自动从多个远程拉取所需组件。


:books: 参考知识库依据

  • openubmc_opensource 是当前有效的开源远程仓库,地址为 https://conan.openubmc.cn/openubmc_opensource
  • openbmc_opensource 是旧仓库,已被弃用,应避免使用。
  • 远程仓库配置应通过 conan remote add 显式注册,避免因默认配置导致失败。
  • 命名空间已由 @openbmc/stable 迁移至 @openubmc/stable,所有依赖需同步更新。
  • 多用户实践(如 yaoshun1, molin_peng)已验证新的远程配置结构。

:memo: 最终建议命令序列

# 1. 清理废弃远程
conan remote remove openbmc-opensource openbmc_sdk openbmc_opensource 2>/dev/null || true

# 2. 添加正确远程
conan remote add openubmc_dev https://conan.openubmc.cn/conan_1/ --insecure --force
conan remote add openubmc_sdk https://conan.openubmc.cn/bmc_sdk_latest --insecure --force
conan remote add openubmc_opensource https://conan.openubmc.cn/openubmc_opensource --insecure --force

# 3. 升级工具
bingo upgrade

# 4. 清理缓存
rm -rf ~/.conan2/p/*

# 5. 执行构建
bingo build -b openUBMC -r openubmc_dev --stage rc -bt release

:white_check_mark: 验证成功条件

  • 构建日志中不再出现 404: Not foundRecipe not found
  • 所有依赖均从 openubmc_* 系列远程成功下载
  • 最终输出位于 output/rootfs_openUBMC.hpm

:white_check_mark: 总结:本次问题是由于依赖仍指向已废弃的 @openbmc/stable 命名空间及 openbmc_opensource 远程所致。通过更新远程配置 + 修正依赖命名 + 清理缓存即可恢复正常构建流程。

如仍失败,请提供完整的 manifest.yml 片段及 /workdir/workdir1/openubmc/manifest/temp/log/task.log 内容以进一步诊断。

使用conan search命令搜索远程仓中是否有conan包。如果没有,找不到包的原因一般只有两个,一个是未发布此包,二个是远程仓不正确。