一种操作系统编译的方法和设备技术方案

技术编号:26169981 阅读:16 留言:0更新日期:2020-10-31 13:35
本发明专利技术提供了一种操作系统编译的方法和设备,该方法包括以下步骤:将待编译的源码数据包解析为编译依赖表和编译产物表;创建编译顺序表,基于编译产物表将编译依赖表中的依赖项添加到编译顺序表中;基于编译环境将编译顺序表中的多个包按顺序依次进行编译,并判断每次编译是否成功;响应于编译成功,对下一个包进行编译直到编译完成。通过使用本发明专利技术的方案,能够使得操作系统编译时间大大减少,以及减少编译失败的风险。

A method and device for operating system compilation

【技术实现步骤摘要】
一种操作系统编译的方法和设备
本领域涉及计算机领域,并且更具体地涉及一种操作系统编译的方法和设备。
技术介绍
操作系统国产化是软件国产化的根本保障,是软件行业必须要攻克的阵地。操作系统在IT国产化中扮演着承上启下的重要作用,承接上层软件生态和底层硬件资源。操作系统产品面临贸易封锁,故而自主化打造势在必行。而目前操作系统的编译方法主要依赖开源的最小化编译系统,由最小化编译系统构建自己的最小化编译环境,再次在自己的最小化编译环境中不断的重复式的编译,直到操作系统全部编译完成。那么上述编译方法种存在以下几个问题:一是编译包更新问题,一个操作系统中大约有2000多个SRPM包,各种包之间存在依赖关系,在不解决依赖关系的前提下如果某个包更新了,需要重新编译操作系统,耗时可能会很长;二是编译时间过长,因为编译顺序无法确定,故而采取循环编译的方式,而循环的次数无法确定,因此编译时间可能会超长。三是编译失败,在不知道依赖关系的情况下进行构建编译失败肯定是非常多,而有些编译失败可能是由于编译环境的问题,在不知道编译顺序的情况下只有在很多次构建失败后才可能确定是编本文档来自技高网...

【技术保护点】
1.一种操作系统编译的方法,其特征在于,包括以下步骤:/n将待编译的源码数据包解析为编译依赖表和编译产物表;/n创建编译顺序表,基于编译产物表将编译依赖表中的依赖项添加到所述编译顺序表中;/n基于编译环境将所述编译顺序表中的多个包按顺序依次进行编译,并判断每次所述编译是否成功;/n响应于所述编译成功,对下一个包进行编译直到编译完成。/n

【技术特征摘要】
1.一种操作系统编译的方法,其特征在于,包括以下步骤:
将待编译的源码数据包解析为编译依赖表和编译产物表;
创建编译顺序表,基于编译产物表将编译依赖表中的依赖项添加到所述编译顺序表中;
基于编译环境将所述编译顺序表中的多个包按顺序依次进行编译,并判断每次所述编译是否成功;
响应于所述编译成功,对下一个包进行编译直到编译完成。


2.根据权利要求1所述的方法,其特征在于,将待编译的源码数据包解析为编译依赖表和编译产物表包括:
根据SPEC文件将源码数据包解析为编译依赖表和编译产物表;
查询所述编译依赖表,将所述编译产物表中编译依赖的RPM包名替换成所述RPM包对应的SRPM包名。


3.根据权利要求1所述的方法,其特征在于,创建编译顺序表,基于编译产物表将编译依赖表中的依赖项添加到所述编译顺序表中包括:
创建编译顺序表,将最小编译环境中的RPM包以及所述编译产物表中的RPM包对应的SRPM包名添加到所述编译顺序表中;
循环遍历所述编译依赖表,将所述编译依赖表中没有依赖的SRPM包的包名添加到所述编译顺序表中,并将包名从所述编译依赖表中移除,将所述编译依赖表中的依赖项都在编译顺序表中的包名添加到所述编译顺序表中,并将包名从所述编译依赖表中移除;
重复上一步骤,直到所述编译依赖表中没有数据。


4.根据权利要求1所述的方法,其特征在于,基于编译环境将所述编译顺序表中的多个包按顺序依次进行编译包括:
获取当前系统的最小编译环境;
基于所述最小编译环境将所述编译顺序表中的多个包按顺序依次进行编译,将编译产物作为第二编译环境;
基于所述第二编译环境将所述编译顺序表中的多个包按顺序依次进行编译,并将编译产物更新到所述第二编译环境中;
重复上一步骤,直到编译完成。


5.根据权利要求1所述的方法,其特征在于,还包括:响应于所述编译失败,退出编译并发出警告。...

【专利技术属性】
技术研发人员:董世江
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1