1.首先根据OBS注册与OSC配置来完成配置
2.登录openEuler obs网站,从各种工程中,找到你想要构建的包,比如这个工程 openEuler:Ruby, 其中 openEuler:Ruby 是工程名,菜单栏展示了该工程的各种信息。
- Overview 工程简介
- Repositories 包列表
- Monitor 包的构建状况
- Requests 用户请求,比如有人想把自己的修改合并到原始仓库,有人想维护某个包等。
- Users 工程的所有用户
- Subprojects 子工程
- Project Config 配置文件
- Attributes 不明所以,正在研究中
- Meta 一些参数信息
- Status 不明所以,正在研究中
重点看一下Project Config 菜单 - Prefer 构建的包依赖于这些包
openEuler:Ruby工程底下有多个包(package),搜索&&点击rubygem-Ascii85,点击选择“Branch package"(派生)。
我们就派生了rubygem-Ascii85 包,这个包下发到自己名下了,将来可以做改动,比如增加功能,通过Submit package 提交给原始仓库,仓库维护者审核通过后,你做的贡献就可以造福万家了。
确认一下,是否派生成功
点击用户名,可以看到自己归属或拥有的工程
点击刚才派生的工程,点击rubygem-Ascii85 包,点击箭头1 Trigger services ,系统就开始构建了,右边框,表示构建状态,building表示正在构建;blocked表示等待构建(可能有很多人在使用,需要排队);succeeded表示构建成功;failed表示失败,光标悬浮到问号处,可以看一下错误提示,想继续看log和错误详情的话,请点进去。
这个包里有四个文件,重点看一下_service
,里面描述了三个文件。
<services>
<service name="tar_scm">
<param name="scm">git</param>
<param name="url">git@gitee.com:src-openeuler/rubygem-Ascii85.git</param>
<param name="exclude">*</param>
<param name="extract">*</param>
<param name="revision">master</param>
</service>
可以尝试本地编译
回到自己的终端(命令行),查看自己拥有的包(如果曾经创建过),以下是我的输出:
osc ll | grep wcy
查看自己派生的包:
osc list home:wcy:branches:openEuler:Ruby
把rubygem-Ascii85 下载到本地,然后从仓库下载编译用到的文件:
osc co home:wcy:branches:openEuler:Ruby/rubygem-Ascii85
cd home:wcy:branches:openEuler:Ruby/rubygem-Ascii85
osc up -S #下载文件
osc repos #查看仓库信息,
开始本地编译:
- 通过osc命令在本地打包deb文件,首先删除**_service**,否则osc会去obs服务器下载源码,重命名由**_service**下载的文件,使其能被本地 osc build 正确识别,然后开始编译:
rm -f _service;for file in `ls | grep -v .osc`;do new_file=${file##*:};mv $file $new_file;done
osc build --local-package standard_x86_64 x86_64
等了一段时间,1858s,终于编译完成了
查看一下可执行文件
file /var/tmp/build-root/standard_x86_64-x86_64/home/abuild/rpmbuild/RPMS/noarch/rubygem-Ascii85-doc-1.1.0-1.oe1.noarch.rpm
最后可以通过rpm -ivh **来测试安装软件包