答案内容由AI生成,仅供参考:
总结
| 步骤 | 命令 |
|---|---|
| 构建本地 Conan 包 | bingo build -bt debug --stage rc |
| 构建并上传 | bingo build -bt debug --stage rc -u -r openUBMC_dev |
| 构建发布包 | bingo build -t publish -b openUBMC -bt release --stage stable |
点击此处查看详细分析解答
组件打包为 Conan 包的操作指南
在 openUBMC 开发体系中,组件的构建与打包是通过 Conan 包管理工具和 bingo 命令行工具协同完成的。以下是对组件打包为 Conan 包的完整操作流程说明。
操作环境要求
- 操作系统:Ubuntu 24.04(或基于其的 Docker 镜像
Ubuntu:24.04.2_25.09) - 软件版本:
- Conan 版本:推荐使用 2.13.0 及以上版本(Conan 2.x 已取代 1.x)
bingo工具:集成在开发环境中,用于简化 Conan 操作
- 硬件配置:建议至少 8GB 内存、4 核 CPU,以支持并行构建和缓存操作
Conan 包简介
Conan 是 C/C++ 项目的依赖管理工具,在 openUBMC 体系中用于:
- 管理第三方库、平台组件和自定义模块
- 实现版本化、可复现的构建过程
- 支持源码构建与二进制缓存
一个 Conan 包通常包含:
conanfile.py:定义构建逻辑、依赖、配置等conan_package.tgz:打包后的二进制或资源文件conaninfo.txt、conanmanifest.txt:元数据和版本信息
组件打包为 Conan 包的标准流程
第一步:进入组件源码目录
cd /path/to/your/component # 如:iam, bmc_time 等
必须在组件目录下执行
bingo命令,否则命令不生效。
第二步:构建并生成 Conan 包
使用 bingo build 命令执行打包:
bingo build -bt debug --stage rc -r openUBMC_dev
参数说明:
| 参数 | 说明 |
|---|---|
-bt debug/release |
构建类型,调试包或正式包 |
--stage dev/rc/stable |
包发布阶段(开发/预发布/稳定) |
-r openUBMC_dev |
指定远程 Conan 仓库(默认) |
示例输出:
Downloading conanmanifest.txt completed [17.89k] Downloading conaninfo.txt completed [2.97k] iam/1.20.31@openUBMC.release/rc: Package installed cb9794cb17b2f104bdddb1803a0104b29d12d75c Build successfully
构建成功后,Conan 包将被安装到本地缓存:
~/.conan/data/iam/1.20.31@openUBMC.release/rc/
第三步:(可选)上传 Conan 包至远程仓库
若需共享组件包,添加 -u 参数:
bingo build -bt debug --stage rc -u -r openUBMC_dev
会将生成的包上传至
openUBMC_dev远程仓库(位于 https://conan.openubmc.cn)
查询已构建的 Conan 包
# 查看本地缓存中的包
conan search iam* -r=openUBMC_dev
# 查看具体包路径
conan cache path iam/1.20.31@openUBMC.release/rc
常见问题及解决方法
| 问题 | 原因 | 解决方案 |
|---|---|---|
下载组件(xxx/xxx.dev/dev)的构建配方失败 |
本地 Conan 缓存损坏 | 删除缓存目录:rm -rf ~/.conan2/p(Conan 2.x) |
构建时卡在 mount 阶段 |
远程仓库无对应版本组件 | 使用 conan search 'name/*' -r openUBMC_dev 检查可用版本 |
| 认证失败 | Conan 远程登录过期 | 重新登录:conan user -r openUBMC_dev -p <password> <username> |
| 组件未集成到产品包 | 未在 manifest.yml 中声明依赖 |
在 dependencies 中添加:- conan: "component_name" |
高级配置(manifest.yml 中的依赖声明)
在产品级 manifest.yml 中声明组件依赖以实现集成:
dependencies:
- conan: "huawei_secure_c"
- conan: "kmc"
- conan: "vpd"
options:
board_name: openUBMC
不建议填写版本号,避免多处维护冲突。
总结
| 步骤 | 命令 |
|---|---|
| 构建本地 Conan 包 | bingo build -bt debug --stage rc |
| 构建并上传 | bingo build -bt debug --stage rc -u -r openUBMC_dev |
| 构建发布包 | bingo build -t publish -b openUBMC -bt release --stage stable |
参考资料
- openUBMC Conan 仓库
bingo --help获取完整命令帮助- 文档 ID: 2, 3, 4, 6, 9(来自知识库)
如有其他构建异常,请提供完整日志文件(如 fetch_component_code.log)以便进一步分析。
相关链接: