美文网首页操作系统
Linux软件包编译流程

Linux软件包编译流程

作者: 路飞仙贝 | 来源:发表于2019-02-21 14:53 被阅读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

    相关文章

      网友评论

        本文标题:Linux软件包编译流程

        本文链接:https://www.haomeiwen.com/subject/jioorqtx.html