CN113835711B - 操作***源码包的编译控制方法、装置、存储介质及设备 - Google Patents
操作***源码包的编译控制方法、装置、存储介质及设备 Download PDFInfo
- Publication number
- CN113835711B CN113835711B CN202111110249.4A CN202111110249A CN113835711B CN 113835711 B CN113835711 B CN 113835711B CN 202111110249 A CN202111110249 A CN 202111110249A CN 113835711 B CN113835711 B CN 113835711B
- Authority
- CN
- China
- Prior art keywords
- source code
- operating system
- current
- version
- compiling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000004590 computer program Methods 0.000 claims description 29
- 238000012216 screening Methods 0.000 abstract description 18
- 238000013507 mapping Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及操作***源码包的编译控制方法、装置、存储介质及设备。该方法包括:筛选当前版本操作***的待编译源码包;根据上述的待编译源码包,生成上述的当前版本操作***的编译任务;根据上述的编译任务对上述的当前版本操作***对应的待编译源码包进行编译,得到上述的当前版本操作***对应的待编译源码包的编译结果。本申请实现了待编译源码包的筛选,过滤掉一些无需编译的源码包,提升了整个编译过程的效率,节省整个编译过程的时间。
Description
技术领域
本申请涉及计算机***技术领域,特别是涉及一种操作***源码包的编译控制方法、装置、存储介质及计算机设备。
背景技术
随着信息科技的发展,特别是移动互联网的兴盛,使用国外操作***所带来的问题不断增加,尤其是信息安全,越来越多的人意识到国产操作***发展的重要性,目前我国也在大力发展国产操作***,因此操作***的构建就会显得格外重要。在对操作***进行构建时需要对操作***的源码包进行编译,编译的过程能够影响到操作***的构建效率。
目前,操作***的构建一般都是采用一些外部工具辅助进行***的编译,最常用的为koji编译***。传统的技术方案中,在利用koji编译***进行源码包的编译时,由于编译过程一般比较耗时慢,在源码包很大的情况下,整个编译过程时间就会很长,编译效率相应的就很低。
发明内容
基于此,有必要针对上述技术问题,提供一种操作***源码包的编译控制方法、装置、计算机设备和存储介质。
一种操作***源码包的编译控制方法,方法包括:
筛选当前版本操作***的待编译源码包;
根据待编译源码包,生成当前版本操作***的编译任务;
根据编译任务对当前版本操作***对应的待编译源码包进行编译,得到当前版本操作***对应的待编译源码包的编译结果。
在其中一个实施例中,上述的筛选当前版本操作***的待编译源码包,包括:
获取当前版本操作***的当前源码包的第一标识信息;
将当前版本操作***的当前源码包的第一标识信息与历史版本操作***的源码包的第一标识信息进行比对;
当不存在历史版本操作***的源码包的第一标识信息与当前版本操作***的当前源码包的第一标识信息一致时,确定当前版本操作***的当前源码包为待编译源码包。
在其中一个实施例中,上述的方法还包括:
当历史版本操作***的源码包中存在目标源码包的第一标识信息与当前版本操作***的当前源码包的第一标识信息一致时,获取目标源码包的编译结果;
当目标源码包的编译结果为编译失败时,确定当前版本操作***的当前源码包为待编译源码包。
在其中一个实施例中,上述的方法还包括:
当目标源码包的编译结果为编译成功时,获取当前版本操作***的当前源码包的第二标识信息;
将当前版本操作***的当前源码包的第二标识信息与预先为当前版本操作***创建的目标标签关联存储于预设数据库;
获取当前版本操作***的下一个源码包,当前版本操作***的下一个源码包为当前源码包,重新执行获取当前版本操作***的当前源码包的第一标识信息的步骤。
在其中一个实施例中,上述的方法还包括:
根据当前版本操作***的各待编译源码包的编译结果构建当前版本操作***的总的编译结果;
将总的编译结果与所述目标标签关联存储于所述预设数据库中;
在接收到终端发送的当前版本操作***的总的编译结果的获取请求时,根据获取请求中携带的目标标签,从预设数据库中获取当前版本操作***对应的总的编译结果;
将当前版本操作***对应的总的编译结果发送至终端,以便终端根据当前版本操作***对应的总的编译结果构建当前版本操作***。
在其中一个实施例中,上述的当前版本操作***的当前源码包的第一标识信息包括当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识,将当前版本操作***的当前源码包的第一标识信息与历史版本操作***的源码包的第一标识信息进行比对,包括:
将当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识分别与历史版本操作***的源码包的名称、第一版本标识以及第二版本标识进行比对;
方法还包括:
当目标源码包的名称、第一版本标识以及第二版本标识分别与当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识一致时,确定历史版本操作***的源码包中存在目标源码包的第一标识信息与当前版本操作***的当前源码包的第一标识信息一致。
在其中一个实施例中,上述的根据待编译源码包,生成当前版本操作***的编译任务,包括:
分别根据各待编译源码包生成各待编译源码包对应的编译任务;
根据编译任务对当前版本操作***对应的待编译源码包进行编译,得到当前版本操作***对应的待编译源码包的编译结果,包括:
分别对各待编译源码包对应的编译任务进行编译,得到当前版本操作***对应的待编译源码包的编译结果。
一种操作***源码包的编译控制装置,其特征在于,装置包括:
查找模块,用于筛选当前版本操作***的待编译源码包;
生成模块,用于根据待编译源码包,生成当前版本操作***的编译任务;
控制模块,用于根据编译任务对当前版本操作***对应的待编译源码包进行编译,得到当前版本操作***对应的待编译源码包的编译结果。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时实现上述任一实施例方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现上述任一实施例方法的步骤。
上述的操作***源码包的编译控制方法、装置、计算机设备和存储介质,通过筛选当前版本操作***的待编译源码包;对待编译源码包进行编译,得到编译结果,实现了待编译源码包的筛选,过滤掉一些无需编译的源码包,提升了整个编译过程的效率,节省整个编译过程的时间,解决了现有技术中,需要将所有源码包全部进行编译,所带来的编译效率低下,编译时间长的问题。
附图说明
图1为本申请一示例性实施例中操作***源码包的编译控制方法的应用环境图;
图2为本申请一示例性实施例中提供的操作***源码包的编译控制方法的流程示意图;
图3为本申请一示例性实施例中提供的当前版本操作***的各待编译源码包的编译结果的汇总流程示意图;
图4为本申请一示例性实施例中提供的操作***源码包的编译控制装置的结构框图;
图5为本申请一示例性实施例中提供的计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
请参考图1,图1为本申请一示例性实施例提供的一种操作***源码包的编译控制方法的应用环境示意图。如图1所示,该应用环境中包括服务器100以及终端101,服务器100与终端101之间可以通过网络102实现可通信的连接,以实现本申请的操作***源码包的编译控制方法。
服务器100用于筛选当前版本操作***的待编译源码包;根据待编译源码包,生成当前版本操作***的编译任务;根据编译任务对当前版本操作***的对应源码包进行编译,得到当前版本操作***的对应源码包的编译结果。服务器100还用于接收终端101发送的当前版本操作***的总的编译结果的获取请求;根据获取请求中携带的目标标签,从预设数据库中获取当前版本操作***对应的各源码包的编译结果;将当前版本操作***对应的各源码包的编译结果发送至终端101,以便终端101根据当前版本操作***对应的各源码包的编译结果构建当前版本操作***。其中,服务器100可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
终端101用于向服务器100发送当前版本操作***的总的编译结果的获取请求;接收服务器100反馈的当前版本操作***对应的各源码包的编译结果;根据当前版本操作***对应的各源码包的编译结果构建当前版本操作***。终端101可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
网络102用于实现终端101与服务器100之间的网络连接,具体的,网络102可以包括多种类型的有线或无线网络。
在一个实施例中,如图2所示,提供了一种操作***源码包的编译控制方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S11、筛选当前版本操作***的待编译源码包。
本申请中,上述的待编译源码包为从当前版本操作***的所有源码包中筛选出来的需要进行编译的源码包。具体的,本申请中可以包括多个历史版本操作***以及当前版本操作***。各个版本操作***均可以包括多个源码包,在进行编译时需要多各个源码包进行筛选,确定需要进行编译的源码包,过滤掉不需要进行编译的源码包,该需要进行编译的源码包即相当于上述的待编译源码包。
在其中一个实施例中,上述的筛选当前版本操作***的待编译源码包,可以包括:
获取上述的当前版本操作***的当前源码包的第一标识信息;
将上述的当前版本操作***的当前源码包的第一标识信息与历史版本操作***的源码包的第一标识信息进行比对;
当不存在上述的历史版本操作***的源码包的第一标识信息与上述的当前版本操作***的当前源码包的第一标识信息一致时,确定上述的当前版本操作***的当前源码包为待编译源码包。
其中,上述的当前源码包为当前版本操作***的全部源码包中的一个。上述的第一标识信息为可以标识当前版本操作***的当前源码包的信息。即通过比对第一标识信息的内容可以判断出上述的当前版本操作***的当前源码包与历史版本操作***的源码包是不是同一个源码包。
上述的获取上述的当前版本操作***的当前源码包的第一标识信息,可以包括:
提取当前版本操作***的当前源码包中的SPEC文件(Specification文件,说明文件);
解析SPEC文件中的字段名称,其中包括包名字段, 第一版本标识字段以及第二版本标识字段,得到当前版本操作***的当前源码包的第一标识信息。
具体的,上述的Spec文件中记录了源码包的一些相关信息,名称,版本,编译条件,安装目录等信息。
具体的,历史版本操作***可能存在多个,比对时需获取各个历史版本操作***的所有源码包与上述的当前版本操作***的当前源码包进行比对,以确定当前版本操作***的当前源码包是否是待编译源码包。若上述的历史版本操作***的源码包中不存在任意一个与上述的当前版本操作***的当前源码包相同,则确定上述的当前版本操作***的当前源码包为待编译源码包。本申请通过比对第一标识信息实现源码包的筛选,将历史没有编译过的源码包作为本次应该编译的源码包,过滤掉历史已经编译过并且编译成功的一部分源码包,避免源码包的重复编译,缩短源码包的编译时间。
在其中一个实施例中,上述的方法还可以包括:
当上述的历史版本操作***的源码包中存在目标源码包的第一标识信息与上述的当前版本操作***的当前源码包的第一标识信息一致时,获取上述的目标源码包的编译结果;
当上述的目标源码包的编译结果为编译失败时,确定上述的当前版本操作***的当前源码包为待编译源码包。
具体的,当上述的当前版本操作***的当前源码包于历史版本的目标源码包相同时,则获取目标源码包的编译结果,若目标源码包的编译结果未编译失败,则确定上述的当前版本操作***的当前源码包为待编译源码包。本申请通过比对第一标识信息实现源码包的筛选,将历史编译过的但编译失败的源码包作为本次应该编译的源码包,过滤掉历史已经编译过并且编译成功的一部分源码包,避免源码包的重复编译,缩短源码包的编译时间。
在其中一个实施例中,上述的方法还包括:
当上述的目标源码包的编译结果为编译成功时,获取上述的当前版本操作***的当前源码包的第二标识信息;
将上述的当前版本操作***的当前源码包的第二标识信息与预先为上述的当前版本操作***创建的目标标签关联存储于预设数据库;
获取上述的当前版本操作***的下一个源码包,上述的当前版本操作***的下一个源码包为上述的当前源码包,重新执行上述的获取上述的当前版本操作***的当前源码包的第一标识信息的步骤。
其中,上述的方法还可以包括:
预先为当前版本操作***创建目标标签,后续将当前版本操作***对应的各待编译源码包的编译结果与该目标标签关联存储,以便后续的数据查询。
具体的,当检测到当前版本操作***的当前源码包与历史版本操作***的目标源码包相同,并且该目标源码包的历史的编译结果为编译成功,则过滤该当前版本操作***的当前源码包,并且,需要将当前版本操作***的当前源码包的第二标识信息与预先为上述的当前版本操作***创建的目标标签关联存储于预设数据库,以便于后续的数据查询。上述的第二标识信息可以为当前版本操作***的当前源码包的ID号。本申请通过比对第一标识信息实现源码包的筛选,将历史编译过的但编译失败的源码包作为本次应该编译的源码包,过滤掉历史已经编译过并且编译成功的一部分源码包,避免源码包的重复编译,缩短源码包的编译时间。
在其中一个实施例中,上述的当前版本操作***的当前源码包的第一标识信息包括上述的当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识,上述的将上述的当前版本操作***的当前源码包的第一标识信息与历史版本操作***的源码包的第一标识信息进行比对,可以包括:
将上述的当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识分别与历史版本操作***的源码包的名称、第一版本标识以及第二版本标识进行比对;
上述的方法还可以包括:
当上述的目标源码包的名称、第一版本标识以及第二版本标识分别与上述的当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识一致时,确定上述的历史版本操作***的源码包中存在目标源码包的第一标识信息与上述的当前版本操作***的当前源码包的第一标识信息一致。
具体的,上述的第一版本标识可以为软件版本号。上述的第二版本标识可以为主版本号、次版本号以及发行号。在比对时将当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识分别与各个历史版本操作***的各个源码包的名称、第一版本标识以及第二版本标识一一进行比对。如果存在目标源码包的这三项与当前版本操作***的当前源码包的这三项分别一致,则确定历史版本操作***的源码包中存在目标源码包的第一标识信息与上述的当前版本操作***的当前源码包的第一标识信息一致,即目标源码包与当前版本操作***的当前源码包为相同的源码包。
本申请通过比对源码包的包名、主版本号、次版本号以及发行号,确定当前版本操作***的当前源码包是否与历史版本操作***的目标源码包相同,实现当前版本操作***的源码包的筛选与过滤,避免重复编译,提升编译效率。
S12、根据待编译源码包,生成当前版本操作***的编译任务。
本申请中,上述的编译任务用于指示服务器对待编译源码包进行编译。
在其中一个实施例中,上述的根据待编译源码包,生成当前版本操作***的编译任务,可以包括:
分别根据各待编译源码包生成各待编译源码包对应的编译任务;
上述的根据编译任务对当前版本操作***对应的待编译源码包进行编译,得到当前版本操作***对应的待编译源码包的编译结果,包括:
分别对各待编译源码包对应的编译任务进行编译,得到当前版本操作***对应的待编译源码包的编译结果。
具体的,服务器根据各待编译源码包生成对应的编译任务,在执行编译时可以逐个编译任务进行执行,也可以一起执行编译。
S13、根据编译任务对当前版本操作***对应的待编译源码包进行编译,得到当前版本操作***对应的待编译源码包的编译结果。
在一个实施例中,如图3所示,提供了一种当前版本操作***的各待编译源码包的编译结果的汇总流程示意图。如图3所示,上述的方法还可以包括:
S131、根据当前版本操作***的各待编译源码包的编译结果构建当前版本操作***的总的编译结果;
S132、将总的编译结果与所述目标标签关联存储于所述预设数据库中;
S133、在接收到终端发送的当前版本操作***的总的编译结果的获取请求时,根据获取请求中携带的目标标签,从预设数据库中获取当前版本操作***对应的各源码包的编译结果;
S134、将当前版本操作***对应的各源码包的编译结果发送至终端,以便终端根据当前版本操作***对应的各源码包的编译结果构建当前版本操作***。
本申请通过将上述的当前版本操作***的当前源码包与历史版本操作***的源码包进行比对,查找出历史编译过并且编译成功的源码包,将该些源码包跳过编译,实现了缩短当前版本操作***的当前源码包的编译时间,进一步实现有效减少操作***的构建时间,提高构建效率。
在其中一个实施例中,上述的预设数据库的数据结构如下表1所示:
表1
上表1中,具体包括第一版操作***、第二版操作***以及第三版操作***。其中,第一版操作***预先创建了目标标签1,该第一版操作***对应包括源码包ID1、源码包ID2以及源码包ID3。另外还创建了编译结果1与目标标签1之间的映射关系。相应的,第二版操作***预先创建了目标标签2,该第2版操作***对应包括源码包ID4、源码包ID5以及源码包ID5。另外还创建了编译结果2与目标标签2之间的映射关系。第三版操作***预先创建了目标标签3,该第一版操作***对应包括源码包ID2、源码包ID7以及源码包ID8。另外还创建了编译结果3与目标标签3之间的映射关系。
进一步的,由表1可知,源码包ID2既出现在第一版操作***中,又出现在第三版操作***中,因此,源码包ID2属于第一版操作***与第三版操作***所共有的源码包。故在编译第三版操作***时,则可以跳过源码包ID2的编译,以避免重复编译,节省编译时间。
进一步的,上述的编译结果1中具体包括源码包ID1、源码包ID2以及源码包ID3的编译结果。上述的编译结果2中具体包括源码包ID4、源码包ID5以及源码包ID6的编译结果。上述的编译结果3中具体包括源码包ID7以及源码包ID8的编译结果。其中,这里的编译结果3中也可以包括源码包ID2的编译结果。由于源码包ID2在第一版操作***中已经被编译过,并且编译成功,则在第三版操作***中该源码包则不需要再次编译,但是需将源码包ID2与第三版操作***的目标标签3进行关联存储。目的是用于后续终端发起第三版操作***的总的编译结果的获取请求时,服务器根据源码包ID2与第三版操作***的目标标签3的映射关系以及源码包ID2与第一版操作***的目标标签1的映射关系从编译结果1中获取到源码包ID2对应的编译结果。具体的,上述的编译结果可以包括编译后得到的数据以及编译成功或者编译失败的结果。
在其中一个实施例中,上述的服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。具体的,上述的服务器可以包括源码包筛选服务器以及koji编译服务器。上述的终端可以为koji客户端。
具体的,上述的源码包筛选服务器用于筛选当前版本操作***的待编译源码包;根据上述的待编译源码包,生成上述的当前版本操作***的编译任务,并将编译任务提交给上述的koji编译服务器,以便上述的koji编译服务器对编译任务执行编译操作。上述的koji编译服务器用于根据上述的编译任务对上述的当前版本操作***对应的待编译源码包进行编译,得到上述的当前版本操作***对应的待编译源码包的编译结果,并对全部的编译结果进行汇总,得到上述的当前版本操作***对应的总的编译结果。
在一种可能的应用场景中,操作***的构建一般都是采用一些外部工具辅助进行***的编译,那么最常用的就是koji编译***。当进行操作***的构建时往往会遇到操作***的迭代开发,也就是采用koji编译***去构建多个版本的操作***的源码包时,其中必然会存在软件版本的交叉。比如,在开发了1.0的版本操作***后,后续需要开发2.0版本的操作***,其中必然有一些源码包是两个操作***的版本所共有的,那么这一部分的源码包则没有必要重新编译,本申请通过比对源码包的NVR信息来判断当前操作***的当前源码包是否与历史版本操作***的源码包重复,若是并且历史编译结果是成功的,则编译时可以跳过这些重复源码包,实现了缩短源码包的编译过程,最终实现节省操作***构建时间,提高构建效率。
在一个实施例中,如图4所示,提供了一种操作***源码包的编译控制装置,包括:查找模块11、生成模块12以及控制模块13,其中:
查找模块11,用于筛选当前版本操作***的待编译源码包;
生成模块12,用于根据待编译源码包,生成当前版本操作***的编译任务;
控制模块13,用于根据编译任务对当前版本操作***对应的待编译源码包进行编译,得到当前版本操作***对应的待编译源码包的编译结果。
在其中一个实施例中,上述的查找模块11可以获取当前版本操作***的当前源码包的第一标识信息,将当前版本操作***的当前源码包的第一标识信息与历史版本操作***的源码包的第一标识信息进行比对,当不存在历史版本操作***的源码包的第一标识信息与当前版本操作***的当前源码包的第一标识信息一致时,确定当前版本操作***的当前源码包为待编译源码包。
在其中一个实施例中,上述的查找模块11可以当历史版本操作***的源码包中存在目标源码包的第一标识信息与当前版本操作***的当前源码包的第一标识信息一致时,获取目标源码包的编译结果,当目标源码包的编译结果为编译失败时,确定当前版本操作***的当前源码包为待编译源码包。
在其中一个实施例中,上述的装置还包括存储模块(图未示),该存储模块可以当目标源码包的编译结果为编译成功时,获取当前版本操作***的当前源码包的第二标识信息,将当前版本操作***的当前源码包的第二标识信息与预先为当前版本操作***创建的目标标签关联存储于预设数据库,获取当前版本操作***的下一个源码包,当前版本操作***的下一个源码包为当前源码包,重新执行获取当前版本操作***的当前源码包的第一标识信息的步骤。
在其中一个实施例中,上述的装置还包括汇总模块(图未示),该汇总模块可以根据当前版本操作***的各待编译源码包的编译结果构建当前版本操作***的总的编译结果,将总的编译结果与所述目标标签关联存储于所述预设数据库中,在接收到终端发送的当前版本操作***的总的编译结果的获取请求时,根据获取请求中携带的目标标签,从预设数据库中获取当前版本操作***对应的总的编译结果,将当前版本操作***对应的总的编译结果发送至终端,以便终端根据当前版本操作***对应的总的编译结果构建当前版本操作***。
在其中一个实施例中,上述的当前版本操作***的当前源码包的第一标识信息包括当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识,上述的查找模块11还可以将当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识分别与历史版本操作***的源码包的名称、第一版本标识以及第二版本标识进行比对;上述的装置还包括确定模块(图未示),该确定模块可以当目标源码包的名称、第一版本标识以及第二版本标识分别与当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识一致时,确定历史版本操作***的源码包中存在目标源码包的第一标识信息与当前版本操作***的当前源码包的第一标识信息一致。
在其中一个实施例中,上述的生成模块12可以分别根据各待编译源码包生成各待编译源码包对应的编译任务,上述的控制模块13可以分别对各待编译源码包对应的编译任务进行编译,得到当前版本操作***对应的待编译源码包的编译结果。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储智能家居设备的运行数据等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现操作***源码包的编译控制方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:筛选当前版本操作***的待编译源码包;根据待编译源码包,生成当前版本操作***的编译任务;根据编译任务对当前版本操作***对应的待编译源码包进行编译,得到当前版本操作***对应的待编译源码包的编译结果。
在一个实施例中,处理器执行计算机程序实现上述的筛选当前版本操作***的待编译源码包步骤时,具体实现以下步骤:
获取当前版本操作***的当前源码包的第一标识信息;
将当前版本操作***的当前源码包的第一标识信息与历史版本操作***的源码包的第一标识信息进行比对;
当不存在历史版本操作***的源码包的第一标识信息与当前版本操作***的当前源码包的第一标识信息一致时,确定当前版本操作***的当前源码包为待编译源码包。
在一个实施例中,处理器执行计算机程序时具体还实现以下步骤:
当历史版本操作***的源码包中存在目标源码包的第一标识信息与当前版本操作***的当前源码包的第一标识信息一致时,获取目标源码包的编译结果;
当目标源码包的编译结果为编译失败时,确定当前版本操作***的当前源码包为待编译源码包。
在一个实施例中,处理器执行计算机程序时具体还实现以下步骤:
当目标源码包的编译结果为编译成功时,获取当前版本操作***的当前源码包的第二标识信息;
将当前版本操作***的当前源码包的第二标识信息与预先为当前版本操作***创建的目标标签关联存储于预设数据库;
获取当前版本操作***的下一个源码包,当前版本操作***的下一个源码包为当前源码包,重新执行获取当前版本操作***的当前源码包的第一标识信息的步骤。
在一个实施例中,处理器执行计算机程序时具体还实现以下步骤:
根据当前版本操作***的各待编译源码包的编译结果构建当前版本操作***的总的编译结果;
将总的编译结果与所述目标标签关联存储于所述预设数据库中;
在接收到终端发送的当前版本操作***的总的编译结果的获取请求时,根据获取请求中携带的目标标签,从预设数据库中获取当前版本操作***对应的总的编译结果;
将当前版本操作***对应的总的编译结果发送至终端,以便终端根据当前版本操作***对应的总的编译结果构建当前版本操作***。
在其中一个实施例中,上述的当前版本操作***的当前源码包的第一标识信息包括当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识,处理器执行计算机程序实现上述的将当前版本操作***的当前源码包的第一标识信息与历史版本操作***的源码包的第一标识信息进行比对步骤时,具体实现以下步骤:
将当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识分别与历史版本操作***的源码包的名称、第一版本标识以及第二版本标识进行比对;
处理器执行计算机程序时具体还实现以下步骤:
当目标源码包的名称、第一版本标识以及第二版本标识分别与当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识一致时,确定历史版本操作***的源码包中存在目标源码包的第一标识信息与当前版本操作***的当前源码包的第一标识信息一致。
在其中一个实施例中,处理器执行计算机程序实现上述的根据待编译源码包,生成当前版本操作***的编译任务步骤时,具体实现以下步骤:
分别根据各待编译源码包生成各待编译源码包对应的编译任务;
根据编译任务对当前版本操作***对应的待编译源码包进行编译,得到当前版本操作***对应的待编译源码包的编译结果,包括:
分别对各待编译源码包对应的编译任务进行编译,得到当前版本操作***对应的待编译源码包的编译结果。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:筛选当前版本操作***的待编译源码包;根据待编译源码包,生成当前版本操作***的编译任务;根据编译任务对当前版本操作***对应的待编译源码包进行编译,得到当前版本操作***对应的待编译源码包的编译结果。
在一个实施例中,计算机程序被处理器执行实现上述的筛选当前版本操作***的待编译源码包步骤时,具体实现以下步骤:
获取当前版本操作***的当前源码包的第一标识信息;
将当前版本操作***的当前源码包的第一标识信息与历史版本操作***的源码包的第一标识信息进行比对;
当不存在历史版本操作***的源码包的第一标识信息与当前版本操作***的当前源码包的第一标识信息一致时,确定当前版本操作***的当前源码包为待编译源码包。
在一个实施例中,计算机程序被处理器执行时具体还实现以下步骤:
当历史版本操作***的源码包中存在目标源码包的第一标识信息与当前版本操作***的当前源码包的第一标识信息一致时,获取目标源码包的编译结果;
当目标源码包的编译结果为编译失败时,确定当前版本操作***的当前源码包为待编译源码包。
在一个实施例中,计算机程序被处理器执行时具体还实现以下步骤:
当目标源码包的编译结果为编译成功时,获取当前版本操作***的当前源码包的第二标识信息;
将当前版本操作***的当前源码包的第二标识信息与预先为当前版本操作***创建的目标标签关联存储于预设数据库;
获取当前版本操作***的下一个源码包,当前版本操作***的下一个源码包为当前源码包,重新执行获取当前版本操作***的当前源码包的第一标识信息的步骤。
在一个实施例中,计算机程序被处理器执行时具体还实现以下步骤:
根据当前版本操作***的各待编译源码包的编译结果构建当前版本操作***的总的编译结果;
将总的编译结果与所述目标标签关联存储于所述预设数据库中;
在接收到终端发送的当前版本操作***的总的编译结果的获取请求时,根据获取请求中携带的目标标签,从预设数据库中获取当前版本操作***对应的总的编译结果;
将当前版本操作***对应的总的编译结果发送至终端,以便终端根据当前版本操作***对应的总的编译结果构建当前版本操作***。
在其中一个实施例中,上述的当前版本操作***的当前源码包的第一标识信息包括当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识,计算机程序被处理器执行实现上述的将当前版本操作***的当前源码包的第一标识信息与历史版本操作***的源码包的第一标识信息进行比对步骤时,具体实现以下步骤:
将当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识分别与历史版本操作***的源码包的名称、第一版本标识以及第二版本标识进行比对;
计算机程序被处理器执行时具体还实现以下步骤:
当目标源码包的名称、第一版本标识以及第二版本标识分别与当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识一致时,确定历史版本操作***的源码包中存在目标源码包的第一标识信息与当前版本操作***的当前源码包的第一标识信息一致。
在其中一个实施例中,计算机程序被处理器执行实现上述的根据待编译源码包,生成当前版本操作***的编译任务步骤时,具体实现以下步骤:
分别根据各待编译源码包生成各待编译源码包对应的编译任务;
根据编译任务对当前版本操作***对应的待编译源码包进行编译,得到当前版本操作***对应的待编译源码包的编译结果,包括:
分别对各待编译源码包对应的编译任务进行编译,得到当前版本操作***对应的待编译源码包的编译结果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、物理分库分表或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (6)
1.一种操作***源码包的编译控制方法,所述方法包括:
获取当前版本操作***的当前源码包的第一标识信息;
将所述当前版本操作***的当前源码包的第一标识信息与历史版本操作***的源码包的第一标识信息进行比对;
当不存在所述历史版本操作***的源码包的第一标识信息与所述当前版本操作***的当前源码包的第一标识信息一致时,确定所述当前版本操作***的当前源码包为待编译源码包;
所述当前版本操作***的当前源码包的第一标识信息包括所述当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识,将所述当前版本操作***的当前源码包的第一标识信息与历史版本操作***的源码包的第一标识信息进行比对时,将所述当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识分别与历史版本操作***的源码包的名称、第一版本标识以及第二版本标识进行比对;
当所述历史版本操作***的源码包中存在目标源码包的名称、第一版本标识以及第二版本标识分别与所述当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识一致时,获取所述目标源码包的编译结果;
当所述目标源码包的编译结果为编译失败时,确定所述当前版本操作***的当前源码包为待编译源码包;
分别根据各待编译源码包生成各待编译源码包对应的编译任务;
分别对各待编译源码包对应的编译任务进行编译,得到所述当前版本操作***对应的待编译源码包的编译结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述目标源码包的编译结果为编译成功时,获取所述当前版本操作***的当前源码包的第二标识信息;
将所述当前版本操作***的当前源码包的第二标识信息与预先为所述当前版本操作***创建的目标标签关联存储于预设数据库;
获取所述当前版本操作***的下一个源码包,所述当前版本操作***的下一个源码包为所述当前源码包,重新执行所述获取所述当前版本操作***的当前源码包的第一标识信息的步骤。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据所述当前版本操作***的各待编译源码包的编译结果构建所述当前版本操作***的总的编译结果;
将所述总的编译结果与所述目标标签关联存储于所述预设数据库中;
在接收到终端发送的所述当前版本操作***的总的编译结果的获取请求时,根据所述获取请求中携带的目标标签,从所述预设数据库中获取所述当前版本操作***对应的总的编译结果;
将所述当前版本操作***对应的总的编译结果发送至所述终端,以便所述终端根据所述当前版本操作***对应的总的编译结果构建所述当前版本操作***。
4.一种操作***源码包的编译控制装置,其特征在于,所述装置包括:
查找模块,用于获取所述当前版本操作***的当前源码包的第一标识信息,将当前版本操作***的当前源码包的第一标识信息与历史版本操作***的源码包的第一标识信息进行比对,当不存在所述历史版本操作***的源码包的第一标识信息与所述当前版本操作***的当前源码包的第一标识信息一致时,确定所述当前版本操作***的当前源码包为待编译源码包,所述当前版本操作***的当前源码包的第一标识信息包括所述当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识,将所述当前版本操作***的当前源码包的第一标识信息与历史版本操作***的源码包的第一标识信息进行比对时,将所述当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识分别与历史版本操作***的源码包的名称、第一版本标识以及第二版本标识进行比对,当所述历史版本操作***的源码包中存在目标源码包的名称、第一版本标识以及第二版本标识分别与所述当前版本操作***的当前源码包的名称、第一版本标识以及第二版本标识一致时,获取所述目标源码包的编译结果,当所述目标源码包的编译结果为编译失败时,确定所述当前版本操作***的当前源码包为待编译源码包;
生成模块,用于分别根据各待编译源码包生成各待编译源码包对应的编译任务;
控制模块,用于分别对各待编译源码包对应的编译任务进行编译,得到所述当前版本操作***对应的待编译源码包的编译结果。
5.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至3中任一项所述的操作***源码包的编译控制方法的步骤。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3中任一项所述的操作***源码包的编译控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111110249.4A CN113835711B (zh) | 2021-09-18 | 2021-09-18 | 操作***源码包的编译控制方法、装置、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111110249.4A CN113835711B (zh) | 2021-09-18 | 2021-09-18 | 操作***源码包的编译控制方法、装置、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113835711A CN113835711A (zh) | 2021-12-24 |
CN113835711B true CN113835711B (zh) | 2023-08-15 |
Family
ID=78968988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111110249.4A Active CN113835711B (zh) | 2021-09-18 | 2021-09-18 | 操作***源码包的编译控制方法、装置、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113835711B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106325965A (zh) * | 2015-06-24 | 2017-01-11 | 龙芯中科技术有限公司 | 操作***的编译方法和装置 |
WO2018072493A1 (zh) * | 2016-10-17 | 2018-04-26 | 宁德时代新能源科技股份有限公司 | 编译方法和编译*** |
-
2021
- 2021-09-18 CN CN202111110249.4A patent/CN113835711B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106325965A (zh) * | 2015-06-24 | 2017-01-11 | 龙芯中科技术有限公司 | 操作***的编译方法和装置 |
WO2018072493A1 (zh) * | 2016-10-17 | 2018-04-26 | 宁德时代新能源科技股份有限公司 | 编译方法和编译*** |
Also Published As
Publication number | Publication date |
---|---|
CN113835711A (zh) | 2021-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110647438B (zh) | 事件监控方法、装置、计算机设备和存储介质 | |
CN109474578B (zh) | 报文消息校验方法、装置、计算机设备和存储介质 | |
CN108427705B (zh) | 电子装置、分布式***日志查询方法及存储介质 | |
CN109558404B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN110209652B (zh) | 数据表迁移方法、装置、计算机设备和存储介质 | |
US8793660B2 (en) | Automated testing of programming code for a web service | |
CN110751550B (zh) | 对账方法、装置、计算机设备和存储介质 | |
CN109361628B (zh) | 报文组装方法、装置、计算机设备和存储介质 | |
CN109902272B (zh) | 电子表格数据处理方法、装置、计算机设备和存储介质 | |
WO2020248375A1 (zh) | 数据库间数据同步方法、***、计算机设备及存储介质 | |
CN110727698A (zh) | 数据库访问方法、装置、计算机设备和存储介质 | |
CN108460271B (zh) | 终端识别方法及装置 | |
CN112015752A (zh) | 一种数据动态查询的方法、装置、电子设备和存储介质 | |
CN110569179A (zh) | 数据采集***及数据采集方法 | |
CN109120432B (zh) | 一种故障服务器定位方法及装置 | |
CN111177121A (zh) | 订单数据反馈方法、装置、计算机设备及存储介质 | |
CN111083054B (zh) | 路由配置处理方法、装置、计算机设备和存储介质 | |
CN114443294B (zh) | 大数据服务组件部署方法、***、终端及存储介质 | |
CN110457401B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN110275703B (zh) | 键值对数据的赋值方法、装置、计算机设备和存储介质 | |
CN113835711B (zh) | 操作***源码包的编译控制方法、装置、存储介质及设备 | |
CN112069223A (zh) | 数据获取需求处理方法、装置、计算机设备和存储介质 | |
CN113992739B (zh) | 一种局域网ota固件升级装置、方法及*** | |
CN112783866B (zh) | 数据读取方法、装置、计算机设备和存储介质 | |
CN115687490A (zh) | 一种数据导出方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |