一种定制镜像中软件包依赖的解决方法技术

技术编号:31755010 阅读:19 留言:0更新日期:2022-01-05 16:37
本发明专利技术公开了一种定制镜像中软件包依赖的解决方法,涉及计算机领域,方法包括:确定目标软件包的所有依赖软件包,作为第一软件包;在定制镜像过程中,遍历任一第一软件包;若从第一存储装置中查找到当前遍历的第一软件包的数据,则从第一存储装置中获取当前遍历的第一软件包的数据;若未从第一存储装置中查找到当前遍历的第一软件包的数据,则下载当前遍历的第一软件包由上述内容可知,本发明专利技术实现了在定制镜像过程中依赖原始操作系统已安装的软件包,遍历目标预装软件包所缺失的依赖,由于基于原始操作系统中已安装的软件包确定缺失依赖,从而能够在定制镜像过程中准确识别目标预装软件包所缺失的依赖。预装软件包所缺失的依赖。预装软件包所缺失的依赖。

【技术实现步骤摘要】
一种定制镜像中软件包依赖的解决方法
[0001]本申请是2021年8月16日提交的专利技术专利申请2021109342042的分案申请。


[0002]本专利技术涉及计算机领域,特别涉及一种定制镜像中软件包依赖的解决方法、计算设备及存储介质。

技术介绍

[0003]软件包是指具有特定的功能,用来完成特定任务的一个程序或一组程序。Li nux操作系统的软件包依赖关系复杂,例如,软件包A依赖于软件包B1、B2、B3等,而软件包B1又依赖于软件包C1、C2、C3等,也即,一个软件包和其依赖软件包实际上可以理解为一个多叉树形结构。
[0004]预装软件包,即在计算设备出厂时已安装的软件包。在定制镜像(即在原始操作系统之上复制一个操作系统)过程中,如果要将一个预装软件包定制到镜像操作系统中且能正常运行,需要在镜像操作系统中安装该预装软件包的所有依赖软件包。目前,主要通过分析工作计算设备(即定制镜像过程中所使用的计算设备)已下载的软件包,下载预装软件包所缺失的依赖软件包,但是,原始操作系统的软件包安装情况与工作计算设备的往往不同,容易造成缺少依赖软件包的情况。因此,通过上述方法定制镜像后,由于缺少依赖软件包,使得预装软件包无法正常运行。也即,通过已有的预装软件包的依赖软件包解决方法无法准确识别所缺失的依赖软件包,使得预装软件包无法在镜像操作系统上正常运行。

技术实现思路

[0005]为此,本专利技术提供一种定制镜像中软件包依赖的解决方法,以力图解决或者至少缓解上面存在的问题。
[0006]根据本专利技术的一个方面,提供了一种定制镜像中软件包依赖的解决方法,在计算设备中执行,计算设备与第一存储装置通信连接,其中,第一存储装置存储有定制镜像的原始操作系统上已安装的所有软件包的数据,所述方法包括:确定目标软件包的所有依赖软件包,作为第一软件包,其中,所述目标软件包为任一预装软件包;在定制镜像过程中,遍历任一第一软件包;若从第一存储装置中查找到当前遍历的所述第一软件包的数据,则从第一存储装置中获取当前遍历的第一软件包的数据;若未从第一存储装置中查找到当前遍历的第一软件包的数据,则下载当前遍历的第一软件包。
[0007]可选地,计算设备还与第二存储装置通信连接,所述方法还包括步骤:将已下载的第一软件包的数据存储至第二存储装置。
[0008]可选地,下载当前遍历的第一软件包的步骤包括:判断第二存储装置中是否存储有当前遍历的第一软件包的数据,若是,从第二存储装置中获取当前遍历的第一软件包的数据,若否,下载当前遍历的第一软件包。
[0009]可选地,还包括步骤:通过已获取的第一软件包的数据、或者已下载的第一软件包
的数据确定当前遍历的第一软件包的所有依赖软件包;遍历第一软件包的任一依赖软件包。
[0010]可选地,还包括步骤:获取原始操作系统的第一预定文件;从第一预定文件中读取原始操作系统上已安装的所有软件包的数据;将已读取的所有软件包的数据存储至第一存储装置。
[0011]可选地,通过深度优先算法遍历任一第一软件包。
[0012]可选地,第一存储装置存储的任一已安装软件包的数据包括:已安装软件包名称、已安装软件包版本号和依赖软件包信息,所述依赖软件包信息包括:依赖软件包的名称、版本号和版本号类型,以及备选依赖软件包的版本号、名称以及本版号类型。
[0013]可选地,第二存储装置存储的任一已下载软件包的数据包括:已下载软件包的名称、版本号、版本号类型和第二预定文件的路径,第二预定文件中包括已下载软件包的所有依赖的名称、版本号、版本号类型以及备选依赖软件包的名称、版本号和版本号类型。
[0014]可选地,任一第一软件包包括目标软件包的任一依赖软件包和任一依赖软件包的备选依赖软件包。
[0015]根据本专利技术的一个方面,提供了一种计算设备,包括:至少一个处理器;以及存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如上所述方法的指令。
[0016]根据本专利技术的一个方面,提供了一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如上所述的方法。
[0017]根据本专利技术的技术方案,提供了一种定制镜像中软件包依赖的解决方法,该方法首先确定目标软件包的所有依赖,在定制镜像过程中,遍历任一依赖,并判断是否从第一存储装置(包括原始操作系统已安装的软件包的数据)中查找到当前遍历的依赖的数据,若是,从第一存储装置中获取当前遍历依赖的数据,若未从第一存储装置中查找到当前遍历的依赖的数据,下载当前遍历的依赖,将已下载依赖的数据存储至第二存储装置。
[0018]由上述内容可知,本专利技术实现了在定制镜像过程中依赖原始操作系统已安装的软件包,遍历目标预装软件包所缺失的依赖,由于基于原始操作系统中已安装的软件包确定缺失依赖,从而能够在定制镜像过程中准确识别目标预装软件包所缺失的依赖,提高缺失依赖的识别准确性。
[0019]另外,本专利技术中还会存储已下载的依赖,只有未存储时才会下载缺失依赖,从而避免重复下载,提高软件包依赖的解决速度,也可避免资源浪费,提高资源利用率。
[0020]上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。
附图说明
[0021]为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的
部件或元素。
[0022]图1示出了根据本专利技术一个实施例的软件包依赖的树形结构的示意图;
[0023]图2示出了根据本专利技术一个实施例的定制镜像中软件包依赖的解决系统100的示意图;
[0024]图3示出了根据本专利技术一个实施例的计算设备200的示意图;以及
[0025]图4示出了根据本专利技术一个实施例的定制镜像中软件包依赖的解决方法300的流程图。
具体实施方式
[0026]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0027]Li nux操作系统中,软件包依赖关系复杂,例如,软件包A依赖于软件包B1、B2、B3等,而软件包B1又依赖于软件包C1、C2、C3等,也即,一个软件包和其依赖软件包实际上可以理解为一个多叉树形结构,如图1所示,图1示出了根据本专利技术一个实施例的软件包依赖的树形结构的示意图。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种定制镜像中软件包依赖的解决方法,在计算设备中执行,所述计算设备与第一存储装置和第二存储装置通信连接,其中,所述第一存储装置存储有定制镜像的原始操作系统上已安装的所有软件包的数据,所述第一存储装置存储的已安装软件包的数据包括:已安装软件包名称、已安装软件包版本号和依赖软件包信息,所述方法包括:确定目标软件包的所有依赖软件包,作为第一软件包,其中,所述目标软件包为任一预装软件包;在定制镜像过程中,遍历任一所述第一软件包;若从所述第一存储装置中查找到当前遍历的所述第一软件包的数据,则从所述第一存储装置中获取当前遍历的所述第一软件包的数据;若未从所述第一存储装置中查找到当前遍历的所述第一软件包的数据,则下载当前遍历的所述第一软件包;将已下载的所述第一软件包的数据存储至所述第二存储装置。2.如权利要求1所述的方法,其中,所述下载当前遍历的所述第一软件包的步骤包括:判断所述第二存储装置中是否存储有当前遍历的所述第一软件包的数据,若是,从所述第二存储装置中获取当前遍历的所述第一软件包的数据,若否,下载当前遍历的所述第一软件包。3.如权利要求2所述的方法,还包括步骤:通过已获取的所述第一软件包的数据、或者已下载的所述第一软件包的数据确定当前遍历的所述第一软件包的所有依赖软件包;遍历所述第一软件包的任一依赖软件包。4.如权利...

【专利技术属性】
技术研发人员:石培程向璐金奇才
申请(专利权)人:统信软件技术有限公司
类型:发明
国别省市:

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

1