红帽源码包管理srpm包的处理方法及装置的制造方法

文档序号:9579087阅读:503来源:国知局
红帽源码包管理srpm包的处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术,尤其涉及一种红帽源码包管理SRPM包的处理方法及装置。
【背景技术】
[0002]Fedora是一个知名的Linux发行版,是一款由全球社区爱好者构建的面向日常应用的快速、稳定、强大的操作系统。它允许任何人自由地使用、修改和重发布。
[0003]Fedora操作系统由数量庞大的红帽源码包管理(Source RedHat PackageManager,简称SRPM)包组成,这些SRPM包之间存在着依赖关系,即某一 SRPM包需要在另一个或另一些SRPM包编译完成之后才能编译。目前能运行的体系结构包括x86(即i386_i686)、进阶精简指令集机器(Advanced RISC Machine,简称 ARM)、PowerPC 等。然而,在无内部互锁流水级(Microprocessor Without Interlocked Piped Stages,简称 MIPS)平台上编译Fedora发行版时,会出现由于SRPM包的依赖不完全,导致无法编译Fedora软件包的问题,从而无法完成Fedora发行版在MIPS平台的自动化编译。

【发明内容】

[0004]本发明提供一种红帽源码包管理SRPM包的处理方法及装置,用以解决现有技术在MIPS平台上编译Fedora发行版时,无法编译Fedora软件包的问题。
[0005]本发明的第一方面,提供一种SRPM包的处理方法,包括:
[0006]获取第一 SRPM包,所述第一 SRPM包为Fedora发行版的SRPM包集合中的SRPM包;
[0007]通过红帽包管理RPM命令计算所述第一 SRPM包的编译依赖信息,所述编译依赖信息包括与所述第一 SRPM包存在编译依赖关系的第一 RPM包的信息;
[0008]根据数据库中RPM包与SRPM包之间的依赖关系信息,计算得到与所述第一 RPM包存在依赖关系的第二 SRPM包;
[0009]判断所述第二 SRPM包是否已存在于所述Fedora发行版的SRPM包集合中,如否,则将所述第二 SRPM包下载至所述Fedora发行版的SRPM包集合中,以形成所述Fedora发行版的编译集合。
[0010]本发明的第二方面,提供一种红帽源码包管理SRPM包的处理装置,包括:
[0011]获取模块,用于获取第一 SRPM包,所述第一 SRPM包为Fedora发行版的SRPM包集合中的SRPM包;
[0012]第一计算模块,用于通过红帽包管理RPM命令计算所述获取模块获取的第一 SRPM包的编译依赖信息,所述编译依赖信息包括与所述第一 SRPM包存在编译依赖关系的第一RPM包的信息;
[0013]第二计算模块,用于根据数据库中RPM包与SRPM包之间的依赖关系信息,计算得到与所述获取模块获取的第一 RPM包存在依赖关系的第二 SRPM包;
[0014]判断模块,用于判断所述第二计算模块计算的第二 SRPM包是否已存在于所述Fedora发行版的SRPM包集合中,如否,则将所述第二 SRPM包下载至所述Fedora发行版的SRPM包集合中,以形成所述Fedora发行版的编译集合。
[0015]本发明实施例的SRPM包的处理方法,包括:获取第一 SRPM包,第一 SRPM包为Fedora发行版的SRPM包集合中的SRPM包;通过红帽包管理RPM命令计算第一 SRPM包的编译依赖信息,编译依赖信息包括与第一 SRPM包存在编译依赖关系的第一 RPM包的信息;根据数据库中RPM包与SRPM包之间的依赖关系信息,计算得到与第一 RPM包存在依赖关系的第二 SRPM包;判断第二 SRPM包是否已存在于Fedora发行版的SRPM包集合中,如否,则将第二 SRPM包下载至Fedora发行版的SRPM包集合中,以形成Fedora发行版的编译集合。采用本发明实施例提供的技术方案,可以在MIPS平台上编译Fedora发行版时解决由于依赖不完全而无法编译的问题,从而可以在MIPS平台上实现Fedora发行版的自动化编译。
【附图说明】
[0016]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0017]图1为本发明实施例一提供的一种SRPM包的处理方法的流程图;
[0018]图2为本发明实施例二提供的一种SRPM包的处理方法的流程图;
[0019]图3为本发明实施例三提供的一种SRPM包的处理装置的结构示意图;
[0020]图4为本发明实施例四提供的一种SRPM包的处理装置的结构示意图。
【具体实施方式】
[0021]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022]本发明实施例提供的SRPM包的处理方法及装置,适用于在需要运行Fedora发行版的体系结构上,尤其适用于尚未实现Fedora软件包自动批量编译的体系结构上,例如MIPS平台。
[0023]Fedora发行版由数量庞大的软件包组成,这些软件的开发者或维护者来自世界各地,而软件包存在着依赖关系,软件的开发者需要订阅它依赖的软件包的相关邮件,掌握其动态,如果它依赖的软件包升级了,且升级对自己的软件的软件包有影响,就会跟着升级。鉴于此,Fedora社区工作者需要协同对软件包进行不断的编译不断的升级,产生对应的发行版。
[0024]Koji是Fedora社区的编译系统,它使用mock创建编译软件包时所需要的编译环境。它可以自动化管理编译任务,开发者只需要提交SRPM包,就可以自动将任务分发给编译机,能够管理批量任务,管理多台编译机,以及多台不同架构的编译机。并提供一个简单的web界面,能够查询package, build,可以查看进行中的编译任务状态及日志,取消或重新提交编译任务,启用或停用编译机,设置编译机的负载,能够简单的统计分类信息。
[0025]Fedora所有的软件包数量巨大,约有9000多个,但是Fedora发行版只包含其中一部分,约1700多个软件包。制作Fedora发行版的时候,不用编译所有Fedora的软件包,仅仅需要编译该发行版对应的1700多个SRPM包。由于这些源码包存在依赖关系,编译的时候需要按一定顺序进行编译,通过编写一个依赖分析程序来处理。由于Fedora发行版中仅仅包含部分Fedora的源码包,这些源码包的依赖可能不在Fedora发行版所包含的源码包中,而无法提交任务给ko j i,导致不能自动完成编译。
[0026]本发明实施例以MIPS平台为例,并使用koji编译Fedora发行版的软件包,通过对Fedora发行版的SRPM包的处理,解决SRPM包的依赖问题,使得Fedora发行版能够在MIPS平台运行。
[0027]图1为本发明实施例一提供的一种SRPM包的处理方法的流程图。如图1所示,该方法包括以下步骤:
[0028]步骤S100、获取第一 SRPM包,第一 SRPM包为Fedora发行版的SRPM包集合中的SRPM 包。
[0029]步骤S101、通过RPM命令计算第一 SRPM包的编译依赖信息,编译依赖信息包括与第一 SRPM包存在编译依赖关系的第一 RPM包的信息。
[0030]步骤S102、根据数据库中RPM包与SRPM包之间的依赖关系信息,计算得到与第一RPM包存在依赖关系的第二 SRPM包。
[0031]步骤S103、判断第二 SRPM包是否已存在于Fedora发行版的SRPM包集合中,如否,则将第二 SRPM包下载至Fedora发行版的SRPM包集合中,以形成Fedora发行版的编译集入口 ο
[0032]在实际中,上述各步骤的执行主体可以为处理器,该处理器的架构为MIPS架构。具体在实现时,既可以用软件方式实现,也可以用硬件方式实现,还可以通过软硬件结合的方式实现。
[0033]具体的,首先获取第一 SRPM包。该第一 SRPM包为Fedora发行版的SRPM包集合中的SRPM包,即Fedora发行版的尚未被分析依赖性,即尚未计算其依赖包的软件包。不同Fedora发行版的SRPM包集合中包含的SRPM包不尽相同,在实现时,通常可以采用Fedora发行版列表的形式来表示Fedora发行版的SRPM包集合。相应地,在实际中,可以从Fedora发行版列表中获取第一 SRPM包。
[0034]由于SRPM包之间存在依赖性,因此,在获取第一 SRPM包之后,可以通过Linux中的基本命令RPM命令计算第一 SRPM包的编译依赖信息。该编译依赖信息包括与第一 SRPM包存在编译依赖关系的第一 RPM包的信息,其表示第一 SRPM包依赖的软件包的信息,具体可以为该第一 SRPM包依赖的包信息或库信息。
[0035]在计算出编译依赖信息之后,可以根据数据库中RPM包与SRPM包之间的依赖关系信息,计算得到与第一 RPM包存在依赖关系的第二 SRPM包。该第二 SRPM包为第一 SRPM包依赖的软件包。
[0036]上述数据库是根据所有Fedora的RPM包及SRPM包的依赖关系建立的数据库,上
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1