CN105446757B - 一种数据包的处理方法和设备 - Google Patents

一种数据包的处理方法和设备 Download PDF

Info

Publication number
CN105446757B
CN105446757B CN201410416118.2A CN201410416118A CN105446757B CN 105446757 B CN105446757 B CN 105446757B CN 201410416118 A CN201410416118 A CN 201410416118A CN 105446757 B CN105446757 B CN 105446757B
Authority
CN
China
Prior art keywords
data packet
installation kit
version number
dependence
conflict
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
Application number
CN201410416118.2A
Other languages
English (en)
Other versions
CN105446757A (zh
Inventor
王艳
王立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Tmall Technology Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410416118.2A priority Critical patent/CN105446757B/zh
Publication of CN105446757A publication Critical patent/CN105446757A/zh
Application granted granted Critical
Publication of CN105446757B publication Critical patent/CN105446757B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种数据包的处理方法和设备,包括:提取安装包内记录的至少一个数据包、数据包的版本号以及数据包依赖的其他数据包的版本号;根据提取得到的所述至少一个所述数据包的版本号、数据包依赖的其他数据包的版本号以及安装包依赖的数据包的版本号,确定安装包与至少一个数据包以及不同数据包之间的依赖关系;利用依赖关系,查找出安装包中记录的数据包是否存在依赖冲突,以便安装包在被打包时选择不具有依赖冲突的数据包,一方面,有效避免了由于安装包中记录的数据包之间存在依赖冲突致使安装包打包错误;另一方面,能够对安装包记录的数据包与其依赖的其他数据包之间的依赖关系进行识别,提升了安装包打包的精确度。

Description

一种数据包的处理方法和设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据包的处理方法和设备。
背景技术
随着计算机技术的发展,大量软件随之出现。同一个软件的安装包也随着科技的发展出现了不同版本。例如:计算机的操作系统,出现了window XP系统、Window 7系统以及Window 8系统。
一个软件在运行时需要其他软件作技术支撑,那么该软件与支撑其技术的软件之间构建依赖关系,也就意味着,该软件的安装包在打包时需要包含支撑其技术的软件的数据包。
但是,目前,软件安装包在打包时,其需要技术支撑的数据包不止一个,但是这不止一个的技术支撑的数据包之间也存在依赖关系,那么软件安装包在被安装时就会因为数据包与数据包之间、以及数据包与安装包之间存在的依赖关系出现依赖冲突的情形,导致软件安装失败。
发明内容
有鉴于此,本申请实施例提供了一种数据包的处理方法和设备,用于解决目前存在的软件安装包内部数据包与数据包、以及数据包与安装包之间发生依赖冲突导致软件安装失败的问题。
一种数据包的处理方法,包括:
提取安装包内记录的至少一个数据包、所述数据包的版本号以及所述数据包依赖的其他数据包的版本号;
根据提取得到的所述至少一个所述数据包的版本号、所述数据包依赖的其他数据包的版本号以及所述安装包依赖的数据包的版本号,确定所述安装包与所述至少一个数据包以及不同数据包之间的依赖关系;
利用所述依赖关系,查找出所述安装包中记录的数据包是否存在依赖冲突,以便所述安装包在被打包时选择不具有依赖冲突的数据包。
所述根据提取得到的所述至少一个数据包的依赖版本号、所述数据包依赖的其他数据包的版本号以及所述安装包依赖的数据包的版本号,确定所述安装包与所述至少一个数据包以及不同数据包之间的依赖关系,包括:
当提取得到的所述数据包的个数为一个时,判断所述数据包的版本号与所述安装包依赖的数据包的版本号信息之间的逻辑关系是否存在相悖;
若所述数据包的版本号与所述安装包依赖的数据包的版本号之间的逻辑关系相悖时,确定所述数据包与所述安装包之间依赖冲突;
若所述数据包的版本号与所述安装包依赖的数据包的版本号之间的逻辑关系不相悖时,确定所述数据包与所述安装包之间不存在依赖冲突。
所述根据提取得到的所述至少一个数据包的依赖版本号、所述数据包依赖的其他数据包的版本号以及所述安装包依赖的数据包的版本号,确定所述安装包与所述至少一个数据包以及不同数据包之间的依赖关系,包括:
当提取得到的所述数据包的个数为至少两个时,根据提取得到的至少两个数据包的版本号、每一个所述数据包依赖的其他数据包的版本号以及所述安装包依赖的数据包的版本号,建立包含了所述安装包以及所述至少两个数据包之间的关系图;
若建立的包含了所述安装包以及所述至少两个数据包之间的关系图构成环形图时,确定所述安装包与所述环形图中包含的所述至少两个数据包之间依赖冲突;
若建立的包含了所述安装包以及所述至少两个数据包之间的关系图不构成环形图时,确定所述安装包与所述环形图中包含的所述至少两个数据包之间不存在依赖冲突。
所述根据提取得到的至少两个数据包的版本号、每一个所述数据包依赖的其他数据包的版本号以及所述安装包依赖的数据包的版本号,建立包含了所述安装包以及所述至少两个数据包之间的关系图,包括:
以安装包为父节点,根据所述安装包依赖的数据包的版本号,将数据包的版本号符合所述安装包依赖的数据包的版本号的数据包作为父节点的子节点;
针对得到的每一个子节点,根据该子节点的数据包依赖的其他数据包的版本号,将其他数据包中符合该子节点的数据包依赖的其他数据包的版本号的数据包作为该子节点的下一级子节点,依次往下,建立包含了所述安装包以及所述至少两个数据包之间的父子节点图。
所述利用所述依赖关系,查找出所述安装包中记录的数据包是否存在依赖冲突,包括:
当确定的所述依赖关系为依赖冲突时,确定所述安装包中记录的数据包存在依赖冲突;
当确定的所述依赖关系为不存在依赖冲突时,确定所述安装包中记录的数据包不存在依赖冲突。
所述方法还包括:
在确定所述安装包中记录的数据包不存在依赖冲突时,从所述安装包中记录的数据包中选择一个版本号与所述安装包的版本号较接近的数据包作为所述安装包的依赖数据包,以使得所述安装包在打包时利用选择的数据包。
一种数据包的处理设备,包括:
提取模块,用于提取安装包内记录的至少一个数据包、所述数据包的版本号以及所述数据包依赖的其他数据包的版本号;
关系确定模块,用于根据提取得到的所述至少一个所述数据包的版本号、所述数据包依赖的其他数据包的版本号以及所述安装包依赖的数据包的版本号,确定所述安装包与所述至少一个数据包以及不同数据包之间的依赖关系;
处理模块,用于利用所述依赖关系,查找出所述安装包中记录的数据包是否存在依赖冲突,以便所述安装包在被打包时选择不具有依赖冲突的数据包。
所述关系确定模块,具体用于当提取得到的所述数据包的个数为一个时,判断所述数据包的版本号与所述安装包依赖的数据包的版本号信息之间的逻辑关系是否存在相悖;
若所述数据包的版本号与所述安装包依赖的数据包的版本号之间的逻辑关系相悖时,确定所述数据包与所述安装包之间依赖冲突;
若所述数据包的版本号与所述安装包依赖的数据包的版本号之间的逻辑关系不相悖时,确定所述数据包与所述安装包之间不存在依赖冲突。
所述关系确定模块,具体用于当提取得到的所述数据包的个数为至少两个时,根据提取得到的至少两个数据包的版本号、每一个所述数据包依赖的其他数据包的版本号以及所述安装包依赖的数据包的版本号,建立包含了所述安装包以及所述至少两个数据包之间的关系图;
若建立的包含了所述安装包以及所述至少两个数据包之间的关系图构成环形图时,确定所述安装包与所述环形图中包含的所述至少两个数据包之间依赖冲突;
若建立的包含了所述安装包以及所述至少两个数据包之间的关系图不构成环形图时,确定所述安装包与所述环形图中包含的所述至少两个数据包之间不存在依赖冲突。
所述关系确定模块,具体用于以安装包为父节点,根据所述安装包依赖的数据包的版本号,将数据包的版本号符合所述安装包依赖的数据包的版本号的数据包作为父节点的子节点;
针对得到的每一个子节点,根据该子节点的数据包依赖的其他数据包的版本号,将其他数据包中符合该子节点的数据包依赖的其他数据包的版本号的数据包作为该子节点的下一级子节点,依次往下,建立包含了所述安装包以及所述至少两个数据包之间的父子节点图。
所述处理模块,具体用于当确定的所述依赖关系为依赖冲突时,确定所述安装包中记录的数据包存在依赖冲突;
当确定的所述依赖关系为不存在依赖冲突时,确定所述安装包中记录的数据包不存在依赖冲突。
所述设备还包括:
数据包选择模块,用于在确定所述安装包中记录的数据包不存在依赖冲突时,从所述安装包中记录的数据包中选择一个版本号与所述安装包的版本号较接近的数据包作为所述安装包的依赖数据包,以使得所述安装包在打包时利用选择的数据包。
本申请有益效果如下:
本申请实施例提取安装包内记录的至少一个数据包、数据包的版本号以及数据包依赖的其他数据包的版本号;根据提取得到的所述至少一个所述数据包的版本号、数据包依赖的其他数据包的版本号以及安装包依赖的数据包的版本号,确定安装包与至少一个数据包以及不同数据包之间的依赖关系;利用依赖关系,查找出安装包中记录的数据包是否存在依赖冲突,以便安装包在被打包时选择不具有依赖冲突的数据包,一方面,有效避免了由于安装包中记录的数据包之间存在依赖冲突致使安装包打包错误;另一方面,能够对安装包记录的数据包与其依赖的其他数据包之间的依赖关系进行识别,为后续为安装包选择适合的数据包奠定基础,提升了安装包打包的精确度,有效改善了软件安装的成功率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的一种数据包的处理方法的流程示意图;
图2为建立得到包含了所述安装包以及所述至少两个数据包之间的关系图;
图3为本申请实施例二提供的一种数据包的处理方法的流程示意图;
图4为本申请实施例三提供的一种数据包的处理设备的结构示意图。
具体实施方式
为了本申请的目的,本申请实施例提供了一种数据包的处理方法和设备,通过提取安装包内记录的至少一个数据包、数据包的版本号以及数据包依赖的其他数据包的版本号;根据提取得到的所述至少一个所述数据包的版本号、数据包依赖的其他数据包的版本号以及安装包依赖的数据包的版本号,确定安装包与至少一个数据包以及不同数据包之间的依赖关系;利用依赖关系,查找出安装包中记录的数据包是否存在依赖冲突,以便安装包在被打包时选择不具有依赖冲突的数据包,一方面,有效避免了由于安装包中记录的数据包之间存在依赖冲突致使安装包打包错误;另一方面,能够对安装包记录的数据包与其依赖的其他数据包之间的依赖关系进行识别,为后续为安装包选择适合的数据包奠定基础,提升了安装包打包的精确度,有效改善了软件安装的成功率。
需要说明的是,本申请实施例中涉及到的数据包、依赖数据包、安装包三者之间的关系为:
一个安装包内包含了多个数据包,这些数据包可以成为该安装包的依赖数据包,也就是说安装包由包含的多个数据包组成;
一个数据包内包含有应用程序,一个应用程序的开发可以以其他应用程序为基础进行开发,那么就可以说该应用程序依赖被作为基础开发的应用程序,这样若应用程序1的开发需要以应用程序2为基础,那么应用程序1所在的数据包1与应用程序2所在的数据包2之间的关系为:数据包1依赖数据包2,即数据包1为依赖者,数据包2为被依赖者依赖的数据包。
依赖数据包也可以被称为被依赖者依赖的数据包。
下面结合说明书附图对本申请各个实施例进行详细描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
实施例一:
如图1所示,为本申请实施例一提供的一种数据包的处理方法的流程示意图。所述方法可以如下所述。
步骤101:提取安装包内记录的至少一个数据包、所述数据包的版本号以及所述数据包依赖的其他数据包的版本号。
在步骤101中,在安装包打包之前,需要对安装包内记录的数据包进行扫描,并利用本申请实施例的方式确定记录的数据包是否存在依赖冲突。
具体地,从安装包spec文件中获取记录的至少一个数据包、所述数据包的版本号以及所述数据包依赖的其他数据包的版本号。
在安装包的版本号确认之后,根据安装包的版本号确定安装包依赖的数据包的版本号。
如表1所示,为从安装包spec文件中获取记录的至少一个数据包、所述数据包的版本号以及所述数据包依赖的其他数据包的版本号的结构示意表:
表1
从表1中可以看出,在安装包的spec文件中记录了多个数据包,数据包与数据包之间具备依赖关系,即具备依赖关系的两个数据包,可以是针对同一个应用程序开发的不同版本的数据包,也可以是针对不同应用程序开发的数据包。
对于安装包依赖的数据包,可以依赖该数据包的不同版本,但是可以限制依赖该数据包的最低版本,和/或依赖该数据包的最高版本。
例如:对于软件A的安装包a,其版本号为1.0.15,对于版本号为1.0.15的安装包a依赖的数据包包含了数据包1,那么可以限定版本号为1.0.15的安装包a依赖数据包1的最低版本的版本号为1.0,依赖数据包1的最高版本的版本号为3.0,也就意味着版本号为1.0.15的安装包a依赖数据包1的版本号为1.0~3.0。
步骤102:根据提取得到的所述至少一个所述数据包的版本号、所述数据包依赖的其他数据包的版本号以及所述安装包依赖的数据包的版本号,确定所述安装包与所述至少一个数据包以及不同数据包之间的依赖关系。
在步骤102中,由于对于一个软件的安装包,可以依赖一个数据包,也可以依赖多个数据包,那么就决定了安装包与依赖的数据包、以及安装包依赖的数据包与自己依赖的其他数据包之间的依赖关系。
其中,依赖关系包含了依赖冲突和不存在依赖冲突。依赖冲突是指安装包内记录的数据包的版本号与该数据包依赖的其他数据包的版本号之间存在逻辑冲突。
例如:版本号为1.0的数据包1依赖数据包5,要求依赖的数据包5的版本号为1.0,版本号为1.0的数据包2也依赖数据包5,但要求依赖的数据包5的版本号为0.9,由此可见,若数据包1、数据包2和数据包5同时存在于一个安装包中,从数据包5作为被依赖者依赖的数据包的角度,数据包1与数据包2之间存在依赖冲突。
具体地,根据提取得到的所述至少一个所述数据包的版本号、所述数据包依赖的其他数据包的版本号以及所述安装包依赖的数据包的版本号,确定所述安装包与所述至少一个数据包以及不同数据包之间的依赖关系的方式包括但不限于以下几种:
第一种方式:
当提取得到的所述数据包的个数为一个时,判断所述数据包的版本号与所述安装包依赖的数据包的版本号信息之间的逻辑关系是否存在相悖;
若所述数据包的版本号与所述安装包依赖的数据包的版本号之间的逻辑关系相悖时,确定所述数据包与所述安装包之间依赖冲突;
若所述数据包的版本号与所述安装包依赖的数据包的版本号之间的逻辑关系不相悖时,确定所述数据包与所述安装包之间不存在依赖冲突。
例如:安装包依赖的数据包1的版本号要求大于版本1.1,假设安装包内记录的数据包1的版本号为0.9,那么此时安装包与记录的数据包1之间的依赖关系为依赖冲突;
安装包依赖的数据包1的版本号为大于版本1.1,假设安装包内记录的数据包1的版本号为1.2,那么此时安装包与记录的数据包1之间的依赖关系为不存在依赖冲突。
第二种方式:
当提取得到的所述数据包的个数为至少两个时,根据提取得到的至少两个数据包的版本号、每一个所述数据包依赖的其他数据包的版本号以及所述安装包依赖的数据包的版本号,建立包含了所述安装包以及所述至少两个数据包之间的关系图。
具体地,以安装包为父节点,根据所述安装包依赖的数据包的版本号,将数据包的版本号符合所述安装包依赖的数据包的版本号的数据包作为父节点的子节点;
针对得到的每一个子节点,根据该子节点的数据包依赖的其他数据包的版本号,将其他数据包中符合该子节点的数据包依赖的其他数据包的版本号的数据包作为该子节点的下一级子节点,依次往下,建立包含了所述安装包以及所述至少两个数据包之间的父子节点图。
具体地,当步骤101中提取到的所述数据包的个数为至少两个时,假设提取到的所述数据包的个数为三个,分别是:数据包2,版本号为1.0的数据包1依赖数据包2,其对应的版本号1.0;数据包3,版本号为1.0的数据包2依赖数据包3,其对应的版本号1.5;数据包4,版本号为1.0的数据包3依赖数据包4,其对应的版本号1.0。而数据包4,版本号为1.0的数据包4依赖数据包1,其对应的版本号1.0。
此时,以安装包为父节点,安装包依赖的数据包为子节点,数据包的版本号为安装包到数据包的权重,那么建立得到包含了所述安装包以及所述至少两个数据包之间的父子节点图,如图2所示。
从图2中可以看出,安装包包含了三个子节点,安装包到三个子节点的权重分别为1.0、1.5和1.0。
若建立的包含了所述安装包以及所述至少两个数据包之间的关系图构成环形图时,确定所述安装包与所述环形图中包含的所述至少两个数据包之间依赖冲突。
仍以图2为例,安装包与数据包2、数据包3和数据包4之间形成环形图,由此说明安装包与数据包2、数据包3和数据包4之间存在依赖冲突。
若建立的包含了所述安装包以及所述至少两个数据包之间的关系图不构成环形图时,确定所述安装包与所述环形图中包含的所述至少两个数据包之间不存在依赖冲突。
仍以图2为例,假设数据包4,版本号为1.0的数据包4依赖数据包5,其对应的版本号1.0,那么安装包与数据包2、数据包3、数据包4、数据包5之间尚未形成环形图,由此说明安装包与数据包2、数据包3、数据包4、数据包5之间不存在依赖冲突。
步骤103:利用所述依赖关系,查找出所述安装包中记录的数据包是否存在依赖冲突,以便所述安装包在被打包时选择不具有依赖冲突的数据包。
在步骤103中,当确定的所述依赖关系为依赖冲突时,确定所述安装包中包含了存在依赖冲突的数据包;当确定的所述依赖关系为不存在依赖冲突时,确定所述安装包中未包含存在依赖冲突的数据包。
在本申请的另一个实施例中,所述方法还包括:
在确定所述安装包中记录的数据包不存在依赖冲突时,从所述安装包中记录的数据包中选择一个版本号与所述安装包的版本号较接近的数据包作为所述安装包的依赖数据包,以使得所述安装包在打包时利用选择的数据包。
在确定所述安装包中包含存在依赖冲突的数据包时,在安装包准备打包时,首先排除存在依赖冲突的数据包。
通过本申请实施例一所述的方案,提取安装包内记录的至少一个数据包、数据包的版本号以及数据包依赖的其他数据包的版本号;根据提取得到的所述至少一个所述数据包的版本号、数据包依赖的其他数据包的版本号以及安装包依赖的数据包的版本号,确定安装包与至少一个数据包以及不同数据包之间的依赖关系;利用依赖关系,查找出安装包中记录的数据包是否存在依赖冲突,以便安装包在被打包时选择不具有依赖冲突的数据包,一方面,有效避免了由于安装包中记录的数据包之间存在依赖冲突致使安装包打包错误;另一方面,能够对安装包记录的数据包与其依赖的其他数据包之间的依赖关系进行识别,为后续为安装包选择适合的数据包奠定基础,提升了安装包打包的精确度,有效改善了软件安装的成功率。
实施例二:
如图3所示,为本申请实施例二提供的一种数据包的处理方法的流程示意图。本申请实施例二是在本申请实施例一的基础上,对本申请实施例一的各个步骤的详细描述,所述方法可以如下所述。
步骤301:确定待打包的安装包,并确定该安装包的版本号。
在步骤301中,以该安装包为根节点,建立树形结构图。
步骤302:扫描该安装包,判断该安装包中是否存在依赖的数据包,若存在,则执行步骤303;否则,按照该安装包的版本号进行打包处理。
步骤303:针对安装包内包含的每一个数据包,分别执行以下操作,直至安装包内记录的数据包全部被扫描到:
步骤3031:提取安装包内记录的一个数据包以及所述数据包的版本号。
在步骤3031中,在安装包打包之前,需要对安装包内记录的数据包进行扫描,并利用本申请实施例的方式确定扫描到的数据包与安装包或者其依赖的数据包之间是否存在依赖冲突。
具体地,从安装包spec文件中获取记录的数据包以及数据包的版本号。
步骤3032:以安装包为根节点、提取到的该数据包为子节点,建立安装包与提取到的该数据包之间的关系图。
其中,关系图中指向关系为从安装包指向该数据包。
步骤3033:扫描已建立的关系图中是否包含了环形图,若包含了,执行步骤3034;否则,跳转执行步骤3035。
步骤3034:确定所述安装包与构成该环形图的数据包之间存在依赖冲突,结束操作。
在步骤3034中,若发现存在依赖冲突,发出存在依赖冲突的提示信息,并记录存在依赖冲突的数据包的标识以及版本号,停止其他数据包的扫描。
步骤3035:判断已建立的关系图中安装包指向的数据包的个数是否为一个,若是,则执行步骤3036;否则,执行步骤3037。
步骤3036:确定所述安装包与未构成该环形图的数据包之间不存在依赖冲突,跳转执行步骤3031。
步骤3037:判断安装包指向的数据包是否为同一个数据包,若否,则执行步骤3036;若是,则执行步骤3038。
步骤3038:判断所述安装包指向的多个数据包的版本号之间的逻辑关系是否存在相悖,若相悖,则确定所述安装包与所述数据包之间依赖冲突,结束操作;若不相悖,则确定所述安装包与所述数据包之间不存在依赖冲突,跳转执行步骤3031。
实施例三:
如图4所示,为本申请实施例三提供的一种数据包的处理设备的结构示意图。本申请实施例三提供的处理设备具备了本申请实施例一至本申请实施例二提供的功能,所述处理设备包括:提取模块41、关系确定模块42和处理模块43,其中:
提取模块41,用于提取安装包内记录的至少一个数据包、所述数据包的版本号以及所述数据包依赖的其他数据包的版本号;
关系确定模块42,用于根据提取得到的所述至少一个所述数据包的版本号、所述数据包依赖的其他数据包的版本号以及所述安装包依赖的数据包的版本号,确定所述安装包与所述至少一个数据包以及不同数据包之间的依赖关系;
处理模块43,用于利用所述依赖关系,查找出所述安装包中记录的数据包是否存在依赖冲突,以便所述安装包在被打包时选择不具有依赖冲突的数据包。
具体地,所述关系确定模块42,具体用于当提取得到的所述数据包的个数为一个时,判断所述数据包的版本号与所述安装包依赖的数据包的版本号信息之间的逻辑关系是否存在相悖;
若所述数据包的版本号与所述安装包依赖的数据包的版本号之间的逻辑关系相悖时,确定所述数据包与所述安装包之间依赖冲突;
若所述数据包的版本号与所述安装包依赖的数据包的版本号之间的逻辑关系不相悖时,确定所述数据包与所述安装包之间不存在依赖冲突。
具体地,所述关系确定模块42,具体用于当提取得到的所述数据包的个数为至少两个时,根据提取得到的至少两个数据包的版本号、每一个所述数据包依赖的其他数据包的版本号以及所述安装包依赖的数据包的版本号,建立包含了所述安装包以及所述至少两个数据包之间的关系图;
若建立的包含了所述安装包以及所述至少两个数据包之间的关系图构成环形图时,确定所述安装包与所述环形图中包含的所述至少两个数据包之间依赖冲突;
若建立的包含了所述安装包以及所述至少两个数据包之间的关系图不构成环形图时,确定所述安装包与所述环形图中包含的所述至少两个数据包之间不存在依赖冲突。
所述关系确定模块42,具体用于以安装包为父节点,根据所述安装包依赖的数据包的版本号,将数据包的版本号符合所述安装包依赖的数据包的版本号的数据包作为父节点的子节点;
针对得到的每一个子节点,根据该子节点的数据包依赖的其他数据包的版本号,将其他数据包中符合该子节点的数据包依赖的其他数据包的版本号的数据包作为该子节点的下一级子节点,依次往下,建立包含了所述安装包以及所述至少两个数据包之间的父子节点图。
所述处理模块43,具体用于当确定的所述依赖关系为依赖冲突时,确定所述安装包中记录的数据包存在依赖冲突;
当确定的所述依赖关系为不存在依赖冲突时,确定所述安装包中记录的数据包不存在依赖冲突。
所述设备还包括:数据包选择模块44,其中:
数据包选择模块44,用于在确定所述安装包中记录的数据包不存在依赖冲突时,从所述安装包中记录的数据包中选择一个版本号与所述安装包的版本号较接近的数据包作为所述安装包的依赖数据包,以使得所述安装包在打包时利用选择的数据包。
需要说明的是,本申请实施例提供的处理设备可以通过硬件方式实现,也可以通过软件方式实现,这里不做限定。
本领域的技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种数据包的处理方法,其特征在于,包括:
提取安装包内记录的至少一个数据包、所述数据包的版本号以及所述数据包依赖的其他数据包的版本号;
根据所述安装包依赖的数据包的版本号、提取得到的所述至少一个数据包的版本号以及所述数据包依赖的其他数据包的版本号,确定所述安装包与所述至少一个数据包以及确定不同数据包之间的依赖关系;
利用所述依赖关系,查找出所述安装包中记录的数据包是否存在依赖冲突,以便所述安装包在被打包时选择不具有依赖冲突的数据包;
其中,所述根据所述安装包依赖的数据包的版本号、提取得到的所述至少一个数据包的版本号以及所述数据包依赖的其他数据包的版本号,确定所述安装包与所述至少一个数据包以及确定不同数据包之间的依赖关系,包括:
当提取得到的所述数据包的个数为一个时,判断所述数据包的版本号与所述安装包依赖的数据包的版本号信息之间的逻辑关系是否存在相悖;
若所述数据包的版本号与所述安装包依赖的数据包的版本号之间的逻辑关系相悖时,确定所述数据包与所述安装包之间依赖冲突;
若所述数据包的版本号与所述安装包依赖的数据包的版本号之间的逻辑关系不相悖时,确定所述数据包与所述安装包之间不存在依赖冲突。
2.如权利要求1所述的方法,其特征在于,所述根据所述安装包依赖的数据包的版本号、提取得到的所述至少一个数据包的版本号以及所述数据包依赖的其他数据包的版本号,确定所述安装包与所述至少一个数据包以及确定不同数据包之间的依赖关系,包括:
当提取得到的所述数据包的个数为至少两个时,根据所述安装包依赖的数据包的版本号、提取得到的至少两个数据包的版本号以及每一个所述数据包依赖的其他数据包的版本号,建立包含了所述安装包以及所述至少两个数据包之间的关系图;
若建立的包含了所述安装包以及所述至少两个数据包之间的关系图构成环形图时,确定所述安装包与所述环形图中包含的所述至少两个数据包之间依赖冲突;
若建立的包含了所述安装包以及所述至少两个数据包之间的关系图不构成环形图时,确定所述安装包与所述环形图中包含的所述至少两个数据包之间不存在依赖冲突。
3.如权利要求2所述的方法,其特征在于,所述根据所述安装包依赖的数据包的版本号、提取得到的至少两个数据包的版本号以及每一个所述数据包依赖的其他数据包的版本号,建立包含了所述安装包以及所述至少两个数据包之间的关系图,包括:
以安装包为父节点,根据所述安装包依赖的数据包的版本号,将数据包的版本号符合所述安装包依赖的数据包的版本号的数据包作为父节点的子节点;
针对得到的每一个子节点,根据该子节点的数据包依赖的其他数据包的版本号,将其他数据包中符合该子节点的数据包依赖的其他数据包的版本号的数据包作为该子节点的下一级子节点,依次往下,建立包含了所述安装包以及所述至少两个数据包之间的父子节点图。
4.如权利要求1或2或3所述的方法,其特征在于,所述利用所述依赖关系,查找出所述安装包中记录的数据包是否存在依赖冲突,包括:
当确定的所述依赖关系为依赖冲突时,确定所述安装包中记录的数据包存在依赖冲突;
当确定的所述依赖关系为不存在依赖冲突时,确定所述安装包中记录的数据包不存在依赖冲突。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
在确定所述安装包中记录的数据包不存在依赖冲突时,从所述安装包中记录的数据包中选择一个版本号与所述安装包的版本号较接近的数据包作为所述安装包的依赖数据包,以使得所述安装包在打包时利用选择的数据包。
6.一种数据包的处理设备,其特征在于,包括:
提取模块,用于提取安装包内记录的至少一个数据包、所述数据包的版本号以及所述数据包依赖的其他数据包的版本号;
关系确定模块,用于根据所述安装包依赖的数据包的版本号、提取得到的所述至少一个数据包的版本号以及所述数据包依赖的其他数据包的版本号,确定所述安装包与所述至少一个数据包以及确定不同数据包之间的依赖关系;
处理模块,用于利用所述依赖关系,查找出所述安装包中记录的数据包是否存在依赖冲突,以便所述安装包在被打包时选择不具有依赖冲突的数据包;
其中,所述关系确定模块,具体用于当提取得到的所述数据包的个数为一个时,判断所述数据包的版本号与所述安装包依赖的数据包的版本号信息之间的逻辑关系是否存在相悖;
若所述数据包的版本号与所述安装包依赖的数据包的版本号之间的逻辑关系相悖时,确定所述数据包与所述安装包之间依赖冲突;
若所述数据包的版本号与所述安装包依赖的数据包的版本号之间的逻辑关系不相悖时,确定所述数据包与所述安装包之间不存在依赖冲突。
7.如权利要求6所述的处理设备,其特征在于,
所述关系确定模块,具体用于当提取得到的所述数据包的个数为至少两个时,根据所述安装包依赖的数据包的版本号、提取得到的至少两个数据包的版本号以及每一个所述数据包依赖的其他数据包的版本号,建立包含了所述安装包以及所述至少两个数据包之间的关系图;
若建立的包含了所述安装包以及所述至少两个数据包之间的关系图构成环形图时,确定所述安装包与所述环形图中包含的所述至少两个数据包之间依赖冲突;
若建立的包含了所述安装包以及所述至少两个数据包之间的关系图不构成环形图时,确定所述安装包与所述环形图中包含的所述至少两个数据包之间不存在依赖冲突。
8.如权利要求7所述的处理设备,其特征在于,
所述关系确定模块,具体用于以安装包为父节点,根据所述安装包依赖的数据包的版本号,将数据包的版本号符合所述安装包依赖的数据包的版本号的数据包作为父节点的子节点;
针对得到的每一个子节点,根据该子节点的数据包依赖的其他数据包的版本号,将其他数据包中符合该子节点的数据包依赖的其他数据包的版本号的数据包作为该子节点的下一级子节点,依次往下,建立包含了所述安装包以及所述至少两个数据包之间的父子节点图。
9.如权利要求6或7或8所述的处理设备,其特征在于,
所述处理模块,具体用于当确定的所述依赖关系为依赖冲突时,确定所述安装包中记录的数据包存在依赖冲突;
当确定的所述依赖关系为不存在依赖冲突时,确定所述安装包中记录的数据包不存在依赖冲突。
10.如权利要求9所述的处理设备,其特征在于,所述设备还包括:
数据包选择模块,用于在确定所述安装包中记录的数据包不存在依赖冲突时,从所述安装包中记录的数据包中选择一个版本号与所述安装包的版本号较接近的数据包作为所述安装包的依赖数据包,以使的得所述安装包在打包时利用选择的数据包。
CN201410416118.2A 2014-08-21 2014-08-21 一种数据包的处理方法和设备 Active CN105446757B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410416118.2A CN105446757B (zh) 2014-08-21 2014-08-21 一种数据包的处理方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410416118.2A CN105446757B (zh) 2014-08-21 2014-08-21 一种数据包的处理方法和设备

Publications (2)

Publication Number Publication Date
CN105446757A CN105446757A (zh) 2016-03-30
CN105446757B true CN105446757B (zh) 2019-09-17

Family

ID=55557002

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410416118.2A Active CN105446757B (zh) 2014-08-21 2014-08-21 一种数据包的处理方法和设备

Country Status (1)

Country Link
CN (1) CN105446757B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108334334B (zh) * 2018-03-07 2022-02-01 政采云有限公司 一种管理依赖包版本的方法和系统
CN110825377A (zh) * 2018-08-07 2020-02-21 北京国双科技有限公司 一种依赖冲突分析方法及装置
CN109271197A (zh) * 2018-08-17 2019-01-25 北京奇虎科技有限公司 一种用于检测数据包冲突的方法、装置及计算机设备
CN110648125B (zh) * 2019-09-10 2022-08-02 杭州秘猿科技有限公司 一种打包交易方法、装置、电子设备及存储介质
CN111580834B (zh) * 2020-04-10 2021-10-29 北京城市网邻信息技术有限公司 一种应用安装包的生成方法和装置
CN112181858B (zh) * 2020-11-09 2021-12-31 东北大学 Java软件项目依赖冲突语义一致性的自动化检测方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0802480A1 (en) * 1996-04-19 1997-10-22 Sun Microsystems, Inc. Multiple-package installation with package dependencies
CN102073582A (zh) * 2010-07-30 2011-05-25 兰雨晴 基于冲突的软件包依赖关系检查方法
CN102073583A (zh) * 2010-07-30 2011-05-25 兰雨晴 基于依赖的软件包依赖关系检查方法
CN102109991A (zh) * 2010-07-30 2011-06-29 兰雨晴 软件包依赖关系建模方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7568195B2 (en) * 2003-12-16 2009-07-28 Microsoft Corporation Determining a maximal set of dependent software updates valid for installation
US8074214B2 (en) * 2005-05-19 2011-12-06 Oracle International Corporation System for creating a customized software installation on demand
FI20055429L (fi) * 2005-08-08 2007-02-09 Rainer Wehkamp Hilalaskentaverkon hallinta
US20070101197A1 (en) * 2005-11-03 2007-05-03 International Business Machines Corporation System and method for representing system capabilities as software packages in a software package management system
CN100501673C (zh) * 2006-12-31 2009-06-17 成都迈普产业集团有限公司 一种安装软件安装包的方法
US8185889B2 (en) * 2007-06-19 2012-05-22 Red Hat, Inc. Methods and systems for porting software packages from one format to another
US8707293B2 (en) * 2010-03-03 2014-04-22 Red Hat, Inc. Package management system
CN102880466B (zh) * 2012-09-04 2016-03-16 中标软件有限公司 一种Linux操作系统软件包依赖关系检测方法
CN102902770B (zh) * 2012-09-26 2015-04-15 东软集团股份有限公司 一种镜像文件拼装方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0802480A1 (en) * 1996-04-19 1997-10-22 Sun Microsystems, Inc. Multiple-package installation with package dependencies
CN102073582A (zh) * 2010-07-30 2011-05-25 兰雨晴 基于冲突的软件包依赖关系检查方法
CN102073583A (zh) * 2010-07-30 2011-05-25 兰雨晴 基于依赖的软件包依赖关系检查方法
CN102109991A (zh) * 2010-07-30 2011-06-29 兰雨晴 软件包依赖关系建模方法

Also Published As

Publication number Publication date
CN105446757A (zh) 2016-03-30

Similar Documents

Publication Publication Date Title
CN105446757B (zh) 一种数据包的处理方法和设备
CN105786808B (zh) 一种用于分布式执行关系型计算指令的方法与设备
US20150199512A1 (en) Apparatus and method for detecting abnormal behavior
CN105653630B (zh) 分布式数据库的数据迁移方法与装置
WO2017165018A1 (en) Automated event id field analysis on heterogeneous logs
CN106469103B (zh) 硬盘的维护方法和装置
US9317518B2 (en) Data synchronization
CN106407768B (zh) 一种设备指纹的确定、对目标设备进行识别的方法和设备
CN106326363B (zh) 一种基于正则表达式的匹配方法及装置
JP2005293578A5 (zh)
CN106095413B (zh) 一种蓝牙驱动程序的配置方法及装置
CN103778050B (zh) 一种数据库服务器高可用性能检测系统
CN103049516B (zh) 一种数据处理方法及装置
CN106506302B (zh) 支持动态modbus协议映射的通信装置
JP2016004576A (ja) Guiに基づくアプリケーションのモデルを検証する方法及びコンピュータ可読記憶媒体
CN110287696A (zh) 一种反弹shell进程的检测方法、装置和设备
CN106293744B (zh) 一种应用版本动态切换方法及装置
KR20170128431A (ko) 사용자 디바이스 식별을 위한 방법 및 시스템
CN106789837B (zh) 网络异常行为检测方法及检测装置
CN106372977B (zh) 一种虚拟账户的处理方法和设备
CN106326928A (zh) 一种目标识别方法及设备
CN112560114A (zh) 调用智能合约的方法及装置
CN110019205A (zh) 一种数据存储、还原方法、装置及计算机设备
CN106528422B (zh) 一种检测Java程序页面扰动的方法和装置
CN110019234A (zh) 用于分片存储数据的方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211111

Address after: Room 507, floor 5, building 3, No. 969, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province

Patentee after: Zhejiang tmall Technology Co., Ltd

Address before: P.O. Box 847, 4th floor, capital building, Grand Cayman, British Cayman Islands

Patentee before: Alibaba Group Holdings Limited