简要说明
openubmc使用conan包管理器管理组件,conan组件分为recipe和package,recipe提供构建脚本,package是组件的构建制品,不同的构建参数(编译器、编译选项、依赖、cflags等等)会生成不同的package。因此,一个recipe往往对应多个package。
openubmc社区提供了公共的conan仓服务,社区CI工程可以向该仓发布组件,其余社区参与者使用该仓提供的只读账户读取组件。开发者可以在openubmc官网的文档中心 > 快速入门 > 环境准备 > Ubuntu开发环境搭建
获取社区仓信息。
基于openubmc开发的产品化项目一般会有私有的组件,这些组件是不允许或者无意往openubmc社区仓发布。为此,开发者需要在本地构建一个私有的conan仓,可以参考conan社区推荐的 JFrog Artifactory Community Edition。
在产品化开发过程使用到的组件一般会有两种来源:
- openubmc社区conan仓:负责管理openubmc发布的组件,只读。
- 产品conan仓:负责管理私有组件。
conan提供的 remote 命令管理组件仓,在构建时也能指定使用哪个仓库启动构建。
本文档指导开发者管理JFrog Artifactory Community Edition的本地仓、远程仓和虚拟仓,实现产品化conan仓与社区conan仓同步。
实现方案
产品的conan仓需要提供本地仓、远程仓和虚拟仓,相关概念和用途如下:
- 本地仓:可以读写的仓库,其账号密码应该由CI工程持有,用于组件发布。
- 远程仓:指向远程conan仓,如openubmc社区conan仓、conan官方仓(https://center2.conan.io)
- 虚拟仓:一般是只读仓库,可以聚合本地仓和远程仓的组件包,开发者应该使用此仓用于日常开发活动,在虚拟仓查询或读取组件时,内部会从聚合的多个仓库中查找软件包。
配置远程仓
创建本地仓
配置虚拟仓
测试和验证
- 修改~/.conan/conan.conf,在general配置组将revisions_enabled设置为1,如
revisions_enabled = 1
- 配置conan仓:
conan remote add artifactory http://ip_address:8081/artifactory/api/conan/conan
,其中ip_address为服务器IP,artifactory为别名,url最后的conan为虚拟仓仓名。 - 登录conan仓:
conan user <uesrname> -p <password> -r artifactory
,请替换用户名、密码和远程仓仓名。 - 测试的验证:
conan search "libmc4lua/*" -r artifactory
,可以从虚拟仓中查找任何远程仓的组件,示例命令用于从虚拟仓中查找libmc4lua。
社区conan仓
openubmc提供了社区conan仓,仓库信息请参考 文档中心 - 快速入门 - 环境准备 - Ubuntu开发环境搭建
注意事项
本文档仅用于指导产品化项目管理conan仓,请在产品化过程中注意安全防护,如使用https提供加密通信服务、适配的防火墙配置策略、隔离本地仓和虚拟仓的账号等。