CN117311698B - 软件包发布方法、软件包下载方法、终端设备及存储介质 - Google Patents

软件包发布方法、软件包下载方法、终端设备及存储介质 Download PDF

Info

Publication number
CN117311698B
CN117311698B CN202311025570.1A CN202311025570A CN117311698B CN 117311698 B CN117311698 B CN 117311698B CN 202311025570 A CN202311025570 A CN 202311025570A CN 117311698 B CN117311698 B CN 117311698B
Authority
CN
China
Prior art keywords
software package
information
package
attribute information
software
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
CN202311025570.1A
Other languages
English (en)
Other versions
CN117311698A (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.)
Guangzhou Zhiyuan Electronics Co Ltd
Original Assignee
Guangzhou Zhiyuan Electronics Co 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 Guangzhou Zhiyuan Electronics Co Ltd filed Critical Guangzhou Zhiyuan Electronics Co Ltd
Priority to CN202311025570.1A priority Critical patent/CN117311698B/zh
Publication of CN117311698A publication Critical patent/CN117311698A/zh
Application granted granted Critical
Publication of CN117311698B publication Critical patent/CN117311698B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种软件包发布方法、软件包下载方法、终端设备及存储介质。本发明实施例在生成软件包的过程中,通过获取软件包的属性信息,并根据属性信息生成具有预设属性描述规则的软件包,从而将软件包进行标准化,建立通用的包管理机制,使得开发人员可以更加方便地查找和使用各种工具和系统,避免了重复造轮子,提高了代码的可重用性,另外也实现了各种工具和系统之间的互操作性和兼容性,使得开发人员可以更加方便地进行组合和集成,简化了开发流程,提高了软件的开发效率。

Description

软件包发布方法、软件包下载方法、终端设备及存储介质
技术领域
本申请实施例涉及软件开发领域,尤其涉及一种软件包发布方法、软件包下载方法、终端设备及存储介质。
背景技术
目前,在嵌入式软件开发过程中,虽然已经有了各种工具来帮助开发人员完成开发任务,但是由于不同厂商和芯片供应商所提供的工具和系统种类繁多,导致开发人员需要花费大量时间和精力去学习和适配各种工具和系统,并且对于同一种类型的工具或者系统,可能存在多种不同版本和配置,进一步增加了开发的难度。为了解决这些问题,现有的技术通常采用“集成”或“封装”的方式来简化开发流程。然而,在封装和集成的方式中,不同类型的软件包之间往往缺乏统一的标准和规范,导致不同厂商提供的开发套件之间不兼容,代码组织和管理困难,影响了软件的开发效率。
综上所述,现有技术中采用“集成”或“封装”的方式来管理软件包的方式,存在着软件开发效率低下的技术问题。
发明内容
本发明实施例提供了一种软件包发布方法、软件包下载方法、终端设备及存储介质,本发明实施例能够在软件的开发过程中对软件包进行统一管理,提高了软件的开发效率,解决了现有技术中采用“集成”或“封装”的方式来管理软件包的方式,存在着软件开发效率低下的技术问题。
第一方面,本发明实施例提供了一种软件包发布方法,包括:
响应于软件包创建指令,获取第一软件包的属性信息,根据所述属性信息生成具有预设属性描述规则的第一软件包,所述预设属性描述规则用于描述所述第一软件包的属性信息,所述属性信息包括所述第一软件包的至少一个属性;
响应于软件包发布指令,将所述第一软件包发送至包管理服务器中,以使所述包管理服务器注册所述第一软件包,将所述第一软件包的属性信息转化为索引信息,根据所述索引信息更新软件包索引清单,并将所述第一软件包上传至存储模块中进行储存。
第二方面,本发明实施例提供了一种软件包下载方法,包括:
响应于软件包下载指令,确定所述软件包下载指令中所携带的第一属性信息,向包管理服务器发送包索引获取请求;
接收所述包管理服务器反馈的软件包索引清单,将所述软件包索引清单中的索引信息转化为第二属性信息;
根据所述第一属性信息和第二属性信息确定出第二软件包,从所述包管理服务器中下载所述第二软件包。
第三方面,本发明实施例提供了一种软件包发布装置,包括:
软件包创建模块,用于响应于软件包创建指令,获取第一软件包的属性信息,根据所述属性信息生成具有预设属性描述规则的第一软件包,所述预设属性描述规则用于描述所述第一软件包的属性信息,所述属性信息包括所述第一软件包的至少一个属性;
软件包发布模块,用于响应于软件包发布指令,将所述第一软件包发送至包管理服务器中,以使所述包管理服务器注册所述第一软件包,将所述第一软件包的属性信息转化为索引信息,根据所述索引信息更新软件包索引清单,并将所述第一软件包上传至存储模块中进行储存。
第四方面,本发明实施例提供了一种软件包下载装置,包括:
请求发送模块,用于响应于软件包下载指令,确定所述软件包下载指令中所携带的第一属性信息,向包管理服务器发送包索引获取请求;
清单转化模块,用于接收所述包管理服务器反馈的软件包索引清单,将所述软件包索引清单中的索引信息转化为第二属性信息;
下载模块,用于根据所述第一属性信息和第二属性信息在所述软件包索引清单中确定出第二软件包,从所述包管理服务器中下载所述第二软件包。
第五方面,本发明实施例提供了一种终端设备,所述终端设备包括处理器以及存储器;
所述存储器用于存储计算机程序,并将所述计算机程序传输给所述处理器;
所述处理器用于根据所述计算机程序中的指令执行如第一方面所述的一种软件包发布方法或如第二方面所述的一种软件包下载方法。
第六方面,本发明实施例提供了一种存储计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的一种软件包发布方法或如第二方面所述的一种软件包下载方法。
上述,本发明实施例在生成软件包的过程中,通过获取软件包的属性信息,并根据属性信息生成具有预设属性描述规则的软件包,从而将软件包进行标准化,建立通用的包管理机制,使得开发人员可以更加方便地查找和使用各种工具和系统,避免了重复造轮子,提高了代码的可重用性,另外也实现了各种工具和系统之间的互操作性和兼容性,使得开发人员可以更加方便地进行组合和集成,简化了开发流程,提高了软件的开发效率。
附图说明
图1为本发明实施例提供的一种软件包发布方法的方法流程图。
图2为本发明实施例提供的一种终端设备和包管理服务器的结构示意图。
图3为本发明实施例提供的一种软件包的结构示意图。
图4为本发明实施例提供的一种预设属性描述规则的结构示意图。
图5为本发明实施例提供的对category字段进行定义以区分不同类型的软件包的示意图。
图6为本发明实施例提供的特殊类型的软件包的定义方式示意图。
图7为本发明实施例提供的一种拓展软件包的示意图。
图8为本发明实施例提供的一种软件包下载方法的流程示意图。
图9为本发明实施例提供的一种下载软件包的流程示意图。
图10为本发明实施例提供的一种ApplicationPackageManager(应用包管理器)类和FrameworkPackageManager(框架包管理器)类的定义示意图。
图11为本发明实施例提供的一种创建指定类型的包管理器的示意图。
图12为本发明实施例提供的一种确定出第四软件包的流程示意图。
图13为本发明实施例提供的一种删除第三软件包的流程示意图。
图14为本发明实施例提供的一种生成冻结文件的流程示意图。
图15为本发明实施例提供的一种软件包发布装置的结构示意图。
图16为本发明实施例提供的一种软件包下载装置的结构示意图。
图17为本发明实施例提供的一种终端设备的结构示意图。
具体实施方式
以下描述和附图充分地示出本申请的具体实施方案,以使本领域的技术人员能够实践它们。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本申请的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,各实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。本文中,诸如第一和第二等之类的关系术语仅仅用于将一个实体或者操作与另一个实体或操作区分开来,而不要求或者暗示这些实体或操作之间存在任何实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。本文中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的结构、产品等而言,由于其与实施例公开的部分相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
现有技术在软件开发的过程中,为了解决同一种类型的工具或者系统存在多种不同版本和配置的技术问题,通常采用“集成”或“封装”的方式来简化开发流程。比如,可以将各种工具或者系统打包成一个完整的开发套件供开发人员使用,或者提供一些高度封装的API(应用程序接口,Application Programming Interface)或SDK(软件开发工具包,Software Development Kit),使得开发人员能够方便地使用其中的功能。然而在“集成”或“封装”的方式中,由于不同类型的工具或者系统之间往往缺乏统一的标准和规范,导致不同厂商提供的开发套件相互之间不兼容,开发人员仍旧需要花费大量时间和精力去适配各种工具和系统,软件的开发效率低下。
为了解决上述技术问题,本发明实施例提供了一种软件包发布方法,如图1所示,图1为本发明实施例提供的一种软件包发布方法的流程图。本发明实施例提供的软件包发布方法可以由终端设备执行,该终端设备可以通过软件和/或硬件的方式实现,该终端设备可以是两个或多个物理实体构成,也可以由一个物理实体构成。例如终端设备可以是电脑、上位机或者平板电脑等设备。方法包括以下步骤:
步骤101、响应于软件包创建指令,获取第一软件包的属性信息,根据属性信息生成具有预设属性描述规则的第一软件包,预设属性描述规则用于描述第一软件包的属性信息,属性信息包括第一软件包的至少一个属性。
在本实施例中,当用户需要创建第一软件包时,用户可以向终端设备发送软件包创建指令,软件包创建指令中携带有第一软件包的属性信息,属性信息中包括有第一软件包的至少一个属性,例如属性信息包括第一软件包的名称、类型、版本、所支持的操作系统以及状态等。终端设备在接收到软件包创建指令后,则从软件包创建指令中解析出第一软件包的属性信息,之后根据第一软件包的属性信息,生成具有预设属性描述规则的第一软件包。其中预设属性描述规则用于描述第一软件包的属性信息,预设属性描述规则可由用户预先进行设置,预设属性描述规则是一种通用的描述规则,用户在终端设备上所创建的所有软件包均具有预设属性描述规则,预设属性描述规则能够兼容不同类型的软件包,例如预设属性描述规则中均采用同一字段来描述不同软件包的同一属性。终端设备可以根据预设属性描述规则,对所有的软件包进行组织和管理。
步骤102、响应于软件包发布指令,将第一软件包发送至包管理服务器中,以使包管理服务器注册第一软件包,将第一软件包的属性信息转化为索引信息,根据索引信息更新软件包索引清单,并将第一软件包上传至存储模块中进行储存。
在创建了第一软件包后,用户可以进一步将第一软件包进行发布。具体的,用户可以向终端设备发送软件包发布指令,终端设备在接收到软件包发布指令后,将第一软件包上传至包管理服务器中。包管理服务器在接收到第一软件包后,会注册第一软件包,并将第一软件包的属性信息转化为索引信息,索引信息用于查找对应的软件包。之后包管理服务器根据索引信息对自身的软件包索引清单进行更新后,将第一软件包上传至存储模块中进行储存。如果第一软件包已经注册,则包管理服务器会返回错误提示。
一个实施例中,终端设备上设置有AXIO-CLI,AXIO-CLI是一种命令行构建工具,支持各种类型制品的构建、测试和发布。包管理服务器为AXPI服务器,AXPI服务器中设置有AXPI,AXPI用于软件包的统一管理和分发,所有开发/维护活动产生的软件包都会被推送到AXPI中。另外,AXPI服务器中的存储模块包括有对象存储服务器和Share2(文件服务器),软件包可以存储在对象存储服务器或者是Share2中,具体结构如图2所示。AXIO-CLI可将构建的软件包上传至AXPI,同时也可从AXPI上安装包到本地,软件包的索引在AXPI中保存,软件包的数据文件上传至对象存储服务器或Share2文件服务器中进行保存。
在上述实施例的基础上,第一软件包包括清单文件、版本变更历史文件、忽略文件以及数据文件,清单文件包括有第一软件包通过预设属性描述规则描述的属性信息。
一个实施例中,第一软件包包括清单文件、版本变更历史文件、忽略文件以及数据文件,清单文件包括有第一软件包通过预设属性描述规则描述的属性信息,清单文件可以是JSON格式的文件。版本变更历史文件用于描述版本的变更历史,忽略文件用于忽略特定的文件、目录或文件类型,数据文件包括有第一软件包的数据内容。示例性的,第一软件包的结构如图3所示,其中manifest为清单文件,CHANGLOG.rst为版本变更历史文件,一般情况下,软件包(package)可能存在多个版本,需要通过CHANGELOG描述每次版本的变更,以便后续进行漏洞反馈。CHANGELOG的分类如下:New features:新功能;Improve features:改进的功能;Bugfixes:修复问题;Incompatible:某些破坏性修改导致的不兼容,如接口名称、参数类型改变。gitignore是GIT的忽略文件,在使用GIT提交仓库的时候,会忽略这些文件,保证仓库的干净。
另外,第一软件包的属性信息包括软件包的标识信息、类型信息、名称信息、描述信息、版本号信息、版本信息、变种信息、状态信息、许可信息、周期信息、系统信息、依赖信息以及发布类型信息。一个实施例中,预设属性描述规则描述属性信息的结构PackageBase如图4所示,预设属性描述规则对各个属性信息的定义方式如表1所示:
表1
属性信息中name和category共同作为软件包的唯一ID,其中category是唯一的,category可根据软件包的实际情况确定,对于同一类型的软件包,使用同一套描述规则,category的类型包括:Component:嵌入式软件组件包,例如:CJSON、AWTK。Package:通用包,管理编译工具、安装包。AxBuiler:构建器包,用于存放构建器。Doc:文档包,主要管理HTML、PDF文档;Solution:解决方案,管理SDK包。Toolchain:工具链,管理工具链命令,通过对category字段进行定义可区分不同类型的软件包,如图5所示。
另外,还有4种类型特殊的软件包,继承自Component,包括:
Framework:框架包,一般将复杂的、大型的、可供用户使用的软件称为框架,例如AWorks等。
Platform:平台包,平台表示了软件运行的一种环境,例如:通用桌面平台和嵌入式平台(例如:AWorksLP先楫HPM平台等)。
Board:板级包,“板级”表示了一类具体的硬件板,与实际的硬件电路、IO设计有关。
Application:应用程序包,主要管理嵌入式平台的“烧写”固件或者通用桌面平台的可执行文件。
以上四种软件包的定义方式如图6所示。
在另一个实施例中,用户还可以进一步根据实际需求扩展任意软件包,创建一个ExtensionPackage(扩展包)并继承PackageBase,在ExtensionPackage中设置category并添加其他所需要的属性信息,如图7所示。
上述,本发明实施例在生成软件包的过程中,通过获取软件包的属性信息,并根据属性信息生成具有预设属性描述规则的软件包,从而将软件包进行标准化,建立通用的包管理机制,使得开发人员可以更加方便地查找和使用各种工具和系统,避免了重复造轮子,提高了代码的可重用性,另外也实现了各种工具和系统之间的互操作性和兼容性,使得开发人员可以更加方便地进行组合和集成,简化了开发流程,提高了软件的开发效率。
如图8所示,图8为本发明实施例提供的一种软件包下载方法的流程示意图,本发明实施例提供的软件包下载方法可以由终端设备执行,该终端设备可以通过软件和/或硬件的方式实现,该终端设备可以是两个或多个物理实体构成,也可以由一个物理实体构成。例如终端设备可以是电脑、上位机或者平板电脑等设备。方法包括以下步骤:
步骤201、响应于软件包下载指令,确定软件包下载指令中所携带的第一属性信息,向包管理服务器发送包索引获取请求。
在本实施例中,当用户需要从包管理服务器中下载软件包时,可以向终端设备发送软件包下载指令,软件包下载指令中携带有第一属性信息,例如第一属性信息可以是软件包的标识信息、版本信息、周期信息以及状态信息等。终端设备在接收到软件包下载指令后,则解析出软件包下载指令中所携带的第一属性信息,同时向包管理服务器发送包索引获取请求,其中包索引获取请求用于从包管理服务器中软件包索引清单。
步骤202、接收包管理服务器反馈的软件包索引清单,将软件包索引清单中的索引信息转化为第二属性信息。
终端设备在接收到包管理服务器反馈的软件包索引清单后,会将软件包索引清档中的索引信息转化为第二属性信息,从而得到包管理服务器中已经注册的所有软件包的属性信息,即所有软件包的manifest。
步骤203、根据第一属性信息和第二属性信息确定出第二软件包,从包管理服务器中下载第二软件包。
在得到第二属性信息后,则终端设备可以根据第一属性信息,在所有软件包的manifest中,匹配出与第一属性信息相对应的第二软件包,并从包管理服务器中下载第二软件包,具体过程如图9所示。
在上述实施例的基础上,还包括:
步骤204、响应于包安装指令,确定包安装指令中所携带的第四属性信息,确定与第四属性信息相匹配的第四软件包。
用户在从包管理服务器中下载了软件包后,还可以进一步将下载的软件包进行安装。具体的,用户可以向终端设备发送包安装指令,包安装指令中携带有所需要安装的软件包的第四属性信息。终端设备在接收到包安装指令后,即可从包安装指令中解析出第四属性信息,并在本地的软件包中匹配出与第四属性信息相对应的第四软件包。
一个实施例中,终端设备内还包括有包管理器,其中包管理器用于对所有类型的软件包进行管,包管理器中将软件包的公共的管理方法以及属性抽象出来,命名为PackageManagerBase(包管理基类),软件包的管理方法包括:get_package_object、install、dump_package_requirements、get_installed、match_requirements、sort_manifests_by_edition以及normalize_dependencies。其中get_package_object用于获取软件包,install用于安装软件包,dump_package_requirements用于导出软件包的详细信息,get_installed用于获取本地已经安装的软件包,match_requirements用于判断软件包的属性信息是否满足预设条件。sort_manifests_by_edition用于对软件包按照edition进行排序,按照字母顺序进行升序排序;normalize_dependencies用于对软件包的dependencies进行规范化处理。
以“应用”类型和“框架”类型为例,分别创建ApplicationPackageManager(应用包管理器)类和FrameworkPackageManager(框架包管理器)类,上述两个管理器都继承自PackageManagerBase(包管理基类),并将“category”属性分别设置为application和framework,可根据实际需求重载或增加方法和属性,结构示意图如图10所示。另外图10中6个前缀为“is”的方法均被match_requirements方法调用,is compatible system(manifest,match args):boolean;is compatible axio engine(manifest,match args):boolean;is equal edition(manifest,match args):boolean;is equal variant(manifest,match args):boolean;is compatibledistype(manifest,match args):boolean;is compatible version(manifest,match args):boolean这六个方法来分别确定是否是兼容的系统、是否是兼容的AXIO引擎、是否是相同的版本号、是否是相等的变种、是否是相等的发布类型、是否相等的版本信息。
一个实施例中,为方便包管理器的创建,可抽象出PackageManagerFactory工厂类,通过PackageManagerFactory工厂的new_pm方法进行创建,如图11所示,通过category参数可创建指定类型的包管理器。以安装application(应用)类型的软件包为例进行说明,用户输入包安装命令,在包安装命令中调用PackageManagerFactory的new_pm方法创建ApplicationPackageManager对象,随后调用该对象的get_package_object方法,获取第四软件包。
在上述实施例的基础上,步骤204中确定与第四属性信息相匹配的第四软件包,包括:
步骤2041、获取本地的软件包的第五属性信息,根据第五属性信息以及第四属性,在本地的软件包中筛选出满足预设条件的目标软件包。
一个实施例中,在安装软件包的过程中,会涉及软件包的匹配操作,包匹配操作的目的是找到与给定的属性信息最高匹配度的软件包。本实施例中,get_installed会获取本地已经下载的第五软件包的manifests,即第五属性信息。并将manifests传入match_requirements中,match_requirements则可以根据第五属性信息以及所需要安装的第四软件包的第四属性信息,在本地的软件包中筛选出满足预设条件的目标软件包。一个实施例中,在根据第一属性信息和第二属性信息确定出第二软件包时,也可通过调用match_requirements来匹配出第二软件包。
在上述实施例的基础上,第四属性信息包括系统信息、版本号信息、变种信息以及发布类型信息;
预设条件包括:目标软件包的系统信息与第四属性信息的系统信息兼容;目标软件包的版本号信息与第四属性信息的版本号信息相同;目标软件包的变种信息与第四属性信息的变种信息相同;目标软件包的发布类型信息与第四属性信息的发布类型信息相同;目标软件包的版本信息与第四属性信息的版本信息兼容。
一个实施例中,match_requirements在筛选出目标软件包时,会依次判断述目标软件包的系统信息与第四属性信息的系统信息兼容;目标软件包的版本号信息与第四属性信息的版本号信息相同;目标软件包的变种信息与第四属性信息的变种信息相同;目标软件包的发布类型信息与第四属性信息的发布类型信息相同;目标软件包的版本信息与第四属性信息的版本信息兼容。一个实施例中,还可以进一步判断目标软件包与第四软件包是否为相同的AXIO引擎。具体的,match_requirements可以通过调用图10中的is compatiblesystem(manifest,match args):boolean;is compatible axio engine(manifest,matchargs):boolean;is equaledition(manifest,match args):boolean;is equal variant(manifest,match args):boolean;is compatibledistype(manifest,match args):boolean;is compatible version(manifest,match args):boolean这六个方法来分别确定是否是兼容的系统、是否是兼容的AXIO引擎、是否是相同的版本号、是否是相等的变种、是否是相等的发布类型、是否相等的版本信息。
步骤2042、在目标软件包中匹配出第四软件包。
在筛选出目标软件包后,即可从目标软件包中匹配出第四软件包。一个实施例中,可根据目标软件包的版本号信息,对目标软件包进行排序;在排序后的目标软件包中匹配出第四软件包。具体的,终端设备可通过sort manifests by edition操作中对目标软件包的manifests按照edition的字母顺序进行排序,最后根据排序确定出第四软件包。一个实施例中,确定出第四软件包的具体过程如图12所示。
步骤205、确定第四软件包是否已经在本地安装。
步骤206、若第四软件包尚未在本地安装,安装第四软件包。
在匹配出第四软件包后,install方法会判断该包在本地是否已经安装,如果没有安装则会执行安装操作,安装第四软件包。
在上述实施例的基础上,还包括:
步骤207、响应于软件包删除指令,确定软件包删除指令中所携带的第三属性信息。
步骤208、在本地中已安装的软件包中匹配出与第三属性信息相对应的第三软件包,删除第三软件包。
一个实施例中,当用户需要删除终端设备上安装的软件包时,用户可以向终端设备发送软件包删除指令,软件包删除指令中包括有所需要删除的软件包的第三属性信息。终端设备接收到软件包删除指令后,对软件包删除指令进行响应,从软件包删除指令中解析出第三属性信息,并获取本地中已安装的软件包的manifest,根据第三属性信息在manifest中匹配出与第三属性信息相对应的第三软件包,并删除第三软件包。一个实施例中,用户在终端设备执行“axio uninstall component.cjson”命令,终端设备的AXIO-CLI将会获取本地已安装的软件包的manifest,并调用match requirements方法来筛选出第三软件包,其过程与上述match_requirements筛选出目标软件包的过程类似,在本实施例中不再进行赘述。一个实施例中,删除第三软件包的具体过程如图13所示。
在上述实施例的基础上,第四软件包的属性信息包括依赖信息;
在安装第四软件包之后,还包括:
步骤209、获取第四软件包的依赖信息。
在本实施例中,软件包通常不是独立存在的,经常存在一个包依赖于多个软件包的情况,因此需要在软件包的属性信息中储存软件包的依赖信息,例如存储在软件包的manifest文件的dependencies属性中。在安装了第四软件包后,还需要从第四软件包的属性信息中获取第四软件包的依赖信息。
步骤210、对依赖信息进行规范化处理。
在获取到第四软件包的依赖信息后,由于依赖信息内所包含的依赖数据具有多种格式与写法,因此获取到依赖信息后,需要对依赖信息进行规范化处理,通过规范化处理将依赖数据处理为统一的格式,方便后续进行处理。
在上述实施例的基础上,方法还包括:
步骤211、响应于依赖冻结指令,获取当前所安装的第五软件包的需求信息。
一个实施例中,用户还可以对软件包进行冻结,冻结软件包的作用是确保在安装项目依赖时使用的软件包的版本与开发环境中软件包的版本一致。在开发过程中,使用AXIO-CLI安装了某个软件包作为项目的依赖项后,该软件包可能会不断更新,导致项目无法兼容新安装的软件包,进而引发问题。为了避免这种情况,需要对软件包进行冻结,从而阻止软件包的更新。具体的,用户可向终端设备发送依赖冻结指令,终端设备的AXIO-CLI在接收到依赖冻结指令后,确定出当前所安装的第五软件包,并获取第五软件包的需求信息,其中需求信息中包括有第五软件包的依赖对象。
步骤212、将需求信息写入冻结文件,通过冻结文本冻结与需求信息相对应的目标对象,需求信息包括第五软件包所依赖的第六软件包以及第六软件包的版本信息。
在获取到第五软件包的需求信息后,即可将第五软件包的需求信息写入冻结文件中,本实施例中第五软件包的需求信息包括第五软件包所依赖的第六软件包以及第六软件包的版本信息。后续终端设备通过冻结文件中的版本信息,即可冻结相对应版本的第六软件包,从而使得第六软件包的版本无法进行更新,从而保证第五软件包能够正常使用。一个实施例中,生成冻结文件的具体过程如图14所示。
上述,本发明实施例在生成软件包的过程中,通过获取软件包的属性信息,并根据属性信息生成具有预设属性描述规则的软件包,从而将软件包进行标准化,建立通用的包管理机制,用户根据预设属性描述规则,即可对软件包进行下载、安装、删除、冻结以及管理等,使得开发人员可以更加方便地查找和使用各种工具和系统,避免了重复造轮子,提高了代码的可重用性,另外也实现了各种工具和系统之间的互操作性和兼容性,使得开发人员可以更加方便地进行组合和集成,简化了开发流程,提高了软件的开发效率。
如图15所示,图15为本发明实施例提供的一种软件包发布装置的结构示意图,如图15所示,本发明实施例提供的软件包发布装置包括:
软件包创建模块301,用于响应于软件包创建指令,获取第一软件包的属性信息,根据属性信息生成具有预设属性描述规则的第一软件包,预设属性描述规则用于描述第一软件包的属性信息,属性信息包括第一软件包的至少一个属性。
软件包发布模块302,用于响应于软件包发布指令,将第一软件包发送至包管理服务器中,以使包管理服务器注册第一软件包,将第一软件包的属性信息转化为索引信息,根据索引信息更新软件包索引清单,并将第一软件包上传至存储模块中进行储存。
本发明实施例提供的软件包发布装置包含在终端设备中,且可用于执行上述实施例中提供的软件包发布方法,具备相应的功能和有益效果。
值得注意的是,上述软件包发布装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
如图16所示,图16为本发明实施例提供的一种软件包下载装置的结构示意图,如图16所示,本发明实施例提供的软件包下载装置包括:
请求发送模块303,用于响应于软件包下载指令,确定软件包下载指令中所携带的第一属性信息,向包管理服务器发送包索引获取请求。
清单转化模块304,用于接收包管理服务器反馈的软件包索引清单,将软件包索引清单中的索引信息转化为第二属性信息。
下载模块305,用于根据第一属性信息和第二属性信息在软件包索引清单中确定出第二软件包,从包管理服务器中下载第二软件包。
在上述实施例的基础上,还包括:
删除指令响应模块,用于响应于软件包删除指令,确定软件包删除指令中所携带的第三属性信息。
删除模块,用于在本地中已安装的软件包中匹配出与第三属性信息相对应的第三软件包,删除第三软件包。
在上述实施例的基础上,还包括:
安装指令响应模块,用于响应包安装指令,确定包安装指令中所携带的第四属性信息,确定与第四属性信息相匹配的第四软件包。
安装确定模块,用于确定第四软件包是否已经在本地安装。
安装模块,用于若第四软件包尚未在本地安装,安装第四软件包。
在上述实施例的基础上,安装指令响应模块包括:
软件包筛选子模块,用于获取本地的软件包的第五属性信息,根据第五属性信息以及第四属性信息,在本地的软件包中筛选出满足预设条件的目标软件包。
软件包匹配子模块,用于在目标软件包筛选出满足预设条件的目标软件包,在目标软件包中匹配出第四软件包。
在上述实施例的基础上,第四属性信息包括系统信息、版本号信息、变种信息以及发布类型信息。
预设条件包括:目标软件包的系统信息与第四属性信息的系统信息兼容;目标软件包的版本号信息与第四属性信息的版本号信息相同;目标软件包的变种信息与第四属性信息的变种信息相同;目标软件包的发布类型信息与第四属性信息的发布类型信息相同;目标软件包的版本信息与第四属性信息的版本信息兼容。
在上述实施例的基础上,软件包匹配子模块具体用于根据目标软件包的版本号信息,对目标软件包进行排序;在排序后的目标软件包中匹配出第四软件包。
在上述实施例的基础上,第四软件包的属性信息包括依赖信息。
软件包下载装置还包括:
依赖信息获取模块,用于获取第四软件包的依赖信息。
规范化处理模块,用于对依赖信息进行规范化处理。
在上述实施例的基础上,还包括:
冻结指令响应模块,用于响应于依赖冻结指令,获取当前所安装的第五软件包的需求信息。
冻结文件写入模块,用于将需求信息写入冻结文件,通过冻结文本冻结与需求信息相对应的目标对象,需求信息包括第五软件包所依赖的第六软件包以及第六软件包的版本信息。
本发明实施例提供的软件包下载装置包含在终端设备中,且可用于执行上述实施例中提供的软件包下载方法,具备相应的功能和有益效果。
值得注意的是,上述软件包下载装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
本实施例还提供了一种终端设备,如图17所示,终端设备40包括处理器400以及存储器401;
存储器401用于存储计算机程序402,并将计算机程序402传输给处理器400;
处理器400用于根据计算机程序402中的指令执行上述的一种软件包发布方法中的步骤或者一种软件包下载方法中的步骤。
示例性的,计算机程序402可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器401中,并由处理器400执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序402在终端设备40中的执行过程。
终端设备40可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备40可包括,但不仅限于,处理器400、存储器401。本领域技术人员可以理解,图17仅仅是终端设备40的示例,并不构成对终端设备40的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备40还可以包括输入输出设备、网络接入设备、总线等。
所称处理器400可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器401可以是终端设备40的内部存储单元,例如终端设备40的硬盘或内存。存储器401也可以是终端设备40的外部存储设备,例如终端设备40上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器401还可以既包括终端设备40的内部存储单元也包括外部存储设备。存储器401用于存储计算机程序以及终端设备40所需的其他程序和数据。存储器401还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明实施例还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种软件包发布方法,包括:
响应于软件包创建指令,获取第一软件包的属性信息,根据属性信息生成具有预设属性描述规则的第一软件包,预设属性描述规则用于描述第一软件包的属性信息,属性信息包括第一软件包的至少一个属性;
响应于软件包发布指令,将第一软件包发送至包管理服务器中,以使包管理服务器注册第一软件包,将第一软件包的属性信息转化为索引信息,根据索引信息更新软件包索引清单,并将第一软件包上传至存储模块中进行储存;
或执行一种软件包下载方法,包括:
响应于软件包下载指令,确定软件包下载指令中所携带的第一属性信息,向包管理服务器发送包索引获取请求;
接收包管理服务器反馈的软件包索引清单,将软件包索引清单中的索引信息转化为第二属性信息;
根据第一属性信息和第二属性信息确定出第二软件包,从包管理服务器中下载第二软件包。
注意,上述仅为本发明实施例的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明实施例不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明实施例的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明实施例构思的情况下,还可以包括更多其他等效实施例,而本发明实施例的范围由所附的权利要求范围决定。

Claims (7)

1.一种软件包下载方法,其特征在于,包括:
响应于软件包下载指令,确定所述软件包下载指令中所携带的第一属性信息,向包管理服务器发送包索引获取请求;
接收所述包管理服务器反馈的软件包索引清单,将所述软件包索引清单中的索引信息转化为第二属性信息;
根据所述第一属性信息和第二属性信息确定出第二软件包,从所述包管理服务器中下载所述第二软件包;
响应于包安装指令,确定所述包安装指令中所携带的第四属性信息,确定与所述第四属性信息相匹配的第四软件包,所述第四软件包的属性信息包括依赖信息;
确定所述第四软件包是否已经在本地安装;
若所述第四软件包尚未在本地安装,安装所述第四软件包,获取所述第四软件包的依赖信息,对所述依赖信息进行规范化处理;
响应于依赖冻结指令,获取当前所安装的第五软件包的需求信息,将所述需求信息写入冻结文件,通过所述冻结文件冻结与所述需求信息相对应的目标对象,所述需求信息包括所述第五软件包所依赖的第六软件包以及所述第六软件包的版本信息。
2.根据权利要求1所述的一种软件包下载方法,其特征在于,还包括:
响应于软件包删除指令,确定所述软件包删除指令中所携带的第三属性信息;
在本地中已安装的软件包中匹配出与所述第三属性信息相对应的第三软件包,删除所述第三软件包。
3.根据权利要求1所述的一种软件包下载方法,其特征在于,所述确定与所述第四属性信息相匹配的第四软件包,包括:
获取本地的软件包的第五属性信息,根据所述第五属性信息以及所述第四属性信息,在本地的软件包中筛选出满足预设条件的目标软件包;
在所述目标软件包筛选出满足预设条件的目标软件包,在所述目标软件包中匹配出第四软件包。
4.根据权利要求3所述的一种软件包下载方法,其特征在于,所述第四属性信息包括系统信息、版本号信息、变种信息以及发布类型信息;
所述预设条件包括:所述目标软件包的系统信息与所述第四属性信息的系统信息兼容;所述目标软件包的版本号信息与所述第四属性信息的版本号信息相同;所述目标软件包的变种信息与所述第四属性信息的变种信息相同;所述目标软件包的发布类型信息与所述第四属性信息的发布类型信息相同;所述目标软件包的版本信息与所述第四属性信息的版本信息兼容。
5.根据所述权利要求3所述的一种软件包下载方法,其特征在于,所述在所述目标软件包中匹配出第四软件包,包括:
根据所述目标软件包的版本号信息,对所述目标软件包进行排序;
在排序后的目标软件包中匹配出第四软件包。
6.一种终端设备,其特征在于,所述终端设备包括处理器以及存储器;
所述存储器用于存储计算机程序,并将所述计算机程序传输给所述处理器;
所述处理器用于根据所述计算机程序中的指令执行如权利要求1-5中任一项所述的一种软件包下载方法。
7.一种存储计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-5中任一项所述的一种软件包下载方法。
CN202311025570.1A 2023-08-14 2023-08-14 软件包发布方法、软件包下载方法、终端设备及存储介质 Active CN117311698B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311025570.1A CN117311698B (zh) 2023-08-14 2023-08-14 软件包发布方法、软件包下载方法、终端设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311025570.1A CN117311698B (zh) 2023-08-14 2023-08-14 软件包发布方法、软件包下载方法、终端设备及存储介质

Publications (2)

Publication Number Publication Date
CN117311698A CN117311698A (zh) 2023-12-29
CN117311698B true CN117311698B (zh) 2024-05-17

Family

ID=89245254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311025570.1A Active CN117311698B (zh) 2023-08-14 2023-08-14 软件包发布方法、软件包下载方法、终端设备及存储介质

Country Status (1)

Country Link
CN (1) CN117311698B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102769638A (zh) * 2011-05-05 2012-11-07 腾讯科技(深圳)有限公司 一种下载文件的方法、装置及系统
US10055200B1 (en) * 2016-03-29 2018-08-21 EMC IP Holding Company LLC Creation and use of development packages
CN112083951A (zh) * 2020-09-24 2020-12-15 中国人民解放军国防科技大学 一种支持多操作系统平台的软件包统一管理方法及系统
CN112416421A (zh) * 2020-11-17 2021-02-26 用友网络科技股份有限公司 软件依赖关系分析方法、分析装置和可读存储介质
CN113934426A (zh) * 2021-09-23 2022-01-14 北京车和家信息技术有限公司 软件包处理方法、装置、系统、设备及介质
CN114461262A (zh) * 2021-12-27 2022-05-10 东软睿驰汽车技术(沈阳)有限公司 数据处理方法、系统、装置、设备,及计算机存储介质
CN114706564A (zh) * 2022-05-16 2022-07-05 龙芯中科技术股份有限公司 软件包制作方法、装置、电子设备及存储介质
CN116028099A (zh) * 2021-10-25 2023-04-28 腾讯科技(深圳)有限公司 一种安装包生成的方法及相关装置、设备和存储介质
CN116304937A (zh) * 2023-02-02 2023-06-23 深圳市元征科技股份有限公司 冻结帧异常检测方法、装置、终端设备及存储介质
CN116382761A (zh) * 2023-04-11 2023-07-04 北京青云科技股份有限公司 一种应用管理方法、电子设备及存储介质
CN116450194A (zh) * 2023-02-24 2023-07-18 上海艺赛旗软件股份有限公司 一种python安装包的生成方法、装置、电子设备及可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9141934B2 (en) * 2008-04-07 2015-09-22 Blackberry Limited Techniques for deploying virtual software applications on desktop computers
US10867053B2 (en) * 2018-06-26 2020-12-15 Sri International Creating software packages for performing secure computations

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102769638A (zh) * 2011-05-05 2012-11-07 腾讯科技(深圳)有限公司 一种下载文件的方法、装置及系统
US10055200B1 (en) * 2016-03-29 2018-08-21 EMC IP Holding Company LLC Creation and use of development packages
CN112083951A (zh) * 2020-09-24 2020-12-15 中国人民解放军国防科技大学 一种支持多操作系统平台的软件包统一管理方法及系统
CN112416421A (zh) * 2020-11-17 2021-02-26 用友网络科技股份有限公司 软件依赖关系分析方法、分析装置和可读存储介质
CN113934426A (zh) * 2021-09-23 2022-01-14 北京车和家信息技术有限公司 软件包处理方法、装置、系统、设备及介质
CN116028099A (zh) * 2021-10-25 2023-04-28 腾讯科技(深圳)有限公司 一种安装包生成的方法及相关装置、设备和存储介质
CN114461262A (zh) * 2021-12-27 2022-05-10 东软睿驰汽车技术(沈阳)有限公司 数据处理方法、系统、装置、设备,及计算机存储介质
CN114706564A (zh) * 2022-05-16 2022-07-05 龙芯中科技术股份有限公司 软件包制作方法、装置、电子设备及存储介质
CN116304937A (zh) * 2023-02-02 2023-06-23 深圳市元征科技股份有限公司 冻结帧异常检测方法、装置、终端设备及存储介质
CN116450194A (zh) * 2023-02-24 2023-07-18 上海艺赛旗软件股份有限公司 一种python安装包的生成方法、装置、电子设备及可读存储介质
CN116382761A (zh) * 2023-04-11 2023-07-04 北京青云科技股份有限公司 一种应用管理方法、电子设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Android应用重打包检测方法研究;柴源;《中国优秀硕士学位论文全文数据库 信息科技辑》;20230115;I138-588 *
基于规范化描述的软件智能部署的研究与实现;李冰鹏;《中国优秀硕士学位论文全文数据库 信息科技辑》;20100515;I138-89 *
移动边缘计算环境下服务迁移策略研究与实现;罗艺;《中国优秀硕士学位论文全文数据库 信息科技辑》;20230215;I136-1525 *

Also Published As

Publication number Publication date
CN117311698A (zh) 2023-12-29

Similar Documents

Publication Publication Date Title
US10419546B2 (en) Migration assessment for cloud computing platforms
US8572566B2 (en) Systems and methods for analyzing changes in application code from a previous instance of the application code
US8898627B2 (en) Systems and methods for applying rules to transform objects of an application
US9235404B2 (en) Firmware update system
US8302093B2 (en) Automated deployment of defined topology in distributed computing environment
CN108319460B (zh) 应用程序安装包的生成方法、装置、电子设备及存储介质
US9954819B2 (en) System and method for compliance based automation
US8230121B2 (en) Method and apparatus for identifying a device handle in a computer system
JP5542796B2 (ja) モバイル・デバイス・ソフトウェアの管理方法及び装置
US8589864B2 (en) Automating the creation of an application provisioning model
US9329841B2 (en) Software asset packaging and consumption
CN112363695A (zh) Pmml文件及其运行时环境与工业软件的集成方法
CN117311698B (zh) 软件包发布方法、软件包下载方法、终端设备及存储介质
CN117215558A (zh) 安卓的基于可视化的软件开发方法、装置、设备及介质
CN110866007A (zh) 大数据应用和表的信息管理方法、系统和计算机设备
US20180205701A1 (en) System and method for compliance based automation
US20220413843A1 (en) Combining model-driven applications and canvas-type applications with application lifecycle management
CN114595106B (zh) 一种业务控制设备调测方法及装置
CN110209427B (zh) 应用系统及其启动方法、电子设备、存储介质
CN117215965B (zh) 基于测试用例识别的测试方法、装置、电子设备和介质
US20230409309A1 (en) Device of Updating Library Required by Testing Program for Testing and Method Thereof
Wilkes et al. From script to framework
CN112597029A (zh) 一种规范检查系统、方法、设备及介质
CN116028101A (zh) 基于组件特征类别编排调取的方法
CN116627535A (zh) 基于规则引擎的任务执行方法、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant