操作系统

Linux软件包编译流程

2019-02-21  本文已影响0人  路飞仙贝

一、修改软件包

1.下载package.src.RPM源码包,并且执行以下命令解压:

rpm -Uvh package.src.rpm

2.执行

rpmbuild -bp pkg-name.spec

源码存放到~/rpmbuild/BUILD目录下
3.对源码进行修改,使用git打上补丁
4.修改SPEC 文件,写上changelog

二、本地编译

1.执行以下命令,安装该软件包依赖

yum-builddep pkg-name.spec

注意:当是在mock环境进行编译时,执行

yum-builddep --installroot=/var/lib/mock/<tag-name>/root/ root/rpmbuild/SPECS/pkg-name.spec

2.执行以下命令编译该软件包

rpmbuild -ba pkg-name.spec

3.检查编译后的软件包(kb号、changelog等)

三、加入Git仓库

1.在gitlab主仓库fork该软件的仓库
2.执行以下命令克隆该仓库

kpkg clone -b <branch-name> <srpm-name>

3.软件包导入仓库,执行

kpkg import srpm-pkg-name

4.提交Merge合并请求,等待审核通过

kpkg push

四、Koji编译

1.在koji客户端将包添加到tag中

koji add-pkg --owner xxx <tag-name> <pkg-name> 

2.获取Git仓库哈希值
3.利用koji build命令提交koji编译,例如

koji build <tag-name> git+ssh://git@192.168.120.51/git/rpms/xmlstarlet.git?#2461e877a3a6417bfc8968e1cbd6864db088f9c9

五、使用mock时注意

1.不要使用root用户,会报错,对普通用户要加入mock组

useradd mockbuild
usermod -a -G mock mockbuild
su - mockbuild(重要)

2.初始化mock环境

mock -r xx_config_file_name --init
上一篇下一篇

猜你喜欢

热点阅读