一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

软件运行参数动态设置方法、装置、电子设备及存储介质与流程

2022-03-04 22:24:59 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种软件运行参数动态设置方法、装置、电子设备及存储介质。


背景技术:

2.在软件操作系统中,存在一种较为常见的需求:也即需要动态设置软件运行相关功能参数,然而现有技术中,有一些应用场景使得该需求无法得以满足。
3.例如,在一种应用场景中:(1)某些用户只采购了终端相关软件,没有采购对应的控制中心管理软件,无法对下属终端的相关软件进行批量管理;
4.又如,在另一种应用场景中:(2)针对某些没有通过界面设置对外提供更改设置的功能,如果要修改其相关运行功能参数,只能手动通过变更对应的配置文件来实现,但是某些特殊情况下,用户是没有权限对终端配置文件进行更改的。
5.由此可见,对于上述(1)和(2)所述的应用场景,对软件运行相关功能参数的设置需求无法得以满足。


技术实现要素:

6.针对现有技术中的问题,本发明实施例提供一种软件运行参数动态设置方法、装置、电子设备及存储介质。
7.具体地,本发明实施例提供了以下技术方案:
8.第一方面,本发明实施例提供了一种软件运行参数动态设置方法,包括:
9.获取需要进行软件运行参数动态设置的软件的安装包;
10.根据软件运行参数动态设置需求,对所述安装包中需要进行动态设置的软件运行参数进行更新,得到更新后的安装包;
11.利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置。
12.进一步地,所述软件运行参数动态设置需求中包含有需要进行动态设置的软件运行参数的参数名称和更新值;
13.相应地,根据软件运行参数动态设置需求,对所述安装包中需要进行动态设置的软件运行参数进行更新,得到更新后的安装包,包括:
14.根据所述参数名称,在所述安装包中确定所述参数在所述安装包中的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新,得到更新后的安装包。
15.进一步地,若所述软件的安装包为rpm格式的安装包,则根据所述参数名称,在所述安装包中确定所述参数在所述安装包中的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新,得到更新后的安装包,包括:
16.根据所述参数名称,在所述安装包中确定所述参数在所述安装包中的位置信息,
并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新;以及,计算参数更新后的安装包的新的校验指纹信息,并利用新的校验指纹信息替代原有的校验指纹信息后,得到更新后的安装包。
17.进一步地,所述rpm格式的安装包至少包括:指纹验证信息部分和有效负载归档部分;其中,所述指纹验证信息部分用于对安装包进行安全校验;所述有效负载归档部分用于存储安装包的安装文件信息;
18.相应地,根据所述参数名称,在所述安装包中确定所述参数在所述安装包中的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新;以及,计算参数更新后的安装包的新的校验指纹信息,并利用新的校验指纹信息替代原有的校验指纹信息后,得到更新后的安装包,包括:
19.根据所述参数名称,在所述安装包的有效负载归档部分确定所述参数的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新;其中,所述安装包的有效负载归档部分用于存储所述安装包的安装文件信息;
20.以及,
21.重新确定与参数更新后的安装包对应的新的md5值,并将所述指纹验证信息部分中与参数更新前对应的原有md5值替换为新的md5值;
22.重新确定与md5值更新后的安装包对应的新的sha1值,并将所述指纹验证信息部分中与参数更新前对应的原有sha1值替换为新的sha1值;
23.重新确定与sha1值更新后的安装包对应的新的crc32值,并将所述指纹验证信息部分中与参数更新前对应的原有crc32值替换为新的crc32值。
24.进一步地,若所述软件的安装包为deb格式的安装包,则在生成所述安装包时,设置所述安装包的压缩级别为空,以使得在对所述安装包的打包过程中不进行压缩;
25.相应地,根据所述参数名称,在所述安装包中确定所述参数在所述安装包中的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新,得到更新后的安装包,包括:
26.根据所述参数名称,在未经压缩的安装包中确定所述参数在所述安装包中的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新,得到更新后的安装包。
27.进一步地,利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置,包括:
28.在检测到外界触发的安装指令后,利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置;
29.和/或,
30.在检测到软件分发管理工具下发的批量安装指令后,获取所述批量安装指令指向的多个更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置。
31.第二方面,本发明实施例还提供了一种软件运行参数动态设置装置,包括:
32.获取模块,用于获取需要进行软件运行参数动态设置的软件的安装包;
33.更新模块,用于根据软件运行参数动态设置需求,对所述安装包中需要进行动态
设置的软件运行参数进行更新,得到更新后的安装包;
34.安装模块,用于利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置。
35.第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述软件运行参数动态设置方法的步骤。
36.第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述软件运行参数动态设置方法的步骤。
37.第五方面,本发明实施例还提供了一种计算机程序产品,所计算机程序产品包括有计算机程序,该计算机程序被处理器执行时实现如第一方面所述软件运行参数动态设置方法的步骤。
38.由上面技术方案可知,本发明实施例提供的软件运行参数动态设置方法、装置、电子设备及存储介质,通过采用对软件安装包中的待进行动态设置的参数进行更新的方式实现对软件运行参数的动态设置,从而解决有些场景下不便于对软件运行参数进行批量动态设置的问题以及解决有些场景下因没有权限对软件配置文件进行更改进而导致无法对软件运行参数进行动态设置的问题。
附图说明
39.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.图1为本发明一实施例提供的软件运行参数动态设置方法的流程图;
41.图2为本发明一实施例提供的软件运行参数动态设置装置的结构示意图;
42.图3为本发明一实施例提供的电子设备的结构示意图。
具体实施方式
43.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.正如背景技术部分所述,在软件操作系统中,存在一种较为常见的需求:也即需要动态设置软件运行参数,然而现有技术中,有一些应用场景使得该需求无法得以满足。例如,应用场景(1)某些用户只采购了终端相关软件,没有采购对应的控制中心管理软件,无法对下属终端的相关软件进行批量管理;又如,应用场景(2)针对某些没有通过界面设置对外提供更改设置的功能,如果要修改其相关运行功能参数,只能通过变更对应的配置文件来实现,但是某些特殊情况下,用户是没有权限对终端配置文件进行更改的。由此可见,对于上述(1)和(2)所述的应用场景,动态设置软件运行相关功能参数的需求无法得以满足。
45.为此,本发明实施例为了支持动态设置软件运行参数或者批量进行设置的功能,提出了一种基于更新软件安装包的软件运行参数动态设置方法,在本实施例中,通过将想要动态设置的运行参数更新至软件安装包中,进而利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置,需要说明的是,本实施例提供的基于更新软件安装包的软件运行参数动态设置方法,在对软件安装包进行更新得到更新后的软件安装包后,可以利用操作系统软件分发管理工具将更新后的软件安装包进行批量安装部署,从而解决应用场景(1)面临的问题。此外,本实施例提供的基于更新软件安装包的软件运行参数动态设置方法,在对软件安装包进行更新得到更新后的软件安装包后,可以通过将更新后的软件安装包进行安装的方式解决应用场景(2)面临的问题。下面将通过具体实施例对本发明提供的软件运行参数动态设置方法进行详细解释和说明。
46.图1示出了本发明实施例提供的软件运行参数动态设置方法的流程图。如图1所示,本发明实施例提供的软件运行参数动态设置方法包括如下步骤:
47.步骤101:获取需要进行软件运行参数动态设置的软件的安装包;
48.步骤102:根据软件运行参数动态设置需求,对所述安装包中需要进行动态设置的软件运行参数进行更新,得到更新后的安装包;
49.步骤103:利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置。
50.在本实施例中,需要说明的是,有些软件在使用过程中,有时候会需要动态设置其运行参数,以满足当前使用需求。这里的运行参数包括控制中心地址、云查地址、实时防护监控级别、扫描结果处理方法等中的一种或多种。
51.举例来说,对于一些安全防护软件,根据实际需求,会需要调整其防护监控级别,而这里提到的防护监控级别就属于软件中的一种运行参数。又比如,在一些场景下,需要根据实际需求修改软件中的控制中心地址或云查地址等,而这里提到的控制中心地址或云查地址也属于软件中的运行参数。
52.可以理解的是,当用户采购了终端用的安全防护软件,同时也采购了所述安全防护软件对应的控制中心管理软件时,那么可以通过控制中心管理软件来批量修改所有下属终端的安全防护软件的运行参数。但是假设用户只采购了所述安全防护软件,没有采购所述安全防护软件对应的控制中心管理软件,则无法对下属终端的安全防护软件进行批量管理,这时候就需要各下属终端一个一个地修改所述安全防护软件中的运行参数,这样整个操作会非常麻烦,尤其是当下属终端数量特别多的时候。
53.又如,对于一些安全防护软件,其没有通过界面设置对外提供更改设置的功能,如果要修改其相关运行功能参数,只能通过变更对应的配置文件来实现,但是某些特殊情况下,用户是没有权限对终端配置文件进行更改的,对于这种情况,用户无法实现对软件运行参数的动态设置。
54.因此,为解决软件运行参数不便于批量修改或软件运行参数无法通过界面修改的问题,本实施例创新性地提出了一种新的思路,也即通过对软件安装包中的运行参数进行更新进而来达到更新软件运行参数的目的,也即本实施例提供了一种基于对安装包进行更新的软件运行参数动态设置方法,本实施例提供的方法,通过以下步骤处理即可:

获取需
要进行软件运行参数动态设置的软件的安装包;

根据软件运行参数动态设置需求,对所述安装包中需要进行动态设置的软件运行参数进行更新,得到更新后的安装包;

利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置。由此可见,本实施例能够很好地解决软件运行参数不便于批量修改或软件运行参数无法通过界面修改的问题。可以理解的是,通过更新软件安装包中的运行参数,可以将更新后的软件安装包发送给各下属终端进行安装,从而可以解决因没有采购相应软件对应的控制中心管理软件,而无法对下属终端的软件进行批量设置的问题。同时,可以理解的是,本实施例由于通过对软件安装包进行参数修改,从而可以解决软件运行参数无法通过界面修改的问题。
55.由此可见,本实施例为使得动态设置软件运行参数的需求能够得以满足,提出了一种基于更新软件安装包的软件运行参数动态设置方法,在本实施例中,通过对软件安装包进行更新,将想要动态设置的运行参数更新至软件安装包中,进而利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置。
56.由上面技术方案可知,本发明实施例提供的软件运行参数动态设置方法,通过采用对软件安装包中的待进行动态设置的参数进行更新的方式实现对软件运行参数的动态设置,从而解决有些场景下不便于对软件运行参数进行批量动态设置的问题以及解决有些场景下因没有权限对软件配置文件进行更改进而导致无法对软件运行参数进行动态设置的问题。
57.需要说明的是,本实施例提供的软件运行参数动态设置方法实现的难点之一在于:如何在安装包中确定所述参数在所述安装包中的位置信息。以下以linux系统中的安装包为例进行解释说明,需要说明的是,本技术中的方案不限于linux系统,对于windows系统、xp系统等同样适用。目前对于linux系统中的安装包大致可以分为两大类:rpm和deb。其中,对于rpm安装包来说,由于rpm安装包在打包过程中不会进行压缩,因此,可以直接根据待进行动态设置的参数的名称确定所述参数在安装包中的位置。而对于deb安装包来说,由于deb安装包在打包过程中会进行压缩,因此,无法直接根据待进行动态设置的参数的名称确定所述参数在安装包中的位置,且由于其进行压缩,因此也无法在压缩状态下对所述参数进行修改。因此,对于deb安装包来说,如何解决其因安装包压缩导致的参数位置查找和参数替换是一个比较关键的问题,关于该问题的解决,在后续实施例中有详细的介绍。
58.需要说明的是,本实施例提供的软件运行参数动态设置方法实现的难点之二在于:如何保证进行参数更新后的安装包能够继续被安装,需要说明的是,并不是所有的安装包在进行内容更新后都能够顺利被安装。这是因为更改了安装包的内容后,会导致安装包的指纹验证信息发生变更,这些指纹验证信息和原始指纹验证信息的不匹配就会导致安装报错。同样对于linux系统常见的两类rpm和deb安装来说,由于deb安装包在实际安装过程中并不会校验相关指纹信息,因此,对于deb安装包来说不存在该问题,但是对于rpm安装包来说,由于rpm安装包具有指纹验证信息,且在实际安装过程中会校验相关指纹信息,因此,对于rpm格式的安装包来说,如何保证进行参数更新后的安装包能够继续被安装是一种比较关键的问题。后续实施例将主要针对这两个难点问题进行解释和说明。
59.基于上述实施例的内容,在本实施例中,需要说明的是,所述软件运行参数动态设
置需求中包含有需要进行动态设置的软件运行参数的参数名称和更新值;
60.相应地,上述步骤102根据软件运行参数动态设置需求,对所述安装包中需要进行动态设置的软件运行参数进行更新,得到更新后的安装包,具体可通过如下方式实现:
61.根据所述参数名称,在所述安装包中确定所述参数在所述安装包中的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新,得到更新后的安装包。
62.在本实施例中,需要说明的是,软件运行参数动态设置需求中一般包含有待进行动态设置的软件运行参数的参数名称和更新值,因此,在根据软件运行参数动态设置需求,对所述安装包中需要进行动态设置的软件运行参数进行更新,得到更新后的安装包时,可以根据所述参数名称,在所述安装包中确定所述参数在所述安装包中的位置信息,然后根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新,得到更新后的安装包。需要说明的是,在根据所述参数名称,在所述安装包中确定所述参数在所述安装包中的位置信息,可以根据安装包查询操作指令实现。
63.基于上述实施例的内容,在本实施例中,若所述软件的安装包为rpm格式的安装包,则根据所述参数名称,在所述安装包中确定所述参数在所述安装包中的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新,得到更新后的安装包,包括:
64.根据所述参数名称,在所述安装包中确定所述参数在所述安装包中的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新;以及,计算参数更新后的安装包的新的校验指纹信息,并利用新的校验指纹信息替代原有的校验指纹信息后,得到更新后的安装包。
65.在本实施例中,需要说明的是,linux系统中的安装包大致可以分为两大类:rpm和deb。常见的linux发行版本如redhat/centos/fedora/中标麒麟等为rpm;其他的发行版本如ubuntu/debian/深度/银河麒麟等为deb。对于本发明提供的软件运行参数动态设置方法来说,针对两种格式的安装包,对应着不同的处理方式。本实施例主要针对rpm格式的安装包进行说明,后续实施例将针对deb格式的安装包进行说明。
66.下面将以rpm安装包想要修改控制中心地址为例,来说明这个问题,原始安装包为:qaxsafeip-7.0.0-1000.x86_64.rpm,原始地址为255.255.255.255,现在根据参数动态设置需求,需要将地址255.255.255.255改为127.0.0.1。对于rpm安装包来说,由于在对其打包过程中不进行压缩操作,因此,可以直接以想要修改的“控制中心地址”这一参数为关键词执行查询指令,在找到“控制中心地址”这一参数后,利用更新值“127.0.0.1”替换掉原来的值“255.255.255.255”,从而完成安装包中参数的更新。然而,在保存并安装更新后的安装包时,却出现了安装错误提示,这是因为安装包中的校验指纹信息未进行重新计算更新,例如,sha1信息、md5信息和crc32这些校验指纹信息均未更新。
67.由此可见,由于rpm安装包具有指纹验证信息,因此,对于rpm格式的安装包来说,根据更新值对所述安装包中与所述位置信息对应的参数进行更新是不够的,这是因为更改了安装包的内容后,会导致安装包的指纹验证信息发生变更,这些指纹验证信息和原始指纹验证信息的不匹配会导致安装报错,所以更改了安装包的内容后还得同步更新其指纹验证信息,也即需要同步更新rpm中关于sha1\md5\crc32的各个信息才能保证更新后的rpm包
能够继续正常被安装。
68.基于上述实施例的内容,在本实施例中,所述校验指纹信息包括md5、sha1和crc32中的一种或多种。
69.在本实施例中,需要说明的是,md5、sha1和crc32均属于哈希hash算法。hash,一般叫作散列,也可以直接音译为哈希,其表示把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值(也叫作hash值)。这种转换是一种压缩映射,也就是散列值的空间通常远小于输入的空间。简单的说,就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。hash主要用于信息安全领域中的加密算法,它把一些不同长度的信息转化成杂乱的128位编码,也叫做hash值。md5和sha1是目前应用最广泛的hash算法,它们都是以md4为基础设计的。md5是md4的改进版本。它对输入仍以512位分组,其输出是4个32位字的级联,与md4相同。md5相比md4复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好。md5是一种不可逆的加密算法,目前是最牢靠的加密算法之一,尚没有能够逆运算的程序被开发出来,它对任何字符串都可以加密成一段唯一的固定长度的代码。通过它可以判断原始值是否正确(是否被更改过)。一般所提到的md5校验码就是针对安装程序的唯一对应的一段代码。可以使用任何md5运算器对下载的文件进行运算,运算出来的结果如果完全符合提供的md5校验码,那么说明下载的程序没有被中途修改过。md5校验码有如下特性,首先,它具有不可逆性,例如,有一段文字为:“mysecretwords”,经算法变换后得到md5校验码为:“b9944e9367d2e40dd1f0c4040d4daaf7”,根据这个md5校验码是没有系统的方法可以知道原来的文字是什么的。其次,它具有高度的离散性,也就是说,原信息的一点点变化就会导致md5的巨大变化,例如,“abc”的md5校验码为:“902fbdd2b1df0c4f70b4a5d23525e932”,而“abc”(多了一空格)的md5校验码为:“12c774468f981a9487c30773d8093561”,由此可见,两者虽然只差了一个空格,但是对应的md5校验码的差别非常大,而且之间没有任何关系,也就是说产生的md5校验码是不可预测的。此外,由于这个校验码有128位长,因此任意信息之间具有相同md5校验码的可能性非常之低,通常被认为是不可能的。因此一般认为md5校验码可以唯一地代表原信息的特征,通常用于密码的加密存储,数字签名,文件完整性验证等。此外,对于sha1来说,sha1是由nistnsa设计为同dsa一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举性更好。sha-1设计时基于和md4相同原理,并且模仿了md4算法。sha-1是由美国标准技术局颁布的国家标准,是一种应用最为广泛的hash算法,也是目前最先进的加密技术。此外,对于crc来说,crc的全称为cyclicredundancycheck,中文名称为循环冗余校验。它是一类重要的线性分组码,编码和解码方法简单,检错和纠错能力强,在通信领域广泛地用于实现差错控制。实际上,除数据通信外,crc在其它很多领域也得到广泛应用,例如,在读软盘上的文件以及解压一个zip文件时,偶尔会碰到“badcrc”错误,由此可见,它在数据存储方面的应用也比较广泛。这些hash算法在信息安全方面起到的重要作用。例如,在文件校验和数字签名等方面都得到了有效的应用。例如,由于md5算法的数字指纹特性,使其成为目前应用最广泛的一种文件完整性校验和checksum算法,不少linux或unix系统有提供计算md5checksum的命令。
70.在本实施例中,正如前面所分析的,用于校验安装包的完整性、可选择性和真实性的校验指纹信息可以包括md5、sha1和crc32中的一种或多种,通过这些校验指纹信息,可以有效保证安装包的完整性、可选择性和真实性。同时需要补充说明的是,由于rpm安装包具
有指纹验证信息,因此,对于rpm格式的安装包来说,根据更新值对所述安装包中与所述位置信息对应的参数进行更新是不够的,这是因为更改了安装包的内容后,会导致安装包的指纹验证信息发生变更,这些指纹验证信息和原始指纹验证信息的不匹配会导致安装报错,所以更改了安装包的内容后还得同步更新其指纹验证信息,也即需要同步更新rpm中关于sha1\md5\crc32的各个信息才能保证更新后的rpm包能够继续正常被安装。
71.此外,需要说明的是,所述校验指纹信息并限于md5、sha1和crc32这些校验值,根据实际需要还可以为其他校验值,本实施例对此不作限定。
72.基于上述实施例的内容,在本实施例中,所述rpm格式的安装包至少包括:指纹验证信息部分和有效负载归档部分;其中,所述指纹验证信息部分用于对安装包进行安全校验;所述有效负载归档部分用于存储安装包的安装文件信息;
73.相应地,根据所述参数名称,在所述安装包中确定所述参数在所述安装包中的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新;以及,计算参数更新后的安装包的新的校验指纹信息,并利用新的校验指纹信息替代原有的校验指纹信息后,得到更新后的安装包,包括:
74.根据所述参数名称,在所述安装包的有效负载归档部分确定所述参数的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新;其中,所述安装包的有效负载归档部分用于存储所述安装包的安装文件信息;
75.以及,
76.重新确定与参数更新后的安装包对应的新的md5值,并将所述指纹验证信息部分中与参数更新前对应的原有md5值替换为新的md5值;
77.重新确定与md5值更新后的安装包对应的新的sha1值,并将所述指纹验证信息部分中与参数更新前对应的原有sha1值替换为新的sha1值;
78.重新确定与sha1值更新后的安装包对应的新的crc32值,并将所述指纹验证信息部分中与参数更新前对应的原有crc32值替换为新的crc32值。
79.在本实施例中,为更清楚理解上面的原理以及处理过程,下面对rpm安装包的文件结构进行一个简单介绍,在一种实现方式中,rpm安装包可以被划分为四个独立的部分,分别为

lead(导程),用于表明该安装包;

signature(指纹验证信息),用于校验安装包的完整性、可选择性、真实性;

header(头),包含有该安装包的所有可获得的信息;

payload(有效负载归档),包含有安装的相关文件。根据rpm安装包的组成可以看出,由于rpm安装包具有signature指纹验证信息,用于校验安装包的完整性、可选择性、真实性。由此可知,对于rpm格式的安装包来说,根据更新值对所述安装包中与所述位置信息对应的参数进行更新是不够的,这是因为更改了安装包的内容后,会导致安装包的指纹验证信息发生变更,这些指纹验证信息和原始指纹验证信息的不匹配会导致安装报错,所以更改了安装包的内容后还得同步更新其指纹验证信息以保证更新后的安装包可以正常安装。
80.下面通过一个具体的例子对本实施例的处理过程给予解释和说明。
81.假设参数动态设置需求中需要进行动态设置的参数为:cloud_query=4;operating=1,则依次执行如下处理过程:
82.①
进入原始rpm安装包的payload部分,找到关于该部分的描述,例如原始rpm安装包中对应的值为cloud_query=2;则将cloud_query对应的值由2变更为4;
83.②
计算变更以后的文件的md5信息;
84.③
将原文件的md5的信息替换成新的计算出的md5信息;
85.④
计算变更md5信息后的rpm安装包的sha1sum信息;
86.⑤
将原始的sha1信息替换成新计算出的sha1信息;
87.⑥
计算变更文件信息以后的crc32 checksum信息;
88.⑦
将原始的crc32信息替换成新的crc32 checksum信息。
89.在本实施例中,需要说明的是,安装包包括很多部分,其中一个部分是实际的安装文件,也称配置文件,比如安装包有abcde五个内容,实际的配置文件的内容是c,那么计算的md5可能是bc,计算的sha1是计算完md5后的abc的内容,计算的crc32的可能是cde的内容,也即上述

计算变更以后的文件的md5信息可以理解为对更新软件运行参数后的rpm安装包的有效负载归档部分,或,对更新软件运行参数后的rpm安装包的有效负载归档部分以及其他部分计算md5值。
90.可以理解的是,这里所述的“对更新软件运行参数后的rpm安装包的有效负载归档部分以及其他部分计算md5值”可以指:对更新软件运行参数后的rpm安装包的有效负载归档部分以及lead(导程)部分计算md5值;也可以指:对更新软件运行参数后的rpm安装包的有效负载归档部分以及header(头)部分计算md5值。也可以指:对更新软件运行参数后的rpm安装包的有效负载归档部分、lead(导程)部分和header(头)部分计算md5值。此外,还可以是对更新软件运行参数后的rpm安装包的有效负载归档部分以及其他一个或多个部分计算md5值,本实施例对此不作限定。
91.同理,上述

计算变更md5信息后的rpm安装包的sha1sum信息可以理解为对变更md5信息后的rpm安装包的一个或多个部分计算sha1值。
92.可以理解的是,这里所述的“变更md5信息后的rpm安装包的一个或多个部分”可以指:包括变更md5值后的signature(指纹验证信息)部分;也可以指:包括变更md5值后的signature(指纹验证信息)部分和更新软件运行参数后的payload(有效负载归档)部分;还可以指:包括lead(导程)部分、变更md5值后的signature(指纹验证信息)部分以及更新软件运行参数后的payload(有效负载归档)部分。此外,还可以是变更md5信息后的rpm安装包的其他一个或多个部分,本实施例对此不作限定。
93.同理,上述

计算变更文件信息以后的crc32 checksum信息可以理解为对变更sha1值后的rpm安装包的一个或多个部分计算crc32值。
94.可以理解的是,这里所述的“变更sha1值后的rpm安装包的一个或多个部分”可以指:包括变更md5值和sha1值后的signature(指纹验证信息)部分;也可以指:包括变更md5值和sha1值后的signature(指纹验证信息)部分以及更新软件运行参数后的payload(有效负载归档)部分;还可以指:包括lead(导程)部分、变更md5值和sha1值后的signature(指纹验证信息)部分以及更新软件运行参数后的payload(有效负载归档)部分。还可以指:包括header部分、变更md5值和sha1值后的signature(指纹验证信息)部分以及更新软件运行参数后的payload(有效负载归档)部分。此外,还可以是变更sha1值后的rpm安装包的其他一个或多个部分,本实施例对此不作限定。
95.在本实施例中,需要说明的是,由于rpm安装包具有指纹验证信息,因此,对于rpm格式的安装包来说,根据更新值对所述安装包中与所述位置信息对应的参数进行更新是不
够的,这是因为更改了安装包的内容后,会导致安装包的指纹验证信息发生变更,这些指纹验证信息和原始指纹验证信息的不匹配会导致安装报错,所以更改了安装包的内容后还得同步更新其指纹验证信息,这样才能保证更新后的安装包可以正常安装。
96.基于上述实施例的内容,在本实施例中,若所述软件的安装包为deb格式的安装包,则在生成所述安装包时,设置所述安装包的压缩级别为空,以使得在对所述安装包的打包过程中不进行压缩;
97.相应地,根据所述参数名称,在所述安装包中确定所述参数在所述安装包中的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新,得到更新后的安装包,包括:
98.根据所述参数名称,在未经压缩的安装包中确定所述参数在所述安装包中的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新,得到更新后的安装包。
99.在本实施例中,需要说明的是,前述实施例主要针对rpm格式的安装包进行说明,本实施例主要针对deb格式的安装包进行说明。
100.在本实施例中,需要注意的是,deb安装包在处理过程中区别于rpm安装包,deb安装包在实际安装过程中并不会校验相关指纹信息,但是deb安装包的处理难点在于无法找到要被修改的参数且在该模式下无法对其进行修复,原因是deb安装包实际在打包过程中是进行过相关级别压缩的,被压缩编码以后的文件内容无法被理解和修改。因此,deb安装包的处理难点在于如何解决因deb安装包压缩导致的参数位置查找和参数替换问题。为解决该问题,发明人经独立研究和分析后发现,dpkg-deb在构建整包过程中关于压缩级别是通过参数动态配置的,因此可以在生成所述安装包时,通过dpkg-deb指令设置所述安装包的压缩级别为空,以使得在对所述安装包的打包过程中不进行压缩,由此可见,发明人这一发现完美地解决了deb安装包因压缩导致的参数位置查找和参数替换问题。
101.在本实施例中,在生成所述安装包时,可以通过执行如下命令dpkg-deb-z《none》来设置安装包的压缩级别为空,也即是说dpkg-deb-z是设置安装包的压缩级别的命令。相应地,由于执行了命令dpkg-deb-z《none》,因此,在对deb安装包进行打包的过程中不会进行压缩,从而可以根据所述参数名称,在未经压缩的安装包中确定所述参数在所述安装包中的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新,得到更新后的安装包。
102.基于上述实施例的内容,在本实施例中,上述步骤103利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置具体可通过如下方式实现:
103.在检测到外界触发的安装指令后,利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置;
104.和/或,
105.在检测到软件分发管理工具下发的批量安装指令后,获取所述批量安装指令指向的多个更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置。
106.在本实施例中,包括下面三种可选方案:
107.a、在检测到外界触发的安装指令后,利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置。
108.b、在检测到软件分发管理工具下发的批量安装指令后,获取所述批量安装指令指向的多个更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置。
109.c、在检测到外界触发的安装指令后,利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置;
110.在检测到软件分发管理工具下发的批量安装指令后,获取所述批量安装指令指向的多个更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置。
111.在本实施例中,可以理解的是,在某些针对单个软件的运行参数更新设置场景中,可以在检测到外界触发的针对该软件的安装指令后,利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置。
112.而在某些针对批量软件的运行参数更新设置场景中,可以在检测到软件分发管理工具下发的批量安装指令后,获取所述批量安装指令指向的多个更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置。
113.由此可见,本实施例在对软件安装包进行更新得到更新后的软件安装包后,可以利用操作系统软件分发管理工具将更新后的软件安装包进行批量安装部署,具体地,可以在检测到软件分发管理工具下发的批量安装指令后,获取所述批量安装指令指向的多个更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置,从而解决背景技术中应用场景(1)所面临的问题。此外,本实施例提供的基于更新软件安装包的软件运行参数动态设置方法,在对软件安装包进行更新得到更新后的软件安装包后,可以在检测到外界触发的安装指令后,利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置,从而可以解决背景技术中应用场景(2)面临的问题。由此可见,本实施例实现了软件运行参数的动态设置,有效地解决了现有技术中所面临的难题,从而可以满足用户需求,提高用户体验。
114.图2示出了本发明实施例提供的软件运行参数动态设置装置的结构示意图。如图2所示,本实施例提供的软件运行参数动态设置装置,包括:获取模块21、更新模块22和安装模块23,其中:
115.获取模块21,用于获取需要进行软件运行参数动态设置的软件的安装包;
116.更新模块22,用于根据软件运行参数动态设置需求,对所述安装包中需要进行动态设置的软件运行参数进行更新,得到更新后的安装包;
117.安装模块23,用于利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置。
118.基于上述实施例的内容,在本实施例中,所述软件运行参数动态设置需求中包含有需要进行动态设置的软件运行参数的参数名称和更新值;
119.相应地,更新模块22,具体用于:
120.根据所述参数名称,在所述安装包中确定所述参数在所述安装包中的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新,得到更新后的安装包。
121.基于上述实施例的内容,在本实施例中,若所述软件的安装包为rpm格式的安装包,则更新模块22,具体用于:
122.根据所述参数名称,在所述安装包中确定所述参数在所述安装包中的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新;以及,计算参数更新后的安装包的新的校验指纹信息,并利用新的校验指纹信息替代原有的校验指纹信息后,得到更新后的安装包。
123.基于上述实施例的内容,在本实施例中,所述rpm格式的安装包至少包括:指纹验证信息部分和有效负载归档部分;其中,所述指纹验证信息部分用于对安装包进行安全校验;所述有效负载归档部分用于存储安装包的安装文件信息;
124.相应地,根据所述参数名称,在所述安装包中确定所述参数在所述安装包中的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新;以及,计算参数更新后的安装包的新的校验指纹信息,并利用新的校验指纹信息替代原有的校验指纹信息后,得到更新后的安装包,包括:
125.根据所述参数名称,在所述安装包的有效负载归档部分确定所述参数的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新;其中,所述安装包的有效负载归档部分用于存储所述安装包的安装文件信息;
126.以及,
127.重新确定与参数更新后的安装包对应的新的md5值,并将所述指纹验证信息部分中与参数更新前对应的原有md5值替换为新的md5值;
128.重新确定与md5值更新后的安装包对应的新的sha1值,并将所述指纹验证信息部分中与参数更新前对应的原有sha1值替换为新的sha1值;
129.重新确定与sha1值更新后的安装包对应的新的crc32值,并将所述指纹验证信息部分中与参数更新前对应的原有crc32值替换为新的crc32值。
130.基于上述实施例的内容,在本实施例中,若所述软件的安装包为deb格式的安装包,则在生成所述安装包时,设置所述安装包的压缩级别为空,以使得在对所述安装包的打包过程中不进行压缩;
131.相应地,更新模块22,具体用于:
132.根据所述参数名称,在未经压缩的安装包中确定所述参数在所述安装包中的位置信息,并根据所述更新值,对所述安装包中与所述位置信息对应的参数进行更新,得到更新后的安装包。
133.基于上述实施例的内容,在本实施例中,利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置,包括:
134.在检测到外界触发的安装指令后,利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置;
135.和/或,
136.在检测到软件分发管理工具下发的批量安装指令后,获取所述批量安装指令指向的多个更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置。
137.由于本发明实施例提供的软件运行参数动态设置装置,可以用于执行上述实施例所述的软件运行参数动态设置方法,其工作原理和有益效果类似,故此处不再详述,具体内容可参见上述实施例的介绍。
138.在本实施例中,需要说明的是,本发明实施例的装置中的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
139.基于相同的发明构思,本发明又一实施例提供了一种电子设备,参见图3,所述电子设备具体包括如下内容:处理器301、存储器302、通信接口303和通信总线304;
140.其中,所述处理器301、存储器302、通信接口303通过所述通信总线304完成相互间的通信;
141.所述处理器301用于调用所述存储器302中的计算机程序,所述处理器执行所述计算机程序时实现上述软件运行参数动态设置方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述过程:获取需要进行软件运行参数动态设置的软件的安装包;根据软件运行参数动态设置需求,对所述安装包中需要进行动态设置的软件运行参数进行更新,得到更新后的安装包;利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置。
142.可以理解的是,所述计算机程序可以执行的细化功能和扩展功能可参照上面实施例的描述。
143.基于相同的发明构思,本发明又一实施例提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述软件运行参数动态设置方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述过程:获取需要进行软件运行参数动态设置的软件的安装包;根据软件运行参数动态设置需求,对所述安装包中需要进行动态设置的软件运行参数进行更新,得到更新后的安装包;利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置。
144.可以理解的是,所述计算机程序可以执行的细化功能和扩展功能可参照上面实施例的描述。
145.基于相同的发明构思,本发明又一实施例提供了一种计算机程序产品,所计算机程序产品包括有计算机程序,该计算机程序被处理器执行时实现上述关联应用启动控制方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述过程:获取需要进行软件运行参数动态设置的软件的安装包;根据软件运行参数动态设置需求,对所述安装包中需要进行动态设置的软件运行参数进行更新,得到更新后的安装包;利用更新后的安装包进行软件安装,从安装后的软件中获取动态设置后的软件运行参数,以实现软件运行参数的动态更新设置。
146.可以理解的是,所述计算机程序可以执行的细化功能和扩展功能可参照上面实施例的描述。
147.此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
148.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
149.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的软件运行参数动态设置方法。
150.此外,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
151.此外,在本发明中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
152.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献