一种软件打包方法及装置制造方法及图纸

技术编号:19176602 阅读:29 留言:0更新日期:2018-10-17 00:13
本发明专利技术公开了一种软件打包方法及装置,该方法包括,获取待打包的多个程序的程序信息;根据所述程序信息判断各个程序支持的硬件类型信息和版本信息是否一致;若一致,则对所述多个程序进行打包;若不一致,则确定存在差异的部分,提取存在差异的部分生成变化文件,将所述变化文件存入临时文件,该装置包括信息获取模块、检测模块、打包模块、变化文件提取模块和写入模块。本发明专利技术通过检测待打包的各个程序的支持的硬件类型和版本是否一致,对待打包的各个程序进行匹配检测,提高了软件打包中程序匹配的效率和准确性,同时减少了打包操作的工作量,提升了打包操作的速度,更好的满足了系统升级包的大小要求。

Software packaging method and device

The invention discloses a software packaging method and a device, which comprises acquiring program information of a plurality of programs to be packaged, judging whether the hardware type information and version information supported by each program are consistent according to the program information, packaging the plurality of programs if they are consistent, and determining the storage if they are inconsistent. In the difference part, the difference part is extracted to generate a change file, and the change file is stored in a temporary file. The device includes an information acquisition module, a detection module, a packaging module, a change file extraction module and a writing module. The invention improves the efficiency and accuracy of program matching in software packaging, reduces the workload of package operation, improves the speed of package operation and satisfies the system better by checking whether the hardware types and versions supported by each program to be packaged are identical and matching each program to be packaged. The size of the upgrade package.

【技术实现步骤摘要】
一种软件打包方法及装置
本专利技术涉及一种计算机领域,具体是一种软件打包方法及装置。
技术介绍
软件中包含了多个程序,每个程序具有各自的功能,但是各个程序之间通常还要相互依赖,所以通常是将各个程序放到一起(即打包)提供给用户。每个程序支持多种硬件类型,比如i386,x86_64,arm,mips,同时程序通常也会分为release版本和debug版本,release版本去掉了程序中的调试信息以便减少程序大小,debug版本保留大量的调试信息以便方便定位。软件发布的时候,会根据用户的需要发布指定的版本,比如发送给用户A的是i386的产品,发送给用户B的是arm产品的版本。但是按照上述的划分,同一套源代码可以生成4种类型、2种版本的程序,这样就会有8种组合,如果考虑到发送给用户的软件通常是多个程序的组合的话,比如软件中包括3个程序,那么实际上就会24种组合。现有的软件打包的方法中需要人工确定程序支持的硬件类型和版本的一致性,效率低,容易出现错误。
技术实现思路
本专利技术的目的在于提供一种软件打包方法及装置,以解决上述
技术介绍
中提出的问题。为实现上述目的,本专利技术提供如下技术方案:一种软件打包方法,包括:S1,获取待打包的多个程序的程序信息;S2,根据所述程序信息判断各个程序支持的硬件类型信息和版本信息是否一致;S3,若一致,则对所述多个程序进行打包;S4,若不一致,则确定存在差异的部分,提取存在差异的部分生成变化文件,将所述变化文件存入临时文件。作为本专利技术进一步的方案:所述获取待打包的多个程序的程序信息,包括:通过file命令获取待打包的多个程序的支持的硬件类型信息和版本信息。作为本专利技术再进一步的方案:所述将所述多个程序进行打包,包括:将软件头部信息写入软件文件,将所述多个程序内容写入所述软件头部信息之后。作为本专利技术再进一步的方案:检测所述版本信息不一致时,提取存在差异的部分生成变化文件部分的步骤包括:确认存在差异的部分;对所述存在差异的部分进行打包;清空所述临时文件的内容。一种软件打包装置,包括信息获取模块、检测模块、打包模块、变化文件提取模块和写入模块。作为本专利技术进一步的方案:所述信息获取模块用于获取待打包的多个程序的程序信息;检测模块用于根据所述程序信息判断各个程序支持的硬件类型信息和版本信息是否一致;打包模块用于将所述多个程序进行打包;变化文件提取模块用于确定差异部分,同时提取存在差异部分生成变化文件,写入模块用于将所述变化文件存入临时文件中。作为本专利技术再进一步的方案:所述程序信息获取单元,具体用于通过file命令获取待打包的多个程序支持的硬件类型信息和版本信息。作为本专利技术再进一步的方案:所述软件打包单元,具体用于当各个程序支持的硬件类型信息和版本信息一致时,将软件头部信息写入软件文件,将所述多个程序内容写入所述软件头部信息之后。作为本专利技术再进一步的方案:所述软件头部信息包括程序个数、软件头部校验和、各个程序的程序名、各个程序的大小和各个程序的校验值。与现有技术相比,本专利技术的有益效果是:本专利技术通过检测待打包的各个程序的支持的硬件类型和版本是否一致,对待打包的各个程序进行匹配检测,提高了软件打包中程序匹配的效率和准确性,同时减少了打包操作的工作量,提升了打包操作的速度,更好的满足了系统升级包的大小要求,在有效减少软件打包的大小的同时,提高了软件打包的速度。附图说明图1为软件打包方法的流程示意图。图2为软件打包装置的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1,本专利技术实施例中,一种软件打包方法,包括:S1,获取待打包的多个程序的程序信息;S2,根据所述程序信息判断各个程序支持的硬件类型信息和版本信息是否一致;S3,若一致,则对所述多个程序进行打包;S4,若不一致,则确定存在差异的部分,提取存在差异的部分生成变化文件,将所述变化文件存入临时文件。针对版本信息一致的软件打包的方法:通过检测待打包的各个程序的支持的硬件类型和版本是否一致,对待打包的各个程序进行匹配检测,提高了软件打包中程序匹配的效率和准确性。进一步地,前述步骤S1中还包括下述的图中未示出的子步骤S1a:通过file命令获取待打包的多个程序支持的硬件类型信息和版本信息。举例来说,file命令获取各个程序的信息,file命令会返回硬件类型,比如:1、ELF64-bitLSBexecutable,x86_64表明硬件是x86_64;2、ELF32-bitLSBexecutable,Intel80386表明硬件是i386;3、ELF32-bitLSBexecutable,ARM表明硬件是ARM;4、ELF64-bitLSBexecutable,MIPS表明硬件是mips;需要说明的是,32-bit表明是32位程序,64-bit表明是64位程序。进一步地,所述软件头部信息包括程序个数、软件头部校验和、各个程序的程序名、各个程序的大小和各个程序的校验值,所述软件头部信息包括魔术字、软件版本号程序个数、软件头部校验和、各个程序的程序名、各个程序的大小和各个程序的校验值。需要说明的是,魔术字是公司名称和产品类型的组合,用来表明软件的基本用途,这部分内容是不固定的,需要根据产品情况来调整。由于软件是整体提供的,需要一个软件版本号,软件版本号也不是固定的,软件头部校验和用来校验软件头部的正确性。针对版本信息一致的软件打包的方法还包括获取软件头部信息,其中,所述软件头部校验和为软件头部各个字节内容之和,具体来说,由于软件头部的信息不是很多,因此只需要一种简单的方法进行校验即可,本实施例采取的方法是对软件头部的信息按照字节为单位进行相加,并将结果记录在头部中的校验和字段。针对版本信息不一致的软件打包的方法:1、确认存在差异的部分:使用Git版本控制工具,检测两个版本之间的文件变动情况,使用Git命令判断版本之间文件变动,基于打包模式文件判断是否需打包;针对两个版本之间的文件变动情况根据文件与软件打包的模式匹配,进行增量的系统软件打包;在基于Git版本控制工具获取版本之间的变化文件后,将变化文件存入临时文件DIFF_TMP_FILE中。本发放中,将软件安装包逐次拆分为文档(Doc),开发(devel),核心(core),依赖库(lib),并根据软件源代码版本库中的更改,进行增量的软件打包,使得不频繁变动的依赖库(lib)较少打包和升级,而频繁变动的核心(core)得以经常的打包和升级,从而软件打包的速度得以提升,同时满足系统升级包的大小要求。2、对所述存在差异的部分进行打包:读取临时文件,具体的根据预置的打包周期循环读取所述临时文件;在检测到所述临时文件不为空、存储有变化文件时,对所述变化文件进行打包,在检测到所述临时文件为空时,不执行打包操作;基于Git版本控制工具获取版本之间的变化文件为例,在此种场景下,循环读取文件打包的模式regex_file,并根据DIFF_TMP_FILE进行模式匹配,判断模块是否需要打包,本文档来自技高网...

【技术保护点】
1.一种软件打包方法,其特征在于,包括:S1,获取待打包的多个程序的程序信息;S2,根据所述程序信息判断各个程序支持的硬件类型信息和版本信息是否一致;S3,若一致,则对所述多个程序进行打包;S4,若不一致,则确定存在差异的部分,提取存在差异的部分生成变化文件,将所述变化文件存入临时文件。

【技术特征摘要】
1.一种软件打包方法,其特征在于,包括:S1,获取待打包的多个程序的程序信息;S2,根据所述程序信息判断各个程序支持的硬件类型信息和版本信息是否一致;S3,若一致,则对所述多个程序进行打包;S4,若不一致,则确定存在差异的部分,提取存在差异的部分生成变化文件,将所述变化文件存入临时文件。2.根据权利要求1所述的一种软件打包方法,其特征在于,所述获取待打包的多个程序的程序信息,包括:通过file命令获取待打包的多个程序的支持的硬件类型信息和版本信息。3.根据权利要求1所述的一种软件打包方法,其特征在于,所述将所述多个程序进行打包,包括:将软件头部信息写入软件文件,将所述多个程序内容写入所述软件头部信息之后。4.根据权利要求1所述的一种软件打包方法,其特征在于,检测所述版本信息不一致时,提取存在差异的部分生成变化文件部分的步骤包括:确认存在差异的部分;对所述存在差异的部分进行打包;清空所述临时文件的内容。5.一种软件打包装置,其特征在于,包括信息获取模块...

【专利技术属性】
技术研发人员:谢泉
申请(专利权)人:中山市博美科研技术服务有限公司
类型:发明
国别省市:广东,44

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

1