1.本技术涉及软件技术领域,具体而言,涉及一种软件安装包的验证方法及装置、非易失性存储介质。
背景技术:2.近年来,国产基础软硬件取得了较快的发展,例如龙芯cpu、飞腾cpu、中标麒麟操作系统、神通数据库、东方通中间件等一批基础软硬件产品取得了飞快的发展。但是,国产硬件系统依然存在故障率高、问题多、更新升级频繁的缺点,运维起来非常困难。虽然目前存在一些开源的软件升级安装工具,但是这些工具无法实现软件的自动推送升级,需要手工进行升级安装,使用起来不方便,特别是对于客户端使用者,因为国产软硬件系统的使用方式和主流产品有着较大的差异,如果手工进行升级,会对用户造成一些困扰,所以需要高质量的打包,打包检验验证也成为了必须。
3.目前国产机环境出于安全考虑,对安装软件的权限需要添加白名单,需要通过配置管理进行安装,安全相关的软件还需要特殊的签名才能进行安装,而且大部分的国产机应用在军工、政府、研究所等安全涉密机构中,安装包的导入,安装包的更新和替换需要走审批流程,还需要在涉密网络等环境中进行,导致更换、更新软件包需要的时间成本非常的高,而且各个项目对同一款的产品需求也有所不同,所以需要对同一款软件产品进行不同的项目定制打包,为了减少版本维护的成本,软件大多是将所有定制功能实现后,通过更改软件包的配置项,或者通过替换某些功能模块对项目需求进行出包,在项目繁多安装包数量庞大的时候,很容易因为人为的因素导致配置项错误,模块替换错误,由于大部分项目定制需求的验证环境在涉密场所,在公司内部没有测试环境,需要现场去验证测试,所以对安装包的质量要求十分的高,对于打包中的文件错误也比较敏感,所以需要对软件包进行检验认证,尽量把人为的错误在出包之前控制到最低。
4.现有的手动打包技术和自动打包技术只是自动获取模块,自动获取国产平台系统的相关信息,生成系统信息文件,再根据获取的系统信息文件进行软件打包,但是对打包完成的安装包并没有进行验证比较,如果安装包内的文件有错误,或者配置项跟项目定制需求不符合根本无法发现,只能保证安装包能正常在系统上安装并不能保证软件在系统上能正常运行并满足项目定制需求。
5.针对上述的问题,目前尚未提出有效的解决方案。
技术实现要素:6.本技术实施例提供了一种软件安装包的验证方法及装置、非易失性存储介质,以至少解决目前针对国产操作系统的软件打包技术,缺少软件打包完成后的验证过程,导致软件安装包性能不稳定的技术问题。
7.根据本技术实施例的一个方面,提供了一种软件安装包的验证方法,包括:获取待验证的目标软件安装包;对目标软件安装包进行解压处理,得到目标软件安装包内的文件;
对目标软件安装包内的文件进行验证,得到验证结果;依据验证结果确定目标软件安装包是否满足预设要求。
8.可选地,对目标软件安装包内的文件进行验证,包括:运行预设脚本查看目标软件安装包内文件的类型;验证目标软件安装包内文件的类型与预设平台架构可执行文件的类型是否相同。
9.可选地,依据验证结果确定目标软件安装包是否满足预设要求,包括:如果目标软件安装包内文件的类型与预设平台架构可执行文件的类型相同,确定目标软件安装包能够在预设平台架构运行;如果目标软件安装包内文件的类型与预设平台架构可执行文件的类型不同,确定目标软件安装包无法在预设平台架构运行。
10.可选地,预设脚本包括:file命令脚本。
11.可选地,对目标软件安装包内的文件进行验证,包括:比较目标软件安装包内的文件与基础软件安装包内的文件,其中,基础软件安装包为目标软件安装包升级之前的软件安装包;依据比较结果确定目标软件安装包内的文件相对于基础软件安装包内的文件发生变化的文件。
12.可选地,比较目标软件安装包内的文件与基础软件安装包内的文件,包括:比较目标软件安装包内的文件的md5值与基础软件安装包内的文件的md5值,确定目标软件安装包内的文件相对于基础软件安装包内的文件发生变化的文件。
13.可选地,依据验证结果确定目标软件安装包是否满足预设要求,包括:确定目标软件安装包内的文件中发生变化的文件是否按照预设需求进行了正确变更;如果目标软件安装包内的文件中发生变化的文件按照预设需求进行了正确变更,确定目标软件安装包满足预设要求;否则,确定目标软件安装包不满足预设要求。
14.根据本技术实施例的另一方面,还提供了一种软件安装包的验证装置,包括:获取模块,设置为获取待验证的目标软件安装包;解压模块,设置为对目标软件安装包进行解压处理,得到目标软件安装包内的文件;验证模块,设置为对目标软件安装包内的文件进行验证,得到验证结果;确定模块,设置为依据验证结果确定目标软件安装包是否满足预设要求。
15.根据本技术实施例的再一方面,还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行以上的软件安装包的验证方法。
16.根据本技术实施例的再一方面,还提供了一种处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的软件安装包的验证方法。
17.在本技术实施例中,采用获取待验证的目标软件安装包;对目标软件安装包进行解压处理,得到目标软件安装包内的文件;对目标软件安装包内的文件进行验证,得到验证结果;依据验证结果确定目标软件安装包是否满足预设要求的方式,针对国产软件多项目定制软件安装包,通过在软件安装包打包完成后,对软件安装包进行验证,从而实现了提高软件安装包的稳定性,减少现场测试的验证风险和实施部署的时间成本的技术效果,进而解决了目前针对国产操作系统的软件打包技术,缺少软件打包完成后的验证过程,导致软件安装包性能不稳定技术问题。
附图说明
18.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
19.图1示出了一种用于实现软件安装包的验证方法的计算机终端(或移动设备)的硬件结构框图;
20.图2是根据本技术实施例的一种软件安装包的验证方法的流程图;
21.图3是根据本技术实施例的一种软件安装包的验证装置的结构框图。
具体实施方式
22.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
23.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
24.根据本技术实施例,提供了一种软件安装包的验证方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
25.本技术实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现软件安装包的验证方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,
……
,102n来示出)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为bus总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
26.应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本技术实施例中所涉及到的,
该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
27.存储器104可用于存储应用软件的软件程序以及模块,如本技术实施例中的软件安装包的验证方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的软件安装包的验证方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
28.传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(network interface controller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
29.显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
30.图2是根据本技术实施例的一种软件安装包的验证方法的流程图,如图2所示,该方法包括如下步骤:
31.步骤s202,获取待验证的目标软件安装包。
32.需要说明的是,上述待验证的目标软件安装包为打包完成的软件安装包。
33.作为一个可选的实施例,上述软件安装包可以是deb格式的软件安装包。
34.步骤s204,对目标软件安装包进行解压处理,得到目标软件安装包内的文件。
35.以deb格式的软件安装包为例,在本步骤中首先对软件安装包进行解压。得到debian文件夹和程序内容文件夹。debian文件夹内control脚本记录了软件包相关的平台架构信息,package为安装包名称,version是软件包版本,architecture是软件包架构,架构主要分为arm,amd和mips,分别记录该信息为后续文件的分析做准备。
36.步骤s206,对目标软件安装包内的文件进行验证,得到验证结果。
37.步骤s208,依据验证结果确定目标软件安装包是否满足预设要求。
38.通过上述步骤,通过在软件安装包打包完成后,对软件安装包进行验证,从而实现了提高软件安装包的稳定性,减少现场测试的验证风险和实施部署的时间成本的技术效果。
39.根据本技术的一个可选的实施例,执行步骤s206对目标软件安装包内的文件进行验证,包括以下步骤:运行预设脚本查看目标软件安装包内文件的类型;验证目标软件安装包内文件的类型与预设平台架构可执行文件的类型是否相同。
40.作为一个可选的实施例,上述预设脚本包括:file命令脚本。
41.在本步骤中,验证软件安装包内的文件是否为符合该平台架构的文件,以保证可执行程序是符合平台架构的二进制文件。
42.在本技术提供的实施例中,用file命令可以查看软件安装包内二进制文件的类型,然后与平台可执行文件的类型进行比对,可以分析出该软件安装包内文件的类型是否正确。
43.file命令是一种linux脚本命令,通过file命令查看文件的类型。
44.根据本技术的一个可选的实施例,执行步骤s208依据验证结果确定目标软件安装包是否满足预设要求,可以通过以下方法实现:如果目标软件安装包内文件的类型与预设平台架构可执行文件的类型相同,确定目标软件安装包能够在预设平台架构运行;如果目标软件安装包内文件的类型与预设平台架构可执行文件的类型不同,确定目标软件安装包无法在预设平台架构运行。
45.在上文中提到,通过file命令可以查看软件安装包内文件的类型,例如通过file命令查看得到软件安装包内文件的类型为二进制文件,平台可执行文件的类型也是二进制文件,通过比对可以确定该软件安装包可以在该平台运行。同理,如果通过file命令查看得到软件安装包内文件的类型不是二进制文件,而平台可执行文件的类型是二进制文件,通过比对可以确定该软件安装包不能在该平台成功运行。
46.通过上述方法,可以实现自动分析验证软件包内文件类型的技术效果。
47.在本技术的一些可选的实施例中,执行步骤s206对目标软件安装包内的文件进行验证,还可以通过以下方法实现:比较目标软件安装包内的文件与基础软件安装包内的文件,其中,基础软件安装包为目标软件安装包升级之前的软件安装包;依据比较结果确定目标软件安装包内的文件相对于基础软件安装包内的文件发生变化的文件。
48.对两个软件安装包进行差异对比,以基础软件安装包(标准软件安装包或者上一版本得软件安装包)为准,检测新打包的软件安装包变更了哪些文件,从而确认变更了软件的哪些模块。
49.作为一个可选的实施例,比较目标软件安装包内的文件与基础软件安装包内的文件,可以通过以下方法实现:比较目标软件安装包内的文件的md5值与基础软件安装包内的文件的md5值,确定目标软件安装包内的文件相对于基础软件安装包内的文件发生变化的文件。
50.在比较目标软件安装包内的文件与基础软件安装包内的文件时,可以通过文件的md5值可以判断文件是否有变动。
51.在本技术的另一些可选的实施例中,执行步骤s208依据验证结果确定目标软件安装包是否满足预设要求,包括以下步骤:确定目标软件安装包内的文件中发生变化的文件是否按照预设需求进行了正确变更;如果目标软件安装包内的文件中发生变化的文件按照预设需求进行了正确变更,确定目标软件安装包满足预设要求;否则,确定目标软件安装包不满足预设要求。
52.在上述步骤中,检测软件安装包中发生变化的文件是否是按照项目需求进行了正确的变更,如果检测结果为是,可以确定新打包的软件安装包可以满足项目需求,使得软件安装包在安装现场安装运行时一步到位,减少现场测试的验证风险和实施部署的时间成本。
53.本技术提供的上述方法于针对国产操作系统环境以及涉密网环境,提高了多项目软件安装包的打包正确性以及软件安装包的性能的稳定性。
54.图3是根据本技术实施例的一种软件安装包的验证装置的结构框图,如图3所示,该装置包括:
55.获取模块30,设置为获取待验证的目标软件安装包。
56.需要说明的是,上述待验证的目标软件安装包为打包完成的软件安装包。
57.作为一个可选的实施例,上述软件安装包可以是deb格式的软件安装包。
58.解压模块32,设置为对目标软件安装包进行解压处理,得到目标软件安装包内的文件。
59.以deb格式的软件安装包为例,在本步骤中首先对软件安装包进行解压。得到debian文件夹和程序内容文件夹。debian文件夹内control脚本记录了软件包相关的平台架构信息,package为安装包名称,version是软件包版本,architecture是软件包架构,架构主要分为arm,amd和mips,分别记录该信息为后续文件的分析做准备。
60.验证模块34,设置为对目标软件安装包内的文件进行验证,得到验证结果。
61.确定模块36,设置为依据验证结果确定目标软件安装包是否满足预设要求。
62.需要说明的是,图3所示实施例的优选实施方式可以参见图2所示实施例的相关描述,此处不再赘述。
63.根据本技术的一个可选的实施例,验证模块34包括:查找单元,设置为运行预设脚本查看目标软件安装包内文件的类型;验证单元,设置为验证目标软件安装包内文件的类型与预设平台架构可执行文件的类型是否相同。
64.根据本技术的另一个可选的实施例,确定模块36包括:第一确定单元,设置为在目标软件安装包内文件的类型与预设平台架构可执行文件的类型相同的情况下,确定目标软件安装包能够在预设平台架构运行;第二确定单元,设置为在目标软件安装包内文件的类型与预设平台架构可执行文件的类型不同的情况下,确定目标软件安装包无法在预设平台架构运行。
65.在本技术的一些可选的实施例中,验证模块34还包括:比较单元,设置为比较目标软件安装包内的文件与基础软件安装包内的文件,其中,基础软件安装包为目标软件安装包升级之前的软件安装包;第三确定单元,设置为依据比较结果确定目标软件安装包内的文件相对于基础软件安装包内的文件发生变化的文件。
66.作为一个可选的实施例,上述比较单元,还设置为比较目标软件安装包内的文件的md5值与基础软件安装包内的文件的md5值,确定目标软件安装包内的文件相对于基础软件安装包内的文件发生变化的文件。
67.在本技术的另一些可选的实施例中,确定模块36还包括:第四确定单元,设置为确定目标软件安装包内的文件中发生变化的文件是否按照预设需求进行了正确变更;第五确定单元,设置为在目标软件安装包内的文件中发生变化的文件按照预设需求进行了正确变更的情况下,确定目标软件安装包满足预设要求;否则,确定目标软件安装包不满足预设要求。
68.本技术实施例还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行以上的软件安装包的验证方法。
69.上述非易失性存储介质用于存储执行以下功能的程序:获取待验证的目标软件安装包;对目标软件安装包进行解压处理,得到目标软件安装包内的文件;对目标软件安装包内的文件进行验证,得到验证结果;依据验证结果确定目标软件安装包是否满足预设要求。
70.本技术实施例还提供了一种处理器,处理器用于运行存储在存储器中的程序,其
中,程序运行时执行以上的软件安装包的验证方法。
71.上述处理器用于运行执行以下功能的程序:获取待验证的目标软件安装包;对目标软件安装包进行解压处理,得到目标软件安装包内的文件;对目标软件安装包内的文件进行验证,得到验证结果;依据验证结果确定目标软件安装包是否满足预设要求。
72.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
73.在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
74.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
75.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
76.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
77.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
78.以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
技术特征:1.一种软件安装包的验证方法,其特征在于,包括:获取待验证的目标软件安装包;对所述目标软件安装包进行解压处理,得到所述目标软件安装包内的文件;对所述目标软件安装包内的文件进行验证,得到验证结果;依据所述验证结果确定所述目标软件安装包是否满足预设要求。2.根据权利要求1所述的方法,其特征在于,对所述目标软件安装包内的文件进行验证,包括:运行预设脚本查看所述目标软件安装包内文件的类型;验证所述目标软件安装包内文件的类型与预设平台架构可执行文件的类型是否相同。3.根据权利要求2所述的方法,其特征在于,依据所述验证结果确定所述目标软件安装包是否满足预设要求,包括:如果所述目标软件安装包内文件的类型与所述预设平台架构可执行文件的类型相同,确定所述目标软件安装包能够在所述预设平台架构运行;如果所述目标软件安装包内文件的类型与所述预设平台架构可执行文件的类型不同,确定所述目标软件安装包无法在所述预设平台架构运行。4.根据权利要求2所述的方法,其特征在于,所述预设脚本包括:file命令脚本。5.根据权利要求1所述的方法,其特征在于,对所述目标软件安装包内的文件进行验证,包括:比较所述目标软件安装包内的文件与基础软件安装包内的文件,其中,所述基础软件安装包为所述目标软件安装包升级之前的软件安装包;依据比较结果确定所述目标软件安装包内的文件相对于所述基础软件安装包内的文件发生变化的文件。6.根据权利要求5所述的方法,其特征在于,比较所述目标软件安装包内的文件与基础软件安装包内的文件,包括:比较所述目标软件安装包内的文件的md5值与所述基础软件安装包内的文件的md5值,确定所述目标软件安装包内的文件相对于所述基础软件安装包内的文件发生变化的文件。7.根据权利要求5所述的方法,其特征在于,依据所述验证结果确定所述目标软件安装包是否满足预设要求,包括:确定目标软件安装包内的文件中发生变化的文件是否按照预设需求进行了正确变更;如果所述目标软件安装包内的文件中发生变化的文件按照预设需求进行了正确变更,确定所述目标软件安装包满足所述预设要求;否则,确定所述目标软件安装包不满足所述预设要求。8.一种软件安装包的验证装置,其特征在于,包括:获取模块,设置为获取待验证的目标软件安装包;解压模块,设置为对所述目标软件安装包进行解压处理,得到所述目标软件安装包内的文件;验证模块,设置为对所述目标软件安装包内的文件进行验证,得到验证结果;确定模块,设置为依据所述验证结果确定所述目标软件安装包是否满足预设要求。9.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的程序,其
中,在所述程序运行时控制所述非易失性存储介质所在设备执行权利要求1至7中任意一项所述的软件安装包的验证方法。10.一种处理器,其特征在于,所述处理器用于运行存储在存储器中的程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的软件安装包的验证方法。
技术总结本申请公开了一种软件安装包的验证方法及装置、非易失性存储介质。其中,该方法包括:获取待验证的目标软件安装包;对目标软件安装包进行解压处理,得到目标软件安装包内的文件;对目标软件安装包内的文件进行验证,得到验证结果;依据验证结果确定目标软件安装包是否满足预设要求。本申请解决了目前针对国产操作系统的软件打包技术,缺少软件打包完成后的验证过程,导致软件安装包性能不稳定的技术问题。题。题。
技术研发人员:李继国 章勇 王峰
受保护的技术使用者:北京时代亿信科技股份有限公司
技术研发日:2022.04.22
技术公布日:2022/7/5