CN113741952A - 一种软件包管理方法、装置、设备及介质 - Google Patents

一种软件包管理方法、装置、设备及介质 Download PDF

Info

Publication number
CN113741952A
CN113741952A CN202010505645.6A CN202010505645A CN113741952A CN 113741952 A CN113741952 A CN 113741952A CN 202010505645 A CN202010505645 A CN 202010505645A CN 113741952 A CN113741952 A CN 113741952A
Authority
CN
China
Prior art keywords
software package
target software
file
target
hardware environment
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.)
Pending
Application number
CN202010505645.6A
Other languages
English (en)
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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN113741952A publication Critical patent/CN113741952A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting

Landscapes

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

Abstract

本申请提供了一种软件包管理方法,包括:接收软件包下载请求,该软件包下载请求包括硬件环境配置和目标软件包的描述信息,根据描述信息和硬件环境配置,获得与硬件环境配置匹配的目标软件包,然后发送目标软件包。由于无需预先提供针对不同硬件环境配置的目标软件包,降低了软件包管理的复杂度,降低了软件包管理成本。

Description

一种软件包管理方法、装置、设备及介质
本申请要求于2020年05月29日提交中国国家知识产权局、申请号为202010477029.4、申请名称为“一种在异构IT环境中高效管理和分发软件的方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,尤其涉及一种软件包管理方法、装置、计算机可读存储介质。
背景技术
随着计算机技术的不断发展,包含多种架构处理器(如x86架构处理器、arm架构处理器、达芬奇架构处理器)和/或加速器(如图形处理器(graphics processing unit,GPU)、现场可编程逻辑门阵列(field programmable gate array,FPGA))的异构计算环境正逐渐成为企业信息技术(information technology,IT)基础设施部署和云环境部署的常态。
在异构环境中,软件包管理(如软件包分发)也随着环境中处理器架构和加速器类型的组合的增加而变得更加复杂。针对同一个软件,软件仓库需要分别提供不同硬件环境下的软件包下载链接,以使客户端通过对应的软件包下载链接下载对应的软件包。如此,增加了软件包管理的复杂度,提高了软件包管理成本。
基于此,业界亟需提供一种软件包管理方法,以降低软件包管理的复杂度,降低软件包管理成本。
发明内容
本申请提供了一种软件包管理方法,解决了相关技术中软件包管理随着异构环境中处理器架构和加速器类型的组合的增加而变得更加复杂,管理成本较高的问题。本申请还提供了上述方法对应的装置、设备、计算机可读存储介质以及计算机程序产品。
第一方面,本申请提供了一种软件包管理方法。该方法可以由软件仓库执行。具体地,软件仓库接收软件包下载请求,所述软件包下载请求包括硬件环境配置和目标软件包的描述信息,然后根据所述描述信息和所述硬件环境配置,获得与所述硬件环境配置匹配的所述目标软件包,接着发送所述目标软件包。
在该方法中,客户端在软件包下载请求中携带硬件环境配置,如此,软件仓库可以基于硬件环境配置匹配出相应的目标软件包,无需预先提供针对不同硬件环境配置的目标软件包,降低了软件包管理的复杂度,降低了软件包管理成本。并且,该方法可以避免软件仓库提供的软件包下载链接发生混淆,或者客户端选择了其他硬件环境下的软件包下载链接,导致下载的软件包不可用的问题,提高了软件包下载及安装的效率,提高了用户体验。
在一些可能的实现方式中,软件仓库可以根据软件包下载请求,实时构建与该软件包下载请求对应的目标软件包。具体地,软件仓库根据所述描述信息和所述硬件环境配置,获得所述目标软件包的构成文件,打包所述构成文件,获得所述目标软件包。
在一些可能的实现方式中,软件仓库可以通过如下方式获得目标软件包的构成文件:根据所述描述信息和所述硬件环境配置查询所述目标软件包的构成文件的文件标识,根据所述文件标识获得所述目标软件包的构成文件。
在一些可能的实现方式中,在接收软件包下载请求之前,软件仓库还可以存储所述目标软件包的构成文件,以便客户端有下载需求时,能够根据该构成文件构建软件包提供给用户。
在一些可能的实现方式中,软件仓库可以在未存储所述目标软件包的构成文件时,存储所述目标软件包的构成文件,从而避免存储重复的构成文件,节省存储空间,实现高效存储。
在一些可能的实现方式中,软件仓库还可以提供软件包查询功能。具体地,软件仓库接收软件包查询请求,所述软件包查询请求包括所述目标软件包的描述信息,然后根据所述描述信息获得所述目标软件包的元数据,接着返回所述目标软件包的元数据。
在一些可能的实现方式中,软件仓库还可以提供软件包删除功能。具体地,软件仓库接收软件包删除请求,所述软件包删除请求包括所述目标软件包的描述信息,然后根据所述描述信息获得所述目标软件包的元数据,接着根据所述元数据中所述目标软件包的构成文件的文件标识,删除所述构成文件。
在一些可能的实现方式中,软件仓库可以接收多个软件包下载请求,这多个软件包下载请求具体来自于不同硬件环境配置的客户端对目标软件包的下载操作,软件仓库可以根据所述描述信息和所述硬件环境配置,从同一软件仓库地址,具体是同一个统一资源定位符(uniform resource locator,URL)获得与所述硬件环境配置匹配的所述目标软件包。如此实现了对客户端透明,不同架构的客户端使用统一的软件仓库地址以及相同的命令下载和安装软件包。进一步降低了软件管理复杂度,降低了管理成本。
在一些可能的实现方式中,所述硬件环境配置包括操作***配置、处理器配置以及加速器配置。针对新的处理器架构和加速器的组合,该方法也能够适用,具有较好的兼容性。
在一些可能的实现方式中,软件仓库也可以直接存储软件包。具体地,接收软件包下载请求之前,软件仓库还可以接收软件包上传请求,所述软件包上传请求包括所述目标软件包,然后存储所述目标软件包。
在一些可能的实现方式中,软件仓库在存储所述目标软件包时,如果所述目标软件包在存储***中存在重复块,则去除重复块,如此可以实现高效存储。
第二方面,本申请提供了一种软件包管理方法。该方法可以由软件仓库执行。具体地,软件仓库接收构成文件上传请求,所述构成文件上传请求用于请求上传目标软件包的构成文件,然后软件仓库存储所述目标软件包的构成文件。
在该方法中,当客户端有软件包下载需求时,软件仓库可以直接根据构成文件动态构建软件包,满足了不同硬件环境配置客户端以统一方式下载软件包的需求。
在一些可能的实现方式中,所述构成文件上传请求包括目标软件包的构成文件。如此,可以减少打包、解包次数,提高效率。
在一些可能的实现方式中,所述构成文件上传请求包括目标软件包,基于此,软件仓库还可以解包所述目标软件包,获得所述目标软件包的构成文件。与直接存储目标软件包相比,存储构成文件可以减少存储重复的文件,实现高效存储。
第三方面,本申请提供了一种软件包管理装置。所述装置包括:
通信单元,用于接收软件包下载请求,所述软件包下载请求包括硬件环境配置和目标软件包的描述信息;
管理单元,用于根据所述描述信息和所述硬件环境配置,获得与所述硬件环境配置匹配的所述目标软件包;
所述通信单元,还用于发送所述目标软件包。
在一些可能的实现方式中,所述管理单元包括:
匹配子单元,用于根据所述描述信息和所述硬件环境配置,获得所述目标软件包的构成文件;
构建子单元,用于打包所述构成文件,获得所述目标软件包。
在一些可能的实现方式中,所述匹配子单元具体用于:
根据所述描述信息和所述硬件环境配置查询所述目标软件包的构成文件的文件标识;
根据所述文件标识获得所述目标软件包的构成文件。
在一些可能的实现方式中,所述装置还包括:
存储单元,用于在接收软件包下载请求之前,存储所述目标软件包的构成文件。
在一些可能的实现方式中,所述装置还包括:
存储单元,用于在未存储所述目标软件包的构成文件时,存储所述目标软件包的构成文件。
在一些可能的实现方式中,所述通信单元还用于:
接收软件包查询请求,所述软件包查询请求包括所述目标软件包的描述信息;
所述管理单元还用于:
根据所述描述信息获得所述目标软件包的元数据;
所述通信单元还用于:
返回所述目标软件包的元数据。
在一些可能的实现方式中,所述通信单元还用于:
接收软件包删除请求,所述软件包删除请求包括所述目标软件包的描述信息;
所述管理单元还用于:
根据所述描述信息获得所述目标软件包的元数据;
根据所述元数据中所述目标软件包的构成文件的文件标识,删除所述构成文件。
在一些可能的实现方式中,所述通信单元具体用于:
接收多个软件包下载请求,所述多个软件包下载请求来自于不同硬件环境配置的客户端对目标软件包的下载操作;
所述管理单元具体用于:
根据所述描述信息和所述硬件环境配置,从同一软件仓库地址获得与所述硬件环境配置匹配的所述目标软件包。
在一些可能的实现方式中,所述硬件环境配置包括操作***配置、处理器配置以及加速器配置。
第四方面,本申请提供了一种软件包管理装置。所述装置包括:
通信单元,用于接收构成文件上传请求,所述构成文件上传请求用于请求上传目标软件包的构成文件;
存储单元,用于存储所述目标软件包的构成文件。
在一些可能的实现方式中,所述构成文件上传请求包括目标软件包的构成文件。
在一些可能的实现方式中,所述构成文件上传请求包括目标软件包;
所述装置还包括:
解包单元,用于解包所述目标软件包,获得所述目标软件包的构成文件。
第五方面,本申请提供一种设备,所述设备包括处理器和存储器。所述处理器、所述存储器进行相互的通信。所述处理器用于执行所述存储器中存储的指令,以使得设备执行如第一方面或第一方面的任一种实现方式中的软件包管理方法。
第六方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令指示设备执行上述第一方面或第一方面的任一种实现方式所述的软件包管理方法。
第七方面,本申请提供了一种包含指令的计算机程序产品,当其在设备上运行时,使得设备执行上述第一方面或第一方面的任一种实现方式所述的软件包管理方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1为本申请实施例提供的一种软件包管理方法的应用环境示意图;
图2为本申请实施例提供的一种软件包管理方法的***架构图;
图3为本申请实施例提供的一种软件包管理方法的***架构图;
图4为本申请实施例提供的一种软件包管理方法的交互流程图;
图5为本申请实施例提供的一种下载软件包的流程示意图;
图6为本申请实施例提供的一种软件包管理方法的流程图;
图7为本申请实施例提供的一种界面示意图;
图8为本申请实施例提供的一种软件包管理装置的结构示意图;
图9为本申请实施例提供的一种软件包管理装置的结构示意图;
图10为本申请实施例提供的一种设备的结构示意图;
图11为本申请实施例提供的一种设备的结构示意图。
具体实施方式
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
首先对本申请实施例中所涉及到的一些技术术语进行介绍。
软件仓库(software repository),又名软件存储库,是管理和分发软件包的***。软件仓库管理大量的可供下载和安装的软件包。这些软件包可以由不同的软件提供商或开发者提供。为了便于存储以及用户查询,软件仓库可以按照不同的方式对软件包分类。例如,软件仓库可以按照操作***、软件的许可证类型、甚至语言来分类。
异构环境(heterogeneous environment)是指由不同制造商生产的不同架构和/或不同硬件环境配置的计算设备构成的信息技术(information technology,IT)环境。其中,计算设备可以是台式机、笔记本电脑、智能手机等个人计算设备(personal computer,PC),也可以是服务器。
这些计算设备可以采用不同的***架构,例如x86架构、高级精简指令集处理器(Advanced RISC Machines,ARM)架构、POWER架构等。在一些实现方式中,这些计算设备也可以是相同的***架构,但是存在硬件环境配置差异。
例如,一些计算设备的硬件环境配置可以为仅包括x86中央处理器(centralprocessing unit,CPU),即x86 CPU only。;另一些计算设备的硬件环境配置可以为包括x86 CPU和图形处理器(graphical processing unit,GPU),即x86+GPU,还有一些计算设备的硬件环境配置可以为仅包括ARM架构的CPU,即ARM CPU only。当然,一些计算设备的硬件环境配置还可以为ARM架构CPU和嵌入式神经网络处理器(Neural-network ProcessingUnit,NPU)。
在异构环境中,软件仓库对软件包进行管理(如分发软件包)也随着环境中处理器架构和加速器类型的组合的增加而变得更加复杂。针对同一个软件,软件仓库需要分别提供不同硬件环境下的软件包下载链接,以使客户端通过对应的软件包下载链接下载对应的软件包。软件仓库提供的软件包下载链接发生混淆,或者客户端选择了其他硬件环境下的软件包下载链接,均会导致下载的软件包不可用。如此,增加了软件包管理的复杂度,提高了软件包管理成本,而且影响下载及安装效率。
有鉴于此,本申请提供了一种软件包管理方法。该方法可以由软件仓库执行。具体地,软件仓库接收软件包下载请求,该软件包下载请求包括硬件环境配置和目标软件包的描述信息,软件仓库可以根据所述描述信息和所述硬件环境配置,获得与所述硬件环境配置匹配的所述目标软件包,然后发送所述目标软件包。
在该方法中,客户端在软件包下载请求中携带硬件环境配置,如此,软件仓库可以基于硬件环境配置匹配出相应的目标软件包,无需预先提供针对不同硬件环境配置的目标软件包,降低了软件包管理的复杂度,降低了软件包管理成本。并且,该方法可以避免软件仓库提供的软件包下载链接发生混淆,或者客户端选择了其他硬件环境下的软件包下载链接,导致下载的软件包不可用的问题,提高了软件包下载及安装的效率,提高了用户体验。
进一步地,软件仓库可以接收多个软件包下载请求,这多个软件包下载请求具体来自于不同硬件环境配置的客户端对目标软件包的下载操作,软件仓库可以根据所述描述信息和所述硬件环境配置,从同一软件仓库地址,具体是同一个统一资源定位符(uniformresource locator,URL)获得与所述硬件环境配置匹配的所述目标软件包。如此实现了对客户端透明,不同架构的客户端使用统一的软件仓库地址以及相同的命令下载和安装软件包。进一步降低了软件管理复杂度,降低了管理成本。
为了使得本申请的技术方案更加清楚、易于理解,下面结合附图对本申请实施例提供的软件包管理方法的应用场景进行介绍。
参见图1所示的软件包管理方法的应用场景示意图,如图1所示,该场景中包括软件仓库102以及至少一个客户端104。为了便于描述,图1以包括多个客户端进行示例说明。至少一个客户端104与软件仓库102建立通信通路,如此,客户端104基于该通信通路从软件仓库102下载软件包。
具体地,客户端104向软件仓库102发送软件包下载请求,该软件包下载请求包括硬件环境配置和目标软件包的描述信息。其中,硬件环境配置是指客户端104所处的硬件环境的配置状况。在一些实现方式中,硬件环境配置可以是客户端104所在设备的处理器配置、操作***配置和加速器配置。需要说明,加速器是指除了中央处理器以外的处理器,例如GPU、NPU等等。当客户端104所在设备未配置加速器时,加速器配置为空。
目标软件包可以是软件仓库102提供的软件包中的一个或多个。描述信息具体是指描述软件包的信息,例如可以是软件包的名称、编号或者其他可以唯一确定软件包的字符串。在一个示例中,目标软件包的描述信息可以是message,即消息软件的软件名称。
对应地,软件仓库102接收到上述软件包下载请求后,根据所述描述信息和所述硬件环境配置,获得与所述硬件环境配置匹配的所述目标软件包。然后,向客户端104发送目标软件包。
在一些实现方式中,多个客户端104中至少有两个客户端具有不同硬件环境配置。例如,一个客户端的硬件环境配置为x86 CPU only,另一个客户端的硬件环境配置为ARMCPU+NPU。
对应地,软件仓库102可以接收多个软件包下载请求,这多个软件包下载请求具体来自于上述具有不同硬件环境配置的客户端104对目标软件包的下载操作。接着,软件仓库102可以根据描述信息和硬件环境配置,从同一URL获得与各客户端104的硬件环境配置相匹配的目标软件包,返回至相应的客户端104。
如图2所示,软件仓库102可以部署在云环境,具体为云环境上的一个或多个计算设备(例如:中心服务器)。该软件仓库102也可以部署在边缘环境中,具体为边缘环境中的一个或多个计算设备(边缘计算设备)上,边缘计算设备可以为服务器、计算盒子等。所述云环境指示云服务提供商拥有的,用于提供计算、存储、通信资源的中心计算设备集群;所述边缘环境指示在地理位置上距离端设备(即端侧设备)较近的,用于提供计算、存储、通信资源的边缘计算设备集群。
上述软件仓库102也可以部署在端设备上。端设备包括终端等物理机(physicalmachine)。其中,终端包括但不限于台式机、笔记本电脑、平板电脑或者智能手机。软件仓库102也可以部署在上述物理机上的虚拟机(virtual machine)或容器(container)中。考虑到负载均衡和可靠性,在一些实现方式中,软件仓库102也可以多副本的形式部署在集群中。
进一步地,如图3所示,软件仓库102可以包括多个部分(例如包括多个功能模块)。基于此,软件仓库102的各个部分也可以分布式地部署在不同环境中。例如,可以在云环境、边缘环境、端设备中的三个环境,或其中任意两个环境上分别部署软件仓库102的一部分。
在一些实现方式中,软件仓库102在部署在上述环境中时,可以是部署在物理机上,也可以是部署在物理机中的虚拟机或者容器上。本申请实施例对此不作限定。
为了使得本申请的技术方案更加清楚、易于理解,下面将从软件仓库102和客户端104交互的角度,对本申请实施例提供的软件包管理方法进行介绍。
参见图4所示的软件包管理方法的流程图,该方法包括:
S402:客户端104向软件仓库102发送软件包下载请求。
客户端104可以是专用于下载软件的客户端,例如软件商店的客户端。客户端104也可以是通用的客户端,例如浏览器。在一些实现方式中,客户端104可以提供图形用户界面(graphical user interface,GUI)。用户可以通过该GUI触发软件包下载操作,客户端104响应于软件包下载操作,生成软件包下载请求,然后向软件仓库102发送软件包下载请求。
其中,软件包下载请求包括硬件环境配置和目标软件包的描述信息。
硬件环境配置是指客户端104所在设备的硬件环境配置。该硬件环境配置可以包括处理器配置、操作***配置和加速器配置。其中,处理器配置包括处理器架构,如x86、ARM或者POWER等。操作***配置包括操作***类型,如Windows、linux等等。在一些实现方式中,操作***配置还包括操作***版本,如7.0、7.1、10.0等等。操作***可以是物理机的操作***,当客户端104部署在虚拟机上时,操作***也可以是虚拟机的操作***。加速器配置包括用于加速的处理器,如GPU、NPU等等。在一些示例中,加速器配置可以为空,也即客户端104所在设备可以不配置加速器。
目标软件包为需要下载的软件包。目标软件包为软件仓库102提供的软件包中的一个或多个。具体地,用户可以通过上述GUI选择一个或多个软件包触发软件包下载操作,其中,被选中的软件包即为目标软件包。
目标软件包的描述信息用于唯一标识该目标软件包,以使软件仓库102能够根据描述信息确定对应的目标软件包。基于此,目标软件包的描述信息可以是该目标软件包的名称或者编码,当然,描述信息也可以是根据上述名称、编码、内容中的一种或多种所确定的唯一值。
在一些实现方式中,客户端104也可以是命令行(command line)工具。在一些示例中,命令行工具包括红帽包管理器(red-hat package manager,RPM)、Debian包管理器(debian packager,dpkg)等等。命令行工具还可以提供命令行用户交互界面(commanduser interface,CUI)。用户可以通过该CUI输入软件包下载命令,例如wget。对应地,命令行工具可以根据该软件包下载命令生成软件包下载请求。
当软件仓库102还提供有软件包对应的应用程序编程接口(applicationprogramming interface,API)时,客户端104还可以调用API以生成软件包下载请求。在该实现方式中,客户端104可以是上述专用于软件下载的客户端,浏览器或者其他客户端。
S404:软件仓库102根据所述描述信息和所述硬件环境配置,获得与所述硬件环境配置匹配的所述目标软件包。
在一些实现方式中,软件仓库102可以存储软件包的构成文件。基于此,软件仓库102通过动态构建方式获得目标软件包。具体地,软件仓库102可以根据描述信息和硬件环境配置,匹配出与所述描述信息以及所述硬件环境配置匹配的构成文件,即目标软件包的构成文件。然后,软件仓库102可以打包该构成文件,获得目标软件包。
其中,软件仓库102可以根据描述信息和硬件环境配置,通过软件包的元数据匹配出与所述描述信息以及所述硬件环境配置匹配的构成文件。软件包的元数据包括软件包的描述信息、硬件环境配置和软件包的构成文件的文件标识。其中,构成文件的文件标识是能够唯一标识文件的字符串。在一些实现方式中,构成文件的文件标识可以是构成文件的哈希值(hash)。进一步地,软件包的元数据还可以包括其他信息,如软件包的版本、包类型等等。
为了便于描述,本申请还提供了元数据的具体示例。如下表所示:
表1软件包的元数据
Figure BDA0002526438980000081
其中,表1中的第1列即“名称”列表征软件包的描述信息,表1中的第3至5列即“操作***”、“架构”、“加速器”等3列表征硬件环境配置,表1中的最后1列即“文件信息”列表征软件包的构成文件的文件标识。
在一些实现方式中,软件仓库102可以维护软件包元数据仓库。该软件包元数据仓库用于存储各软件包的元数据,以便软件仓库102基于该软件包元数据仓库进行数据匹配。类似地,软件仓库102还可以维护文件仓库。该文件仓库用于存储各软件包的构成文件,以便软件仓库102根据文件标识从文件仓库中获取相应的构成文件。
在一些实现方式中,软件仓库102预先存储软件包的构成文件,例如预先存储目标软件包的构成文件,以便客户端104从软件仓库102中下载该目标软件包。进一步地,软件仓库102可以在未存储所述目标软件包的构成文件时,存储所述目标软件包的构成文件。如此,可以避免存储重复的构成文件,节省存储空间,实现高效存储。
其中,软件仓库102还可以存储构成文件的文件标识,例如构成文件的哈希值。如下表所示:
表2构成文件的文件标识
文件名称
2afc1f626f77237d4345aad25b03b8f2
008c83eeff8573656c84e1929d6247ef
5cf1fa21b1984de8e4905b03434db689
如此,软件仓库102可以通过比较待存储的构成文件的文件标识和已存储的构成文件的文件标识,确定是否存储待存储的构成文件。若待存储的构成文件的文件标识与已存储的构成文件的文件标识相同,则放弃此次存储操作。若待存储的构成文件的文件标识与已存储的构成文件的文件标识不同,则执行此次存储操作。
S406:软件仓库102向客户端104发送目标软件包。
软件仓库102向客户端104发送目标软件包,以便客户端104安装该目标软件包。
在一些实现方式中,如图5所示,软件仓库102可以接收多个软件包下载请求。这多个软件包下载请求可以来自于不同硬件环境配置的客户端104对目标软件包的下载操作。其中,软件仓库102提供有GUI,客户端通过GUI显示软件包下载页面,例如软件包名称为amand的软件包下载页面,在该软件包下载页面中,具有不同硬件环境配置的客户端104可以通过同一下载地址,例如同一URL下载与其硬件环境配置相匹配的目标软件包。
具体下载过程为,具有不同硬件环境配置的客户端104分别向软件仓库102发送软件包下载请求,软件仓库102根据各软件包下载请求中的描述信息和硬件环境配置,从同一软件仓库地址(例如上述URL处)获得与各硬件环境配置匹配的所述目标软件包。然后,软件仓库102向具有不同硬件环境配置的客户端104分别返回对应的目标软件包。
基于此,处理器配置、操作***配置和加速器配置导致的软件包差异对用户透明,用户可以使用统一的软件包名称下载和安装目标软件包,简化了软件包下载、安装过程,降低了软件包管理难度,降低了软件包管理成本。
以上从软件包下载层面对本申请实施例提供的软件包管理方法进行了介绍,接下来,将从软件包上传层面对本申请实施例提供的软件包管理方法进行介绍。本实施例以目标软件包的上传进行示例说明,其他软件包的上传可以参照该实施例。
参见图6所示的软件包管理方法的流程图,如图6所示,该方法包括:
S602:软件仓库102接收构成文件上传请求。
目标软件包包括至少一个构成文件,所述构成文件上传请求用于请求上传目标软件包的构成文件。如表2所示,目标软件包nginx包括哈希值为hash1和hash2的2个构成文件,目标软件包Tomcat包括哈希值为hash1的构成文件。
在一些实现方式中,构成文件上传请求包括目标软件包的构成文件。具体地,客户端104直接在构成文件上传请求中携带目标软件包的构成文件,然后上传该构成文件上传请求,从而实现上传目标软件包的构成文件。其中,客户端104可以在开发目标软件包时,例如开发运维(development operations,DevOps)时,不打包目标软件包的构成文件,直接将构成文件上传至软件仓库102,从而减少目标软件包的打包、解包次数,提高上传效率,减少额外的工作量。
在另一些实现方式中,构成文件上传请求包括目标软件包。具体地,客户端104在构成文件上传请求中携带目标软件包,该目标软件包可以被解包为目标软件包的构成文件,由此可以实现上传目标软件包的构成文件。
S604:软件仓库102存储所述目标软件包的构成文件。
软件仓库102存储目标软件包的构成文件,以便接收到软件包下载请求时,能够根据预先存储的、目标软件包的构成文件动态构建目标软件包。其中,软件仓库102接收的构成文件上传请求包括目标软件包时,软件仓库102线解包目标软件包,获得所述目标软件包的构成文件,然后存储所述目标软件包的构成文件。
在一些实现方式中,软件仓库可以先检测本地是否存在构成文件,若否,则存储目标软件包的构成文件,若是,则放弃存储该构成文件,避免重复的构成文件占用存储空间,从而实现高效存储。
需要说明,执行软件包上传操作和执行软件包下载操作的客户端104可以是同一客户端,也可以是不同客户端。为了便于描述,本申请实施例可以将执行软件包下载操作的客户端104称之为第一客户端,执行软件包上传操作的客户端104称之为第二客户端。类似地,第一客户端呈现的GUI称之为第一GUI,第二客户端呈现的GUI称之为第二GUI。
图7提供了第二GUI的示意图,如图7所示,第二GUI提供有软件包上传组件,该软件包上传组件中包括名称编辑控件和路径编辑控件。其中,名称编辑控件用于编辑待上传的目标软件包的名称,路径编辑控件用于编辑待上传的目标软件包的构成文件的路径。
在一些实现方式中,第二GUI还提供有存储模式配置控件。如图7所示,存储模式配置控件可以是选择控件,该选择控件被选中,则第二客户端发送的构成文件上传请求还携带存储模式,具体为高效存储模式,从而指示软件仓库102在存储构成文件时,先检测该构成文件是否已存储,若是,则放弃存储,若否,则执行存储。当选择控件未被选中时,构成文件上传请求还携带存储模式,具体为普通存储模式,或者不携带存储模式,如此,软件仓库102可以根据该构成文件上传请求,直接存储构成文件。
基于图4、图6所示实施例,软件仓库102还可以提供针对软件包的查询功能和/或删除功能。其中,执行软件包查询操作的客户端104与执行软件包下载操作的客户端104可以是同一客户端,也可以是不同客户端。执行软件包删除操作的客户端104与执行软件包上传操作的客户端104可以是同一客户端,也可以是不同客户端。本实施例以执行软件查询操作的客户端104为第三客户端,执行软件删除操作的客户端104为第四客户端进行示例说明。
在一些实现方式中,第三客户端可以向软件仓库102发送软件包查询请求,该软件包查询请求包括所述目标软件包的描述信息,例如包括目标软件包的名称等等,然后软件仓库102根据描述信息获得目标软件包的元数据,并向第三客户端返回目标软件包的元数据。其中,软件仓库102具体可以通过查询软件包的元数据仓库,获得与描述信息匹配的元数据,该元数据即为目标软件包的元数据。
在一些实现方式中,第四客户端可以向软件仓库102发送软件包删除请求,该软件包删除请求包括所述目标软件包的描述信息,例如包括目标软件包的名称等等,然后软件仓库102根据描述信息获得目标软件包的元数据,该元数据中包括目标软件包的构成文件的文件标识,例如目标软件包的构成文件的哈希值。软件仓库102可以根据构成文件的文件标识,删除构成文件。进一步地,为了彻底删除软件包,软件仓库102还可以删除目标软件包的构成文件的文件标识。
在一些实现方式中,软件仓库102也可以直接存储软件包,如此,软件仓库102接收到软件包下载请求时,可以根据硬件环境配置和目标软件包的描述信息,直接获取与硬件环境配置相匹配的目标软件包,无需动态构建目标软件包,提高软件上传、下载效率。
对应地,软件包上传过程具体为,软件仓库102接收软件包上传请求,该软件包上传请求包括目标软件包,接着软件仓库102存储该目标软件包。由于不同硬件环境配置的软件包可以包括相同的构成文件,为了提高存储效率,软件仓库102在存储目标软件包时,可以利用存储***的去重功能。具体地,当所述目标软件包在存储***中存在重复块时,软件仓库102还可以去除重复块,如此缓解无法去除各软件包中的重复文件存储的问题,提高存储效率。
上文结合图1至图7对本申请实施例提供的软件包管理方法进行了详细介绍,下面将结合附图对本申请实施例提供的装置、设备进行介绍。
参见图8所示的软件包管理装置的结构示意图,该装置800包括:
通信单元802,用于接收软件包下载请求,所述软件包下载请求包括硬件环境配置和目标软件包的描述信息;
管理单元804,用于根据所述描述信息和所述硬件环境配置,获得与所述硬件环境配置匹配的所述目标软件包;
所述通信单元802,还用于发送所述目标软件包。
在一些可能的实现方式中,所述管理单元804包括:
匹配子单元8042,用于根据所述描述信息和所述硬件环境配置,获得所述目标软件包的构成文件;
构建子单元8044,用于打包所述构成文件,获得所述目标软件包。
在一些可能的实现方式中,所述匹配子单元8042具体用于:
根据所述描述信息和所述硬件环境配置查询所述目标软件包的构成文件的文件标识;
根据所述文件标识获得所述目标软件包的构成文件。
在一些可能的实现方式中,所述装置800还包括:
存储单元806,用于在接收软件包下载请求之前,存储所述目标软件包的构成文件。
在一些可能的实现方式中,所述装置还包括:
存储单元806,用于在未存储所述目标软件包的构成文件时,存储所述目标软件包的构成文件。
在一些可能的实现方式中,所述通信单元802还用于:
接收软件包查询请求,所述软件包查询请求包括所述目标软件包的描述信息;
所述管理单元804还用于:
根据所述描述信息获得所述目标软件包的元数据;
所述通信单元802还用于:
返回所述目标软件包的元数据。
在一些可能的实现方式中,所述通信单元802还用于:
接收软件包删除请求,所述软件包删除请求包括所述目标软件包的描述信息;
所述管理单元804还用于:
根据所述描述信息获得所述目标软件包的元数据;
根据所述元数据中所述目标软件包的构成文件的文件标识,删除所述构成文件。
在一些可能的实现方式中,所述通信单元802具体用于:
接收多个软件包下载请求,所述多个软件包下载请求来自于不同硬件环境配置的客户端对目标软件包的下载操作;
所述管理单元804具体用于:
根据所述描述信息和所述硬件环境配置,从同一软件仓库地址获得与所述硬件环境配置匹配的所述目标软件包。
在一些可能的实现方式中,所述硬件环境配置包括操作***配置、处理器配置以及加速器配置。
根据本申请实施例的软件包管理装置800可对应于执行本申请实施例中描述的方法,并且软件包管理装置800的各个模块/单元的上述和其它操作和/或功能分别为了实现图4所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种软件包管理装置。参见图8所示的软件包管理装置的结构示意图,该装置900包括:
通信单元902,用于接收构成文件上传请求,所述构成文件上传请求用于请求上传目标软件包的构成文件;
存储单元904,用于存储所述目标软件包的构成文件。
在一些可能的实现方式中,所述构成文件上传请求包括目标软件包的构成文件。
在一些可能的实现方式中,所述构成文件上传请求包括目标软件包;
所述装置900还包括:
解包单元906,用于解包所述目标软件包,获得所述目标软件包的构成文件。
根据本申请实施例的软件包管理装置900可对应于执行本申请实施例中描述的方法,并且软件包管理装置900的各个模块/单元的上述和其它操作和/或功能分别为了实现图6所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种设备。该设备也可以是云环境或边缘环境中的计算机集群,也可以是台式机等端设备。该设备用于实现如图8示实施例中软件包管理装置800的功能。
图10提供了一种设备1000的结构示意图,如图10所示,设备1000包括总线1001、处理器1002、通信接口1003和存储器1004。处理器1002、存储器1004和通信接口1003之间通过总线1001通信。
总线1001可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器1002可以为中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
通信接口1003用于与外部通信。例如,通信接口1003可以接收软件包下载请求,发送目标软件包等等。
存储器1004可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器1004还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard drivedrive,HDD)或固态硬盘(solid state drive,SSD)。
其中,存储器1004中存储有可执行代码,处理器1002执行该可执行代码以执行前述软件包管理方法。
具体地,在实现图8所示实施例的情况下,且图8实施例中所描述的软件包管理装置800的各单元为通过软件实现的情况下,执行图8中的管理单元804功能所需的软件或程序代码存储在存储器1004中。
通信单元802功能通过通信接口1003实现。通信接口1003接收软件包下载请求,该软件包下载请求包括硬件环境配置和目标软件包的描述信息,然后通信接口1003将其通过总线1001传输至处理器1002,处理器1002执行存储器1004中存储的各单元对应的程序代码,如管理单元804对应的程序代码,以执行根据硬件环境配置和目标软件包的描述信息,获得与硬件环境匹配的目标软件包的步骤,然后通信接口1003再发送目标软件包,如发送该目标软件包至客户端,从而完成软件包下载。
本申请实施例还提供另一种设备。该设备用于实现如图9示实施例中软件包管理装置900的功能。
图11提供了另一种设备1100的结构示意图,如图11所示,设备1100包括总线1101、处理器1102、通信接口1103和存储器1104。处理器1102、存储器1104和通信接口1103之间通过总线1101通信。
通信接口1103用于与外部通信。例如,通信接口1103可以接收构成文件上传请求等等。存储器1104中存储有可执行代码,处理器1102执行该可执行代码以执行前述软件包管理方法。
具体地,在实现图9所示实施例的情况下,且图9实施例中所描述的软件包管理装置900的各单元为通过软件实现的情况下,执行图9中的解包单元906功能所需的软件或程序代码存储在存储器1104中。
通信单元902功能通过通信接口1103实现。通信接口1103接收构成文件上传请求,然后通信接口1103将其通过总线1101传输至处理器1102,处理器1102执行存储器1104中存储的各单元对应的程序代码,存储目标软件包的构成文件。
进一步地,当构成文件上传请求携带目标软件包时,处理器1102执行解包单元906对应的程序代码,以执行解包目标软件包,获得目标软件包的构成文件的步骤,然后存储该目标软件包的构成文件,完成目标软件包上传。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括指令,所述指令指示计算机执行上述应用于软件包管理装置800或软件包管理装置900的软件包管理方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括指令,所述指令指示计算机执行上述应用于软件包管理装置800或软件包管理装置900的软件包管理方法。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品被计算机执行时,所述计算机执行前述软件包管理方法的任一方法。该计算机程序产品可以为一个软件安装包,在需要使用前述软件包管理方法的任一方法的情况下,可以下载该计算机程序产品并在计算机上执行该计算机程序产品。

Claims (26)

1.一种软件包管理方法,其特征在于,所述方法包括:
接收软件包下载请求,所述软件包下载请求包括硬件环境配置和目标软件包的描述信息;
根据所述描述信息和所述硬件环境配置,获得与所述硬件环境配置匹配的所述目标软件包;
发送所述目标软件包。
2.根据权利要求1所述的方法,其特征在于,所述根据所述描述信息和所述硬件环境配置,获得与所述硬件环境配置匹配的所述目标软件包,包括:
根据所述描述信息和所述硬件环境配置,获得所述目标软件包的构成文件;
打包所述构成文件,获得所述目标软件包。
3.根据权利要求2所述的方法,其特征在于,所述方法包括:
根据所述描述信息和所述硬件环境配置查询所述目标软件包的构成文件的文件标识;
根据所述文件标识获得所述目标软件包的构成文件。
4.根据权利要求2或3所述的方法,其特征在于,在接收软件包下载请求之前,所述方法还包括:
存储所述目标软件包的构成文件。
5.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
在未存储所述目标软件包的构成文件时,存储所述目标软件包的构成文件。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
接收软件包查询请求,所述软件包查询请求包括所述目标软件包的描述信息;
根据所述描述信息获得所述目标软件包的元数据;
返回所述目标软件包的元数据。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
接收软件包删除请求,所述软件包删除请求包括所述目标软件包的描述信息;
根据所述描述信息获得所述目标软件包的元数据;
根据所述元数据中所述目标软件包的构成文件的文件标识,删除所述构成文件。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述方法包括:
接收多个软件包下载请求,所述多个软件包下载请求来自于不同硬件环境配置的客户端对目标软件包的下载操作;
根据所述描述信息和所述硬件环境配置,从同一软件仓库地址获得与所述硬件环境配置匹配的所述目标软件包。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述硬件环境配置包括操作***配置、处理器配置以及加速器配置。
10.一种软件包管理方法,其特征在于,所述方法包括:
接收构成文件上传请求,所述构成文件上传请求用于请求上传目标软件包的构成文件;
存储所述目标软件包的构成文件。
11.根据权利要求10所述的方法,其特征在于,所述构成文件上传请求包括目标软件包的构成文件。
12.根据权利要求10所述的方法,其特征在于,所述构成文件上传请求包括目标软件包;
所述方法还包括:
解包所述目标软件包,获得所述目标软件包的构成文件。
13.一种软件包管理装置,其特征在于,所述装置包括:
通信单元,用于接收软件包下载请求,所述软件包下载请求包括硬件环境配置和目标软件包的描述信息;
管理单元,用于根据所述描述信息和所述硬件环境配置,获得与所述硬件环境配置匹配的所述目标软件包;
所述通信单元,还用于发送所述目标软件包。
14.根据权利要求13所述的装置,其特征在于,所述管理单元包括:
匹配子单元,用于根据所述描述信息和所述硬件环境配置,获得所述目标软件包的构成文件;
构建子单元,用于打包所述构成文件,获得所述目标软件包。
15.根据权利要求14所述的装置,其特征在于,所述匹配子单元具体用于:
根据所述描述信息和所述硬件环境配置查询所述目标软件包的构成文件的文件标识;
根据所述文件标识获得所述目标软件包的构成文件。
16.根据权利要求14或15所述的装置,其特征在于,所述装置还包括:
存储单元,用于在接收软件包下载请求之前,存储所述目标软件包的构成文件。
17.根据权利要求14或15所述的装置,其特征在于,所述装置还包括:
存储单元,用于在未存储所述目标软件包的构成文件时,存储所述目标软件包的构成文件。
18.根据权利要求13至17任一项所述的装置,其特征在于,所述通信单元还用于:
接收软件包查询请求,所述软件包查询请求包括所述目标软件包的描述信息;
所述管理单元还用于:
根据所述描述信息获得所述目标软件包的元数据;
所述通信单元还用于:
返回所述目标软件包的元数据。
19.根据权利要求13至18任一项所述的装置,其特征在于,所述通信单元还用于:
接收软件包删除请求,所述软件包删除请求包括所述目标软件包的描述信息;
所述管理单元还用于:
根据所述描述信息获得所述目标软件包的元数据;
根据所述元数据中所述目标软件包的构成文件的文件标识,删除所述构成文件。
20.根据权利要求13至19任一项所述的装置,其特征在于,所述通信单元具体用于:
接收多个软件包下载请求,所述多个软件包下载请求来自于不同硬件环境配置的客户端对目标软件包的下载操作;
所述管理单元具体用于:
根据所述描述信息和所述硬件环境配置,从同一软件仓库地址获得与所述硬件环境配置匹配的所述目标软件包。
21.根据权利要求13至20任一项所述的装置,其特征在于,所述硬件环境配置包括操作***配置、处理器配置以及加速器配置。
22.一种软件包管理装置,其特征在于,所述装置包括:
通信单元,用于接收构成文件上传请求,所述构成文件上传请求用于请求上传目标软件包的构成文件;
存储单元,用于存储所述目标软件包的构成文件。
23.根据权利要求22所述的装置,其特征在于,所述构成文件上传请求包括目标软件包的构成文件。
24.根据权利要求22所述的装置,其特征在于,所述构成文件上传请求包括目标软件包;
所述装置还包括:
解包单元,用于解包所述目标软件包,获得所述目标软件包的构成文件。
25.一种设备,其特征在于,所述设备包括处理器和存储器;
所述处理器用于执行所述存储器中存储的指令,以使得所述设备执行如权利要求1至12中任一项所述的方法。
26.一种计算机可读存储介质,其特征在于,包括指令,所述指令指示设备执行如权利要求1至12中任一项所述的方法。
CN202010505645.6A 2020-05-29 2020-06-05 一种软件包管理方法、装置、设备及介质 Pending CN113741952A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010477029 2020-05-29
CN2020104770294 2020-05-29

Publications (1)

Publication Number Publication Date
CN113741952A true CN113741952A (zh) 2021-12-03

Family

ID=78727923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010505645.6A Pending CN113741952A (zh) 2020-05-29 2020-06-05 一种软件包管理方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN113741952A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114860273A (zh) * 2022-07-04 2022-08-05 广东睿江云计算股份有限公司 自适应软件包管理方法及管理***

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114860273A (zh) * 2022-07-04 2022-08-05 广东睿江云计算股份有限公司 自适应软件包管理方法及管理***

Similar Documents

Publication Publication Date Title
CN107967159B (zh) 一种配置文件应用的方法以及服务器
US11288053B2 (en) Conversion and restoration of computer environments to container-based implementations
KR102042723B1 (ko) 애플리케이션을 업데이트하는 방법
EP3488337B1 (en) Shared software libraries for computing devices
RU2421785C2 (ru) Автоматизированное управление драйверами устройств
US11403146B2 (en) Method, apparatus, and server for managing image across cloud servers
CN113296792B (zh) 存储方法、装置、设备、存储介质和***
US20090199175A1 (en) Dynamic Allocation of Virtual Application Server
US10411961B2 (en) Image management in cloud environments
WO2019056187A1 (zh) 应用部署方法、装置及***
JP2005018782A (ja) 分散ビルド環境におけるソフトウェアイメージ作成
US9590859B2 (en) Discovering resources of a distributed computing environment
CN109885744B (zh) 网页数据爬取方法、装置、***、计算机设备及存储介质
US10664278B2 (en) Method and apparatus for hardware acceleration in heterogeneous distributed computing
US11531526B1 (en) Creating portable serverless applications
CN112306621A (zh) 容器分层部署方法及***
US11900089B2 (en) Automatically configuring and deploying a software operator in a distributed computing environment from a package
CN112883006B (zh) 一种企业级容器镜像加速方法、装置、电子设备和存储介质
US11494184B1 (en) Creation of transportability container files for serverless applications
CN113608800A (zh) 项目启动方法、装置、电子设备及存储介质
CN113741952A (zh) 一种软件包管理方法、装置、设备及介质
US20100169271A1 (en) File sharing method, computer system, and job scheduler
CN109375946B (zh) 一种管理节点包管理器的组件包的方法及***
EP2680135B1 (en) Methods for updating applications
CN115309545A (zh) 访问处理方法及计算机设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right

Effective date of registration: 20220207

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Applicant after: Huawei Cloud Computing Technologies Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd.

TA01 Transfer of patent application right
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination