This is an old revision of the document!
OBS 笔记
OBS 主页是: https://build.openeuler.org/
查看 Mainline 的包: https://build.openeuler.org/project/show/openEuler:Mainline:RISC-V
重要概念
- 工程(Project): 以工程为划分单位,以工程组织软件包。工程分为公共工程和个人工程。
- 工程配置(Project Config): 每个工程都有的,通常用于定义编译过程所需要用到的宏、打开或关闭某些功能、循环依赖处理策略、包冲突处理策略等。
- 工程 Metadata(Project Meta): 以 xml 格式进行记录,通常用来定义工程描述信息、工程的仓库配置信息、要编译的目标架构、编译依赖的路径信息、是否打开编译开关对外提供编译依赖等。
- 包 Metadata(Package Meta): 通常包含包的描述信息,是否要禁用或打开某些架构的编译等。
- 包(Package): 以包为管理单元,包为要编译的对象,所有的包都隶属于某一个工程。
- 仓库(Repository): 仓库是用来发布包编译生成的二进制的集合,例如从仓库下载 nano 这个包可以用
dnf install nano
。 - 架构(Arch): OBS 采用本地架构进行编译,没有提供交叉编译。
比如这个链接里的 home:misaka00251:VersionUpgrade 是工程名,Packages 则是工程里所有的包,旁边 Build Results 里的 AmogOS 是仓库名,riscv64 是我要编译出来的架构。
上方有个 Meta,此处就是我的工程 Metadata 文件。里面有 description 以及我要编译哪些架构的说明。
<project name="home:misaka00251:VersionUpgrade"> <title/> <description>Packages need to upgrade version</description> <person userid="misaka00251" role="maintainer"/> <useforbuild> <disable/> </useforbuild> <repository name="AmogOS"> <path project="openEuler:Mainline:RISC-V" repository="standard_riscv64"/> <arch>riscv64</arch> </repository> </project>
其中 path project 那一行的意思为:我编译 riscv64 包对哪些工程有依赖。
Repositories 就是仓库,Build Flag 可以查看我打开了哪些架构的编译,Publish Flag 可以查看哪些会发布到我的 Repo 源上。
OBS 命令
首先安装 osc 软件包: dnf install osc