一种Linux操作系统软件包及其依赖关系缺失检测方法技术方案

技术编号:8366692 阅读:171 留言:0更新日期:2013-02-28 04:57
本发明专利技术公开了一种Linux操作系统软件包及其依赖关系缺失检测方法。该方法包括:基于参考操作系统构建参考依赖关系数据库;获取待检测操作系统的所有软件包的包名,得到软件包包名集合BL;根据参考依赖关系数据库检测软件包包名集合BL中每个软件包所依赖的软件包的包名,得到集合BL中各个软件包所依赖的软件包的包名的集合BR;取集合BR和聚合BL的并集,得到集合B?L1;将在所述集合BL1中存在而所述集合BL中不存在的元素对应的软件包确定为所述待检测操作系统缺失的软件包。该方法能够较全面检测出Linux操作系统是否满足依赖关系。

【技术实现步骤摘要】

本专利技术涉及操作系统的移植和软件包管理
,特别涉及。
技术介绍
为适用不同的芯片架构,Linux等操作系统需要相应地做不同软件包的调整。例如,难于直接将适用于Intel芯片X86架构的平台的Linux操作系统直接移植到基于龙芯芯片架构的平台上,而是要进行软件包内部及软件包之间的调整。换而言之,适用不同芯片平台的Linux操作系统之间的存在较多的潜在风险,主要原因是适用于不同芯片平台架构的操作系统之间存在较大差异,也就导致系统的软件包依赖出现差异。因此,在开发适用于新的芯片平台的操作系统时,往往要修改(例如注释掉)原操作系统的软件包依赖关系。然而,由于软件包之间的依赖关系错综复杂,操作系统开发人员为了成功编译软件包,往往会在移植操作系统的过程中把一些必要的软件包依赖关系注释掉,从而导致通过移植得到的操作系统存在较大潜在风险,带来了操作系统的很多不稳定因素。在实践中,操作系统开发人员难于确定被注释掉的软件包依赖关系是否是操作系统确实不需要的依赖关系,因此往往需要在注释的过程中不断地反复测试。例如,每注释掉一批依赖有关系便进行一些系统稳定性测试,这会占用操作系统研发人员的大量时间。因此,如何提高操作系统移植或发布过程中软件包依赖关系管理的效率是亟待解决的技术问题。此外,存在一些检测Linux等操作系统是否满足依赖关系的检测方法,这些方法一般用于发布Linux操作系统时进行依赖性检测。然而,这些方法只关注了对操作系统是否满足依赖关系的检测,往往忽视了在编译软件包的过程中被注释掉的依赖关系也可能给所研发的Linux操作系统带来长期潜在的不稳定风险。换而言之,现有技术中的检测难以全面检测出Linux操作系统是否满足依赖关系,尤其难以检测出因注释掉一些依赖关系而导致的依赖关系问题。
技术实现思路
本专利技术所要解决的技术问题之一是需要提供一种较全面检测出Linux操作系统是否满足依赖关系,尤其难以检测出因注释掉一些依赖关系而导致的依赖关系问题。为了解决上述技术问题,本专利技术提供了一种能够较全面检测出Linux操作系统是否满足依赖关系的Linux操作系统软件包及其依赖关系缺失检测方法。该方法包括基于参考操作系统构建参考依赖关系数据库;获取待检测操作系统的所有软件包的包名,得到软件包包名集合BL ;根据参考依赖关系数据库检测软件包包名集合BL中每个软件包所依赖的软件包的包名,得到集合BL中各个软件包所依赖的软件包的包名的集合BR ;取集合BR和聚合BL的并集,得到集合BLl ;将在所述集合BLl中存在而所述集合BL中不存在的元素对应的软件包确定为所述待检测操作系统缺失的软件包。进一步,该方法还包括基于所述参考依赖关系数据库查询所述待检测操作系统的集合BL中每个元素的依赖关系,得到集合BL中各个元素的依赖关系的集合RRS;将集合RRS中与所述待查询操作系统缺失的软件包中至少一个软件包有关的依赖关系确定为所述待检测操作系统缺失的软件包依赖关系。进一步,该方法还包括通过裁剪一个与所述待检测操作系统的架构不同的操作系统来构建所述参考操作系统,使得裁剪得到的所述参考操作系统与所述待检测操作系统的功能相一致。进一步,在所述基于参考操作系统构建参考依赖关系数据库的步骤包括将所述参考操作系统的所有软件包放入一目录,利用createrepo命令生成所述目录下的全部软 件包的依赖关系数据库,作为所述参考依赖关系数据库。进一步,所述根据参考依赖关系数据库查询软件包包名集合BL中每个软件包所依赖的软件包的包名的步骤中,可通过如下子步骤来查询作为软件包包名集合BL任意之一的软件包P所依赖的软件包的包名根据参考依赖关系数据库的packages表确定与软件包P对应的软件包唯一标识keyO ;基于参考依赖关系数据库的requires表,根据软件包标识keyO,确定与软件包P对应的软件包文件名的集合setR ;基于参考依赖关系数据库的provides和files表,确定提供集合setR中至少一个文件名的软件包的软件包唯一标识的集合setPey ;基于参考依赖关系数据库的packages表确定所述集合setPey中各软件包唯一标识对应的软件包名,作为软件包P所依赖的软件包的包名。此外,所述参考操作系统可为针对X86芯片结构平台的Linux操作系统,所述待检测操作系统为针对龙芯平台的Linux操作系统。与现有技术相比,根据本专利技术的一个或多个实施例的方法可以较好地避免因操作搭建过程中注释掉(或删除)一些依赖关系而导致操作系统可能存在潜在稳定性风险的问题。虽然在下文中将结合一些示例性实施及使用方法来描述本专利技术,但本领域技术人员应当理解,为并不旨在将本专利技术限制于这些实施例。反之,旨在覆盖包含在所附的权利要求书所定义的本专利技术的精神与范围内的所有替代品、修正及等效物。本专利技术的其他优点、目标,和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本专利技术的实践中得到教导。本专利技术的目标和其他优点可以通过下面的说明书,权利要求书,以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例共同用于解释本专利技术,并不构成对本专利技术的限制。在附图中图I是根据本专利技术实施例的操作系统软件包及其依赖关系缺失检测方法的流程图2是本专利技术实施例中根据参考依赖关系数据库查询集合BL中某一软件包包名为nameO的软件包P所依赖的软件包包名的流程图。具体实施例方式以下将结合附图及实施例来详细说明本专利技术的实施方式,借此对本专利技术如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本专利技术中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本专利技术的保护范围之内。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。下面参考图1,以要搭建一个基于龙芯芯片、稳定可靠的Linux操作系统为例,详 细说明根据本专利技术实施例的操作系统软件包及其依赖关系缺失检测方法。步骤S110,构建参考操作系统。可通过裁剪一个主流的例如X86等与待检测操作系统B的架构类似架构的Linux操作系统来构建一参考操作系统A,这样有助于得到更加稳定的参考操作系统。裁剪完毕后,还可测试其各方面性能,以确保该X86架构的参考Linux操作系统稳定可靠。优选地,使得裁剪得到的参考操作系统A与要搭建的适用于例如龙芯平台的待检测操作系统B的功能相一致,即尽可能相同或类似。需要说明的是,该步骤为可选步骤,也可以选用一个指定操作系统来作为参考操作系统。步骤S120,基于参考操作系统构建参考依赖关系数据库。获取参考操作系统A的所有软件包,并新建一个目录,将所有的软件包放入该新创建的目录,利用Iinux系统内置的createrepo命令生成该参考操作系统的全部软件包(即位于该新建目录下的全部软件包)的依赖关系数据库,作为参考依赖关系数据库。步骤S 130,获取待检测操作系统B的所有软件包的包名,得到软件包包名集合BL本文档来自技高网
...

【技术保护点】
一种Linux操作系统软件包及其依赖关系缺失检测方法,其特征在于,包括:基于参考操作系统构建参考依赖关系数据库;获取待检测操作系统的所有软件包的包名,得到软件包包名集合BL;根据参考依赖关系数据库检测软件包包名集合BL中每个软件包所依赖的软件包的包名,得到集合BL中各个软件包所依赖的软件包的包名的集合BR;取集合BR和集合BL的并集,得到集合BL1;将在所述集合BL1中存在而所述集合BL中不存在的元素对应的软件包确定为所述待检测操作系统缺失的软件包。

【技术特征摘要】

【专利技术属性】
技术研发人员:徐晶晶
申请(专利权)人:中标软件有限公司
类型:发明
国别省市:

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

1