一种RPM软件包管理方法、系统、装置及可读存储介质与流程

文档序号:20874618发布日期:2020-05-26 16:19阅读:164来源:国知局
一种RPM软件包管理方法、系统、装置及可读存储介质与流程

本发明涉及软件管理领域,特别涉及一种rpm软件包管理方法、系统、装置及可读存储介质。



背景技术:

yum(yellowdogupdater,modified,shell前端软件包管理器)应用于fedora和redhat以及centos中作为rpm(red-hatpackagemanager,红毛使用的软件安装包管理器),具体的,openlinux、suse以及turbolinux等linux的分发版本都有采用。yum能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

在使用yum进行软件包的查询和下载时,会遇到需安装软件包的目标设备无法联网的问题,此时需要通过其他可联网的设备下载软件包然后导入目标设备安装,一旦联网设备为非linux的操作系统或cpu类型与目标设备不一致,联网设备无法将通过yum下载的软件包应用到目标设备上。

因此,如何提供一种解决上述技术问题的方案是目前本领域技术人员需要解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种不受操作系统和cpu的类型限制的rpm软件包管理方法、系统、装置及可读存储介质。其具体方案如下:

一种rpm软件包管理方法,应用于本地yum管理器,包括:

读取网络yum源的配置,获取其软件包地址和依赖关系数据库地址;

通过所述依赖关系数据库地址,从所述网络yum源下载依赖关系数据库;

根据所述依赖关系数据库确定目标软件包;

根据所述软件包地址从所述网络yum源下载所述目标软件包;

读取所述目标软件包中的第一依赖文件,通过所述依赖关系数据库搜索与所述第一依赖文件对应的依赖包,从所述网络yum源下载所述依赖包。

优选的,所述rpm软件包管理方法,还包括:

循环执行以下动作:

根据所述依赖包中的第二依赖文件,并通过所述依赖关系数据库搜索与所述第二依赖文件对应的依赖包,从所述网络yum源下载该依赖包。

优选的,所述通过所述依赖关系数据库地址,从所述网络yum源下载依赖关系数据库的过程,包括:

通过所述依赖关系数据库地址,从所述网络yum源下载依赖关系数据库的压缩包,并将所述压缩包解压到预设目录。

优选的,所述依赖关系数据库具体为sqlite数据库。

优选的,所述根据所述依赖关系数据库确定目标软件包的过程,具体包括:

利用关键字查询命令,根据所述依赖关系数据库确定目标软件包。

优选的,所述利用关键字查询命令,根据所述依赖关系数据库确定目标软件包的过程,具体包括:

利用关键字查询命令,通过模糊查找算法,根据所述依赖关系数据库确定目标软件包。

相应的,本发明还公开了一种rpm软件包管理系统,包括:

源配置模块,用于读取网络yum源的配置,获取其软件包地址和依赖关系数据库地址;

第一下载模块,用于通过所述依赖关系数据库地址,从所述网络yum源下载依赖关系数据库;

软件包确定模块,用于根据所述依赖关系数据库确定目标软件包;

第二下载模块,用于根据所述软件包地址从所述网络yum源下载所述目标软件包;

第三下载模块,用于读取所述目标软件包中的第一依赖文件,通过所述依赖关系数据库搜索与所述第一依赖文件对应的依赖包,从所述网络yum源下载所述依赖包。

优选的,所述rpm软件包管理系统还包括:

第四下载模块,用于循环执行以下动作:

根据所述依赖包中的第二依赖文件,并通过所述依赖关系数据库搜索与所述第二依赖文件对应的依赖包,从所述网络yum源下载该依赖包。

相应的,本发明还公开了一种rpm软件包管理装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上文任一项所述rpm软件包管理方法的步骤。

相应的,本发明还公开了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任一项所述rpm软件包管理方法的步骤。

本发明公开了一种rpm软件包管理方法,应用于本地yum管理器,包括:读取网络yum源的配置,获取其软件包地址和依赖关系数据库地址;通过所述依赖关系数据库地址,从所述网络yum源下载依赖关系数据库;根据所述依赖关系数据库确定目标软件包;根据所述软件包地址从所述网络yum源下载所述目标软件包;读取所述目标软件包中的第一依赖文件,通过所述依赖关系数据库搜索与所述第一依赖文件对应的依赖包,从所述网络yum源下载所述依赖包。本申请首先下载了依赖关系数据库,利用依赖关系数据库来完成所有目标软件包的确定、目标软件包的下载以及依赖关系对应的依赖包的下载,利用目标软件包内的依赖文件再下载依赖包,不用一次性下载所有目标软件包和依赖包,该过程的实施不要求操作系统必须为linux,也不限制cpu的类型,解决了rpm软件包下载安装受限的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例中一种rpm软件包管理方法的步骤流程图;

图2为本发明实施例中一种rpm软件包管理系统的结构分布图;

图3为本发明实施例中一种rpm软件包管理装置的结构分布图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在使用yum进行软件包的查询和下载时,会遇到需安装软件包的目标设备无法联网的问题,此时需要通过其他可联网的设备下载软件包然后导入目标设备安装,一旦联网设备为非linux的操作系统或cpu类型与目标设备不一致,联网设备无法将通过yum下载的软件包应用到目标设备上。

本申请首先下载了依赖关系数据库,利用依赖关系数据库来完成所有目标软件包的确定、目标软件包的下载以及依赖关系对应的依赖包的下载,利用目标软件包内的依赖文件再下载依赖包,不用一次性下载所有目标软件包和依赖包,该过程的实施不要求操作系统必须为linux,也不限制cpu的类型,解决了rpm软件包下载安装受限的问题。

本发明实施例公开了一种rpm软件包管理方法,应用于本地yum管理器,参见图1所示,包括:

s1:读取网络yum源的配置,获取其软件包地址和依赖关系数据库地址;

在读取网络yum源的配置时,本地yum管理器实际已经通过http服务与网络yum源连接,本实施例中rpm软件包管理方法可通过python等编程语言实现。

s2:通过所述依赖关系数据库地址,从所述网络yum源下载依赖关系数据库;

可以理解的是,下载内容可能为压缩格式,此时需要进一步解压缩,也即:通过所述依赖关系数据库地址,从所述网络yum源下载依赖关系数据库的压缩包,并将所述压缩包解压到预设目录。同理,本实施例中所有的下载过程都可包括格式解压、转换、保存至指定目录等数据操作,这些数据操作属于常规的数据处理动作,因此不再赘述。

通常情况下,所述依赖关系数据库具体为sqlite数据库。

s3:根据所述依赖关系数据库确定目标软件包;

进一步的,由于依赖关系数据库中数据量较大,直接查找较为困难,可以通过关键字检索等方法快速确定,具体的:

利用关键字查询命令,根据所述依赖关系数据库确定目标软件包。

同时还可采用模糊查找的算法来提高目标软件包的查找效率,也即:利用关键字查询命令,通过模糊查找算法,根据所述依赖关系数据库确定目标软件包。

s4:根据所述软件包地址从所述网络yum源下载所述目标软件包;

s5:读取所述目标软件包中的第一依赖文件,通过所述依赖关系数据库搜索与所述第一依赖文件对应的依赖包,从所述网络yum源下载所述依赖包。

可以理解的是,该步骤中通过目标软件包中的第一依赖文件和依赖关系数据库中的信息,进行反向查询得到对应第一依赖文件的依赖包。

进一步的,本实施例所述rpm软件包管理方法,还包括:

s6:循环执行以下动作:

根据所述依赖包中的第二依赖文件,并通过所述依赖关系数据库搜索与所述第二依赖文件对应的依赖包,从所述网络yum源下载该依赖包。

可以理解的是,步骤s6根据已下载的依赖包中第二依赖文件,查找到新的待下载依赖包,然后将待下载依赖包下载后再进行上述第二依赖文件的查找等工作,该动作循环执行,一直到已下载的依赖包中不再出现与待下载依赖包相关的第二依赖文件为止。

可以理解的是,目标软件包中的第一依赖文件、依赖包中的第二依赖文件均对应其本身与其他依赖包的依赖关系。

本申请实施例首先下载了依赖关系数据库,利用依赖关系数据库来完成所有目标软件包的确定、目标软件包的下载以及依赖关系对应的依赖包的下载,利用目标软件包内的依赖文件再下载依赖包,不用一次性下载所有目标软件包和依赖包,该过程的实施不要求操作系统必须为linux,也不限制cpu的类型,解决了rpm软件包下载安装受限的问题。

相应的,本发明实施例还公开了一种rpm软件包管理系统,参见图2所示,包括:

源配置模块01,用于读取网络yum源的配置,获取其软件包地址和依赖关系数据库地址;

第一下载模块02,用于通过所述依赖关系数据库地址,从所述网络yum源下载依赖关系数据库;

软件包确定模块03,用于根据所述依赖关系数据库确定目标软件包;

第二下载模块04,用于根据所述软件包地址从所述网络yum源下载所述目标软件包;

第三下载模块05,用于读取所述目标软件包中的第一依赖文件,通过所述依赖关系数据库搜索与所述第一依赖文件对应的依赖包,从所述网络yum源下载所述依赖包。

在一些具体的实施例中,所述rpm软件包管理系统还包括:

第四下载模块06,用于循环执行以下动作:

根据所述依赖包中的第二依赖文件,并通过所述依赖关系数据库搜索与所述第二依赖文件对应的依赖包,从所述网络yum源下载该依赖包。

在一些具体的实施例中,所述第一下载模块02具体用于:

通过所述依赖关系数据库地址,从所述网络yum源下载依赖关系数据库的压缩包,并将所述压缩包解压到预设目录。

在一些具体的实施例中,所述依赖关系数据库具体为sqlite数据库。

在一些具体的实施例中,所述第二下载模块04具体用于:

利用关键字查询命令,根据所述依赖关系数据库确定目标软件包。

在一些具体的实施例中,所述第二下载模块04具体用于:

利用关键字查询命令,通过模糊查找算法,根据所述依赖关系数据库确定目标软件包。

本申请实施例首先下载了依赖关系数据库,利用依赖关系数据库来完成所有目标软件包的确定、目标软件包的下载以及依赖关系对应的依赖包的下载,利用目标软件包内的依赖文件再下载依赖包,不用一次性下载所有目标软件包和依赖包,该过程的实施不要求操作系统必须为linux,也不限制cpu的类型,解决了rpm软件包下载安装受限的问题。

相应的,本发明还公开了一种rpm软件包管理装置,参见图3所示,包括处理器11和存储器12;其中,所述处理11执行所述存储器12中保存的计算机程序时实现以下步骤:

读取网络yum源的配置,获取其软件包地址和依赖关系数据库地址;

通过所述依赖关系数据库地址,从所述网络yum源下载依赖关系数据库;

根据所述依赖关系数据库确定目标软件包;

根据所述软件包地址从所述网络yum源下载所述目标软件包;

读取所述目标软件包中的第一依赖文件,通过所述依赖关系数据库搜索与所述第一依赖文件对应的依赖包,从所述网络yum源下载所述依赖包。

本申请实施例首先下载了依赖关系数据库,利用依赖关系数据库来完成所有目标软件包的确定、目标软件包的下载以及依赖关系对应的依赖包的下载,利用目标软件包内的依赖文件再下载依赖包,不用一次性下载所有目标软件包和依赖包,该过程的实施不要求操作系统必须为linux,也不限制cpu的类型,解决了rpm软件包下载安装受限的问题。

在一些具体的实施例中,所述处理器11执行所述存储器12中保存的计算机子程序时,具体可以实现以下步骤:

循环执行以下动作:

根据所述依赖包中的第二依赖文件,并通过所述依赖关系数据库搜索与所述第二依赖文件对应的依赖包,从所述网络yum源下载该依赖包。

在一些具体的实施例中,所述处理器11执行所述存储器12中保存的计算机子程序时,具体可以实现以下步骤:

通过所述依赖关系数据库地址,从所述网络yum源下载依赖关系数据库的压缩包,并将所述压缩包解压到预设目录。

在一些具体的实施例中,所述依赖关系数据库具体为sqlite数据库。

在一些具体的实施例中,所述处理器11执行所述存储器12中保存的计算机子程序时,具体可以实现以下步骤:

利用关键字查询命令,根据所述依赖关系数据库确定目标软件包。

在一些具体的实施例中,所述处理器11执行所述存储器12中保存的计算机子程序时,具体可以实现以下步骤:

利用关键字查询命令,通过模糊查找算法,根据所述依赖关系数据库确定目标软件包。

进一步的,本实施例中的rpm软件包管理装置,还可以包括:

输入接口13,用于获取外界导入的计算机程序,并将获取到的计算机程序保存至所述存储器12中,还可以用于获取外界终端设备传输的各种指令和参数,并传输至处理器11中,以便处理器11利用上述各种指令和参数展开相应的处理。本实施例中,所述输入接口13具体可以包括但不限于usb接口、串行接口、语音输入接口、指纹输入接口、硬盘读取接口等。

输出接口14,用于将处理器11产生的各种数据输出至与其相连的终端设备,以便于与输出接口14相连的其他终端设备能够获取到处理器11产生的各种数据。本实施例中,所述输出接口14具体可以包括但不限于usb接口、串行接口等。

通讯单元15,用于在rpm软件包管理装置和外部服务器之间建立远程通讯连接,以便于rpm软件包管理装置能够将镜像文件挂载到外部服务器中。本实施例中,通讯单元15具体可以包括但不限于基于无线通讯技术或有线通讯技术的远程通讯单元。

键盘16,用于获取用户通过实时敲击键帽而输入的各种参数数据或指令。

显示器17,用于rpm软件包管理过程的相关信息进行实时显示,以便于用户及时地了解当前rpm软件包管理情况。

鼠标18,可以用于协助用户输入数据并简化用户的操作。

进一步的,本申请实施例还公开了一种计算机可读存储介质,这里所说的计算机可读存储介质包括随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动硬盘、cd-rom或技术领域内所公知的任意其他形式的存储介质。计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

读取网络yum源的配置,获取其软件包地址和依赖关系数据库地址;

通过所述依赖关系数据库地址,从所述网络yum源下载依赖关系数据库;

根据所述依赖关系数据库确定目标软件包;

根据所述软件包地址从所述网络yum源下载所述目标软件包;

读取所述目标软件包中的第一依赖文件,通过所述依赖关系数据库搜索与所述第一依赖文件对应的依赖包,从所述网络yum源下载所述依赖包。

本申请实施例首先下载了依赖关系数据库,利用依赖关系数据库来完成所有目标软件包的确定、目标软件包的下载以及依赖关系对应的依赖包的下载,利用目标软件包内的依赖文件再下载依赖包,不用一次性下载所有目标软件包和依赖包,该过程的实施不要求操作系统必须为linux,也不限制cpu的类型,解决了rpm软件包下载安装受限的问题。

在一些具体的实施例中,所述处理器11执行所述存储器12中保存的计算机子程序时,具体可以实现以下步骤:

循环执行以下动作:

根据所述依赖包中的第二依赖文件,并通过所述依赖关系数据库搜索与所述第二依赖文件对应的依赖包,从所述网络yum源下载该依赖包。

在一些具体的实施例中,所述处理器11执行所述存储器12中保存的计算机子程序时,具体可以实现以下步骤:

通过所述依赖关系数据库地址,从所述网络yum源下载依赖关系数据库的压缩包,并将所述压缩包解压到预设目录。

在一些具体的实施例中,所述依赖关系数据库具体为sqlite数据库。

在一些具体的实施例中,所述处理器11执行所述存储器12中保存的计算机子程序时,具体可以实现以下步骤:

利用关键字查询命令,根据所述依赖关系数据库确定目标软件包。

在一些具体的实施例中,所述处理器11执行所述存储器12中保存的计算机子程序时,具体可以实现以下步骤:

利用关键字查询命令,通过模糊查找算法,根据所述依赖关系数据库确定目标软件包。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种rpm软件包管理方法、系统、装置及可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1