[发明专利]一种软件包自动化编译方法在审
申请号: | 202011343305.4 | 申请日: | 2020-11-25 |
公开(公告)号: | CN112286534A | 公开(公告)日: | 2021-01-29 |
发明(设计)人: | 刘星湘;石勇;孙利杰;周强;陈松政;刘文清;杨涛 | 申请(专利权)人: | 湖南麒麟信安科技股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 刘畅舟 |
地址: | 410000 湖南省长*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件包 自动化 编译 方法 | ||
1.一种软件包自动化编译方法,其特征在于,包括以下步骤:
1)获取CLINET提供的待编译SRPM软件包以及用于计算的YUM源地址段;
2)通过编译依赖计算程序处理待编译SRPM软件包以及YUM源地址段得到每一轮的待编译SRPM软件包列表;
3)选取当前轮次待编译SRPM软件包列表,依次将SRPM软件包存储到GIT、DISTGIT中;
4)遍历当前轮次待编译SRPM软件包列表,依次将SRPM软件包提交到KOJI编译;
5)监测KOJI编译的编译结果直到当前轮次待编译SRPM软件包列表中的SRPM软件包全部编译完成;
6)返回步骤3)直到所有待编译SRPM软件包编译完成。
2.根据权利要求1所述的软件包自动化编译方法,其特征在于,所述编译依赖计算程序包括以下步骤:
2.1)读取YUM源地址段的每一个地址中的RPM软件包信息,将RPM软件包信息记录在Provides表中,所述RPM软件包信息包括RPM包或者SRPM编译出的RPM能够提供的文件、软件包的信息;
2.2)解析每一个待编译SRPM软件包,得到对应的spec文件,并将所有的spec文件写入第一列表中;
2.3)通过多线程的方式,从所述列表中取出spec文件进行检查,判断编译对应的SRPM软件包需要的编译依赖,在Provides表中能否找到匹配结果,如果存在匹配结果,则将该SRPM软件包编译后能够提供的文件信息以及生成的二进制包信息记录在Provides表中,并将对应的SRPM软件包加入当前待编译SRPM软件包列表,如果不存在匹配结果,将对应的SRPM软件包的编译依赖信息写入第二列表,直到第一列表为空;
2.4)将当前待编译SRPM软件包列表加入已编译包列表,从待编译SRPM软件包中移除当前待编译SRPM软件包列表中的SRPM软件包;
2.5)返回步骤2.2)创建下一待编译SRPM软件包列表,直到待检查列表为空。
3.根据权利要求2所述的软件包自动化编译方法,其特征在于,步骤2.3)中判断编译对应的SRPM软件包需要的编译依赖,在Provides表中能否找到匹配结果具体包括:解析对应的SRPM软件包得到Buildrequires表,所述Buildrequires表包括在SPEC文件中定义的编译依赖信息,若Provides表中包含对应的SRPM软件包的Buildrequires表,则存在匹配结果,否则不存在匹配结果。
4.根据权利要求2所述的软件包自动化编译方法,其特征在于,步骤2.3)还包括特殊情况的处理步骤,具体包括:如果不存在匹配结果且对应的SRPM软件包作为待编译SRPM软件包经历两次循环,则从记录SRPM软件包的编译依赖信息的第二列表中获取被需要做多的SRPM,将所述SRPM软件包从待编译SRPM软件包中移除,记录对应的编译依赖信息,并加入当前待编译SRPM软件包列表。
5.根据权利要求1所述的软件包自动化编译方法,其特征在于,步骤4)具体步骤包括:KOJI平台将当前待编译SRPM软件包列表中的SRPM软件包依次进行编译,编译完成后对二进制包进行解析,将得到的文件信息以及二进制包信息记录到KOJI上的源信息中,当前待编译SRPM软件包列表对应的文件信息以及二进制包信息作为下一待编译SRPM软件包列表中SRPM软件包的编译依赖。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南麒麟信安科技股份有限公司,未经湖南麒麟信安科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011343305.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种快速PEPS标定系统
- 下一篇:一种道砟清筛机工作参数监测方法