CN112099811B - 一种rpm包安装的方法和设备 - Google Patents
一种rpm包安装的方法和设备 Download PDFInfo
- Publication number
- CN112099811B CN112099811B CN202010954723.0A CN202010954723A CN112099811B CN 112099811 B CN112099811 B CN 112099811B CN 202010954723 A CN202010954723 A CN 202010954723A CN 112099811 B CN112099811 B CN 112099811B
- Authority
- CN
- China
- Prior art keywords
- dependent
- package
- dependency
- rpm
- packet
- 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 30
- 230000001419 dependent effect Effects 0.000 claims abstract description 114
- 230000004044 response Effects 0.000 claims abstract description 17
- 238000009434 installation Methods 0.000 claims description 18
- 238000012360 testing method Methods 0.000 abstract description 18
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 4
- 238000012163 sequencing technique Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- 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
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- 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
Abstract
本发明提供了一种rpm包安装的方法和设备,该方法包括以下步骤:查询待安装的rpm工具包的依赖包,并确认依赖包是否为系统文件;响应于依赖包不是系统文件,将所有依赖包进行排序;按排序查询每一个依赖包的下级依赖包并判断每一个依赖包的下级依赖包是否为系统文件;响应于依赖包的下级依赖包不是系统文件,针对再下一级依赖包重复上一步骤直到判断完每一级依赖包并将每一级依赖包的依赖关系进行记录,以及基于记录进行rpm包的安装。通过使用本发明的方案,能够在不破坏系统环境的情况下,快速安装测试工具的rpm包,提升了工作效率效率,简化测试流程,提高测试的自动化程度。
Description
技术领域
本领域涉及计算机领域,并且更具体地涉及一种rpm包安装的方法和设备。
背景技术
在Linux系统中进行自动化测试时会用到一些工具,这些工具的安装最简单的方法是通过rpm包(RPM软件包管理器)的方式进行安装,使用yum进行安装可以忽略各个rpm包之间的依赖关系,但是在进行测试时,测试环境中不一定安装有yum,所以使用rpm的安装方式是最为可靠的,在测试中应尽量保证不破坏现有环境,所以使用rpm暴力安装的方式是不可取的。
发明内容
有鉴于此,本发明实施例的目的在于提出一种rpm包安装的方法和设备,通过使用本发明的方法,能够在不破坏系统环境的情况下,快速安装测试工具的rpm包,提升了工作效率,简化测试流程,提高测试的自动化程度。
基于上述目的,本发明的实施例的一个方面提供了一种rpm包安装的方法,包括以下步骤:
查询待安装的rpm工具包的依赖包,并确认依赖包是否为系统文件;
响应于依赖包不是系统文件,将所有依赖包进行排序;
按排序查询每一个依赖包的下级依赖包并判断每一个依赖包的下级依赖包是否为系统文件;
响应于依赖包的下级依赖包不是系统文件,针对再下一级依赖包重复上一步骤直到判断完每一级依赖包并将每一级依赖包的依赖关系进行记录,以及基于记录进行rpm包的安装。
根据本发明的一个实施例,还包括:
判断每一个依赖包是否已经存在于系统中;
响应于依赖包存在于系统中,将在系统中的依赖包进行标记。
根据本发明的一个实施例,还包括:
获取每一个被标记的依赖包的版本信息。
根据本发明的一个实施例,还包括:
将依赖关系和版本信息记录到配置文件中。
根据本发明的一个实施例,还包括:
基于配置文件安装不是系统文件且未存在于系统中的依赖包。
本发明的实施例的另一个方面,还提供了一种rpm包安装的设备,设备包括:
查询模块,查询模块配置为查询待安装的rpm工具包的依赖包,并确认依赖包是否为系统文件;
排序模块,排序模块配置为响应于依赖包不是系统文件,将所有依赖包进行排序;
判断模块,判断模块配置为按排序查询每一个依赖包的下级依赖包并判断每一个依赖包的下级依赖包是否为系统文件;
记录模块,记录模块配置为响应于依赖包的下级依赖包不是系统文件,针对再下一级依赖包重复上一步骤直到判断完每一级依赖包并将每一级依赖包的依赖关系进行记录,以及基于记录进行rpm包的安装。
根据本发明的一个实施例,还包括标记模块,标记模块配置为:
判断每一个依赖包是否已经存在于系统中;
响应于依赖包存在于系统中,将在系统中的依赖包进行标记。
根据本发明的一个实施例,还包括获取模块,获取模块配置为:
获取每一个被标记的依赖包的版本信息。
根据本发明的一个实施例,还包括记录模块,记录模块配置为:
将依赖关系和版本信息记录到配置文件中。
根据本发明的一个实施例,还包括安装模块,安装模块配置为:
基于配置文件安装不是系统文件且未存在于系统中的依赖包。
本发明具有以下有益技术效果:本发明实施例提供的rpm包安装的方法,通过查询待安装的rpm工具包的依赖包,并确认依赖包是否为系统文件;响应于依赖包不是系统文件,将所有依赖包进行排序;按排序查询每一个依赖包的下级依赖包并判断每一个依赖包的下级依赖包是否为系统文件;响应于依赖包的下级依赖包不是系统文件,针对再下一级依赖包重复上一步骤直到判断完每一级依赖包并将每一级依赖包的依赖关系进行记录,以及基于记录进行rpm包的安装的技术方案,能够在不破坏系统环境的情况下,快速安装测试工具的rpm包,提升了工作效率效率,简化测试流程,提高测试的自动化程度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为根据本发明一个实施例的rpm包安装的方法的示意性流程图;
图2为根据本发明一个实施例的rpm包安装的设备的示意图;
图3为依赖包依赖关系的树状图的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
基于上述目的,本发明的实施例的第一个方面,提出了一种rpm包安装的方法的一个实施例。图1示出的是该方法的示意性流程图。
如图1中所示,该方法可以包括以下步骤:
S1查询待安装的rpm工具包的依赖包,并确认依赖包是否为系统文件,安装rpm工具包时需要安装很多依赖包,如果依赖包已经是系统自身文件,那么也就不需要再次安装,如果依赖包不是系统自身文件,则将安装rpm工具包的所有依赖包列出;
S2响应于依赖包不是系统文件,将所有依赖包进行排序,这些依赖包可以称为一层依赖包,并将这些一层依赖包随意进行排序,并可以使用树状图将排序关系记录下来,如果这些一层依赖包中某些是系统文件,则在树状图中标记为系统文件,如果某些依赖包已经存在于系统中,同样可以使用标记表示已经存在系统中;
S3按排序查询每一个依赖包的下级依赖包并判断每一个依赖包的下级依赖包是否为系统文件,一层依赖包的安装同样可能需要其他依赖包,这些依赖包可以称为二层依赖包,二层依赖包的处理方式跟一层依赖包相同,同时将二层依赖包在树状图中记录在对应的一层依赖包下面;
S4响应于依赖包的下级依赖包不是系统文件,针对再下一级依赖包重复上一步骤直到判断完每一级依赖包并将每一级依赖包的依赖关系进行记录,以及基于记录进行rpm包的安装,采用与上面相同的方式判断每一层的依赖包,最终可以得到一个完整的树状图,其中哪些依赖包是系统文件,哪些已经存在于系统中,哪些还没有安装可以很清楚的在树状图中看到。
本发明的技术方案通过对所需安装软件包的依赖关系进行查询,依次确定每层依赖包是否已在现有环境中安装,版本号信息,并将这些信息记录到配置文件中,在进行安装时根据配置文件安装未安装的依赖包,有效的对测试工具进行简单的定制化安装,实现测试的自动化。
通过本发明的技术方案,能够在不破坏系统环境的情况下,快速安装测试工具的rpm包,提升了工作效率效率,简化测试流程,提高测试的自动化程度。
在本发明的一个优选实施例中,还包括:
判断每一个依赖包是否已经存在于系统中;
响应于依赖包存在于系统中,将在系统中的依赖包进行标记。如果依赖包不是系统文件但是已经存在于系统中,那么该安装包需要再次安装,使用时直接调用即可,对于这些安装包只需要进行相应的标记,可以标记为exist。
在本发明的一个优选实施例中,还包括:
获取每一个被标记的依赖包的版本信息。每个依赖包都有不同的版本信息,已经存在于系统中的依赖包的版本信息可以用于本次rpm包的安装,那么该依赖包不用再次安装,如果该依赖包的版本过低或不适合本次rpm包的安装,则需要将该依赖包重新进行标记以在安装rpm包时重新安装符合要求的依赖包。
在本发明的一个优选实施例中,还包括:
将依赖关系和版本信息记录到配置文件中。
在本发明的一个优选实施例中,还包括:
基于配置文件安装不是系统文件且未存在于系统中的依赖包。rpm包的安装依赖配置文件,将上面查询过的信息记录在配置文件中可以在安装rpm包时很清楚的知道哪些依赖包是需要安装的,哪些依赖包是不需要安装的。可以节省很多安装时间。
实施例
图3为使用本发明方法记录的各层依赖包依赖关系的树状图,首先查询要安装的rpm工具包的依赖包,确认rpm工具包的依赖包是否为linux系统自身文件,若是则忽略,若不是则将依赖包记为A1、A2、…An;然后检查依赖包A1在当前系统中是否存在,若存在则在该软件包记录时备注为exist,若不存在则不备注;然后确认A1依赖包的依赖包是否为linux系统自身文件,若是则忽略,若不是则将依赖包记为A11、A12、…A1n,然后检查依赖包A11在当前系统中是否存在,若存在则在该软件包记录时备注为exist,若不存在则不另加备注,A1包检查完毕则对A2包进行检查,步骤相同,依次执行直到完成全部依赖包的检查,并将这些信息记录到配置文件中,得出安装所需rpm工具包的依赖关系并使用树状图进行记录,并显示当前环境中哪些包已经安装,哪些需要安装,同时显示已安装包的版本信息;在安装软件时根据配置文件逆向安装未安装的依赖包实现对rpm工具包的安装,节省了测试时间。
通过本发明的技术方案,能够在不破坏系统环境的情况下,快速安装测试工具的rpm包,提升了工作效率效率,简化测试流程,提高测试的自动化程度。
需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存取存储器(Random AccessMemory,RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
此外,根据本发明实施例公开的方法还可以被实现为由CPU执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU执行时,执行本发明实施例公开的方法中限定的上述功能。
基于上述目的,本发明的实施例的第二个方面,提出了一种rpm包安装的设备,如图2所示,设备200包括:
查询模块,查询模块配置为查询待安装的rpm工具包的依赖包,并确认依赖包是否为系统文件;
排序模块,排序模块配置为响应于依赖包不是系统文件,将所有依赖包进行排序;
判断模块,判断模块配置为按排序查询每一个依赖包的下级依赖包并判断每一个依赖包的下级依赖包是否为系统文件;
记录模块,记录模块配置为响应于依赖包的下级依赖包不是系统文件,针对再下一级依赖包重复上一步骤直到判断完每一级依赖包并将每一级依赖包的依赖关系进行记录,以及基于记录进行rpm包的安装。
在本发明的一个优选实施例中,还包括标记模块,标记模块配置为:
判断每一个依赖包是否已经存在于系统中;
响应于依赖包存在于系统中,将在系统中的依赖包进行标记。
在本发明的一个优选实施例中,还包括获取模块,获取模块配置为:
获取每一个被标记的依赖包的版本信息。
在本发明的一个优选实施例中,还包括记录模块,记录模块配置为:
将依赖关系和版本信息记录到配置文件中。
在本发明的一个优选实施例中,还包括安装模块,安装模块配置为:
基于配置文件安装不是系统文件且未存在于系统中的依赖包。
上述实施例,特别是任何“优选”实施例是实现的可能示例,并且仅为了清楚地理解本发明的原理而提出。可以在不脱离本文所描述的技术的精神和原理的情况下对上述实施例进行许多变化和修改。所有修改旨在被包括在本公开的范围内并且由所附权利要求保护。
Claims (10)
1.一种rpm包安装的方法,其特征在于,包括以下步骤:
查询待安装的rpm工具包的依赖包,并确认所述依赖包是否为系统文件;
响应于所述依赖包不是系统文件,将所有依赖包进行排序;
按所述排序查询每一个依赖包的下级依赖包并判断每一个依赖包的下级依赖包是否为系统文件;
响应于依赖包的下级依赖包不是系统文件,针对再下一级依赖包重复上一步骤直到判断完每一级依赖包并将每一级依赖包的依赖关系进行记录,以及基于所述记录的依赖关系进行rpm包的安装。
2.根据权利要求1所述的方法,其特征在于,还包括:
判断每一个依赖包是否已经存在于系统中;
响应于依赖包存在于系统中,将在系统中的依赖包进行标记。
3.根据权利要求2所述的方法,其特征在于,还包括:
获取每一个被标记的依赖包的版本信息。
4.根据权利要求3所述的方法,其特征在于,还包括:
将所述依赖关系和所述版本信息记录到配置文件中。
5.根据权利要求4所述的方法,其特征在于,还包括:
基于所述配置文件安装不是系统文件且未存在于系统中的依赖包。
6.一种rpm包安装的设备,其特征在于,所述设备包括:
查询模块,所述查询模块配置为查询待安装的rpm工具包的依赖包,并确认所述依赖包是否为系统文件;
排序模块,所述排序模块配置为响应于所述依赖包不是系统文件,将所有依赖包进行排序;
判断模块,所述判断模块配置为按所述排序查询每一个依赖包的下级依赖包并判断每一个依赖包的下级依赖包是否为系统文件;
记录模块,所述记录模块配置为响应于依赖包的下级依赖包不是系统文件,针对再下一级依赖包重复上一步骤直到判断完每一级依赖包并将每一级依赖包的依赖关系进行记录,以及基于所述记录的依赖关系进行rpm包的安装。
7.根据权利要求6所述的设备,其特征在于,还包括标记模块,所述标记模块配置为:
判断每一个依赖包是否已经存在于系统中;
响应于依赖包存在于系统中,将在系统中的依赖包进行标记。
8.根据权利要求7所述的设备,其特征在于,还包括获取模块,所述获取模块配置为:
获取每一个被标记的依赖包的版本信息。
9.根据权利要求8所述的设备,其特征在于,还包括记录模块,所述记录模块配置为:
将所述依赖关系和所述版本信息记录到配置文件中。
10.根据权利要求9所述的设备,其特征在于,还包括安装模块,所述安装模块配置为:
基于所述配置文件安装不是系统文件且未存在于系统中的依赖包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010954723.0A CN112099811B (zh) | 2020-09-11 | 2020-09-11 | 一种rpm包安装的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010954723.0A CN112099811B (zh) | 2020-09-11 | 2020-09-11 | 一种rpm包安装的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112099811A CN112099811A (zh) | 2020-12-18 |
CN112099811B true CN112099811B (zh) | 2023-01-06 |
Family
ID=73750885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010954723.0A Active CN112099811B (zh) | 2020-09-11 | 2020-09-11 | 一种rpm包安装的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112099811B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550071A (zh) * | 2015-12-28 | 2016-05-04 | 迈普通信技术股份有限公司 | 系统文件升级及检测方法、通信设备 |
-
2020
- 2020-09-11 CN CN202010954723.0A patent/CN112099811B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550071A (zh) * | 2015-12-28 | 2016-05-04 | 迈普通信技术股份有限公司 | 系统文件升级及检测方法、通信设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112099811A (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100468356C (zh) | 通过属性控制的测试实例继承 | |
CN107797923B (zh) | 代码覆盖率分析方法及应用服务器 | |
CN112306855B (zh) | 接口自动化测试方法、装置、终端和存储介质 | |
CN108491321B (zh) | 测试用例范围确定方法、装置及存储介质 | |
CN110287696B (zh) | 一种反弹shell进程的检测方法、装置和设备 | |
CN101593146A (zh) | 页面自动化测试方法和装置 | |
CN105787364A (zh) | 任务的自动化测试方法、装置及系统 | |
CN111813646A (zh) | docker容器环境下注入应用探针的方法和装置 | |
CN113099439A (zh) | Ota升级压力测试的方法、装置、计算机设备和存储介质 | |
CN111984452A (zh) | 程序故障检测方法、装置、电子设备以及存储介质 | |
CN112099811B (zh) | 一种rpm包安装的方法和设备 | |
CN111625434A (zh) | 一种数据库oltp基准性能测试方法、系统及相关组件 | |
CN114003269A (zh) | 组件处理方法、装置、电子设备及存储介质 | |
CN113127314B (zh) | 一种检测程序性能瓶颈的方法、装置及计算机设备 | |
CN116303099A (zh) | 自动化测试环境跨平台快速部署方法、装置、介质及设备 | |
CN112433876A (zh) | 一种作业错误信息处理方法、装置和存储介质 | |
CN114500249B (zh) | 一种根因定位方法和装置 | |
CN111666200A (zh) | 一种pc软件冷启动耗时的测试方法及终端 | |
CN113127367B (zh) | Android动态权限申请的缺陷检测方法 | |
CN111708670B (zh) | 实时操作系统中任务时间参数的确定方法、装置及车辆 | |
CN115840707A (zh) | 一种刷写测试方法、装置及介质 | |
CN115688113A (zh) | 基于静态扫描的漏洞检测方法、装置、设备及存储介质 | |
CN113722048A (zh) | 一种k8s中IAST agent自动化部署方法和系统 | |
CN112434287A (zh) | 一种检测Hook的方法、装置、设备及存储介质 | |
CN112346963B (zh) | 一种基于aop的插桩测试方法、装置和电子设备 |
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 |