软件的安装方法及装置与流程

文档序号:20874574发布日期:2020-05-26 16:18阅读:306来源:国知局
软件的安装方法及装置与流程

本申请涉及软件安装领域,具体而言,涉及一种软件的安装方法及装置。



背景技术:

在linux系统中,由于linux内核能够以较少的资源高效的管理协调硬件资源,且服务端应用在部署时无需直观的可视化管理界面,所以有相当一部分应用程序选择具有linux内核的操作系统服务器作为部署平台。当前技术所采用的无处不在的“云”服务为应用的快速部署与扩展提供极大的便捷性。

但根据应用场景不同,有些应用出于安全性及可控性考虑需要部署在私有云平台,这类云典型的特征是只有非常有限的互联网访问权限,而部署的应用可能需要一些虽然体量不大但是数据繁多的依赖软件包。

另外,即便目标主机拥有互联网访问权限,可能网络状态也会因时因地出现不稳定的状况,作为统一的应用部署包,并不希望这些额外的因素影响应用的部署进程及体验。

在上述场景下,云主机没有相应的yum源网络权限,因此通常就会在在私有云主机能够访问的局域网内部搭建一个提供yum源服务的服务器,再修改需要访问yum源的主机配置。搭建本地源既能方便的提供yum源服务又能在一定程度上减少来自网络的安全隐患,但是这种方式不仅需要占据一台空闲的云主机,占用大量的硬件资源,而且从根本上并没有切断局域网和广域网的连接问题,可能还会存在网络攻击的隐患。另外,更改yum源也是一项极易出现失误的操作。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请的主要目的在于提供一种软件的安装方法及装置,以解决相关技术中采用一台空闲的云主机搭建yum源服务器,浪费硬件资源的问题。

为了实现上述目的,根据本申请的一个方面,提供了一种软件的安装方法,包括:采用包下载器下载目标软件及全部依赖软件的软件包;通过软件包打包器将下载的所述软件包打包成可移植包;在所述可移植包被移植到需要安装所述目标软件的目标主机上后,在所述目标主机上安装所述可移植包中的目标软件及全部依赖软件。

可选的,在所述目标主机上安装所述可移植包中的目标软件及全部依赖软件包括:根据所述可移植包生成本地源;依据所述本地源在所述目标主机上安装目标软件及全部依赖软件。

可选的,在所述目标主机上安装所述可移植包中的目标软件及全部依赖软件之前还包括:备份所述目标主机的系统源得到备份源;在所述目标主机上安装所述可移植包中的目标软件及全部依赖软件之后还包括:使用所述备份源替换所述本地源。

可选的,根据所述可移植包生成本地源包括:将所述可移植包中的目标软件及全部依赖软件的软件包部署到预设位置得到本地源。

可选的,在采用包下载器下载目标软件及全部依赖软件的软件包之前还包括:获取所述目标软件的依赖树,所述依赖树的根节点对应目标软件,根节点以外的其他节点对应目标软件的依赖软件,相邻一对父子节点表征父节点依赖子节点;则所述采用包下载器下载目标软件及全部依赖软件的软件包包括:采用包下载器下载所述目标软件的依赖树中全部节点对应的软件包;所述在所述目标主机上安装所述可移植包中的目标软件及全部依赖软件包括:按照所述目标软件的依赖树中的依赖关系,安装所述目标软件及全部依赖软件。

可选的,每个软件包包括安装程序和属性信息,属性信息包括版本,依据所述本地源在所述目标主机上安装目标软件及全部依赖软件包括:对于本地源的每个软件包,其安装步骤如下:判断所述目标主机是否安装有所述软件包中的软件;在所述目标主机没有安装所述软件包中的软件的情况下,安装该软件;在所述目标主机安装有所述软件包中的软件的情况下,判断所述目标主机上该软件的当前版本是否低于该软件包中的版本;在所述软件的当前版本低于软件包中的版本时,更新所述软件。

可选的,在通过软件包打包器将下载的所述软件包打包成可移植包之前包括:删除所有软件包中与所述目标软件无关的数据;则通过软件包打包器将下载的所述软件包打包成可移植包包括:通过软件包打包器将删除无关数据后的所有软件包打包成可移植包。

为了实现上述目的,根据本申请的另一方面,提供了一种软件的安装装置,包括:下载模块,用于采用包下载器下载目标软件及全部依赖软件的软件包;打包模块,用于通过软件包打包器将下载的所述软件包打包成可移植包;安装模块,用于在所述可移植包被移植到需要安装所述目标软件的目标主机上后,在所述目标主机上安装所述可移植包中的目标软件及全部依赖软件。

为了实现上述目的,根据本申请的另一方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序执行上述中任意一项所述的方法。

为了实现上述目的,根据本申请的另一方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述中任意一项所述的方法。

通过本申请,采用包下载器下载目标软件及其全部依赖软件的软件包;采用软件打包器将下载的所述软件包打包成可移植包,通过将所述可移植包移植到需要安装所述目标软件的目标主机上,然后在所述目标主机上安装所述可移植包中的目标软件及其全部依赖软件,解决了相关技术中采用一台空闲的云主机搭建yum源服务器,浪费硬件资源的问题。进而达到了根据可移植包,在目标主机上安装目标软件及其依赖,可以快速安装到位,且有效节省硬件资源消耗的效果。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例提供的软件的安装方法的流程图;

图2是根据本申请实施方式提供的软件的安装方法的流程图;以及

图3是根据本申请实施例提供的软件的安装装置的示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:

centos:一种基于linux内核的免费开源的企业级操作系统。

yum源:由于linux系统中特有的依赖关系,每个软件包都有自己的依赖路径,yum就是为了解决依赖关系而存在的。yum是“yellowdogupdater,modified”的缩写,是一个软件包管理器,yum从指定的地方(相关网站的rpm包地址或本地的rpm路径)自动下载rpm(red-hatpackagemanager,rpm软件包管理器)包并且安装,能够很好的解决依赖关系问题。

repotrack:linux平台的包下载器,不同于yum的download命令,它可以下载指定软件包以及其所有的依赖。

createrepo:linux平台的软件包打包器,它可以将指定的本地软件包打包成一个可移植的yum软件包。

相关技术在centos系统的一些私有云平台的应用场景中,由于私有云的目标主机通常没有访问互联网的权限,因无法在安装应用时需要安装依赖软件。即便目标主机拥有访问互联网的权限,也有可能产生各种网络故障的情况导致依赖软件的安装,从而影响在该目标主机上的应用部署继承及体验。

yum源是目标主机的软件包管理器,目标主机在具有访问互联网权限的局域网内搭建一个服务器以提供yum源服务,通过调用yum源从相关网站或者本地下载rpm包,并通过yum源安装该rpm包,上述rpm也即是依赖软件的软件包。

上述方式通过搭建本地源服务器,来提供yum源服务,不仅需要占据一台空闲的云主机,而且目标主机的局域网通过yum源与互联网建立有连接,在yum源下载rpm包的过程中,有可能会有来自互联网的网络攻击经过上述连接攻击目标主机。另外,更改yum源到上述局域网的操作过程本身极易出现失误。

在上述运行场景下,根据本申请的实施例,提供了一种软件的安装方法。

图1是根据本申请实施例的软件的安装方法的流程图。如图1所示,该方法包括以下步骤:

步骤s101,采用包下载器下载目标软件及全部依赖软件的软件包;

步骤s102,通过软件包打包器将下载的软件包打包成可移植包;

步骤s103,在可移植包被移植到需要安装目标软件的目标主机上后,在目标主机上安装可移植包中的目标软件及全部依赖软件。

通过上述步骤,采用包下载器下载目标软件及其全部依赖软件的软件包;采用软件打包器将下载的软件包打包成可移植包,通过将可移植包移植到需要安装目标软件的目标主机上,然后在目标主机上安装可移植包中的目标软件及其全部依赖软件,解决了相关技术中采用一台空闲的云主机搭建yum源服务器,浪费硬件资源的问题。进而达到了根据可移植包,在目标主机上安装目标软件及其依赖,可以快速安装到位,且有效节省硬件资源消耗的效果。

需要说明的是,上述目标软件在安装时需要依赖于的依赖软件,依赖软件安装可以依赖于其他的依赖软件,形成依赖关系。例如,目标软件1的安装依赖于依赖软件2,依赖软件2的安装依赖于依赖软件3……依赖软件n-1的安装依赖于依赖软件n,上述依赖软件2可以为目标软件1直接依赖的依赖,依赖软件3至依赖软件n为目标软件1间接依赖的子依赖。上述目标软件的安装可以依赖于多个依赖软件,依赖软件的安装也可以依赖于多个其他的依赖软件。例如,目标软件1的安装依赖于依赖软件20,依赖软件21,依赖软件22……依赖软件2n,其中,依赖软件20的安装依赖于依赖软件30,依赖软件31,依赖软件32……依赖软件3n。

上述采用包下载器下载目标软件,以及该目标软件的全部依赖软件的软件包。上述目标软件的全部依赖软件,包括上述目标软件安装直接依赖的依赖,以及间接依赖的子依赖。上述软件包可以为一个,也可以为多个,在本实施例中,上述软件包为一个,在该软件包中,包括目标软件,和目标软件安装所需的全部依赖。上述采用包下载器将目标软件及其全部依赖软件下载至本地计算机上,上述本地计算机还可以是本地服务器,本地主机等设备。

作为一种可选的实施例,上述包下载器可以是repotrack,采用repotrack下载目标软件和目标软件的全部依赖软件的软件包,在linux平台中,repotrack不同于一般的yum的下载指令(download指令),该repotrack可以下载指定的目标软件和该目标软件的全部依赖软件。

上述可移植包可以是具有可移植性的软件包,软件的可移植性是指一种计算机(服务器,主机等)上的软件移植到其他计算机上的能力,上述软件移植的过程,是指将安装在原计算机上的软件,安装到其他计算机上的过程,原计算机上不再安装有该软件。由于该包下载器将目标软件及其全部依赖软件下载到本地,可以是本地计算机、本地服务器或者本地主机等,但是目标软件及其全部依赖软件需要安装在目标主机(计算机,服务器等)上,因此需要将下载至本地的软件包移植到目标主机上去。

在将该软件包移植到目标主机上的过程中,可以采用多种方式,例如,直接移植,例如将该软件包打包成可移植包,然后将对应的可移植包移植到上述目标主机上去,以及其他的可以将该软件包从本地移植到目标主机上的方式。本实施例中,通过软件包打包器将下载的软件包打包成可移植包,将该软件包以可移植包的形式,移植到需要安装上述目标软件的目标主机上,不仅具有较高的复用性,而且还可以快速有效的进行移植,有效简化移植软件包的过程,减少软件包移植的成本。

作为一种可选的实施例,上述软件包打包器可以是createrepo,可以通过createrepo将上述软件包打包生成可移植软件包,也即是可移植包,通过将该可移植包移植到目标主机上,在目标主机上安装该目标软件及其全部的依赖软件,与相关技术中通过为软件包管理器yum搭建服务器,并更改主机配置,由yum从指定的路径或者网站自动下载目标软件及其依赖软件的软件包并安装的方式相比,由于无须重新搭建本地yum源服务器,具有减少硬件资源消耗的优点,解决了相关技术中采用一台空闲的云主机搭建yum源服务器,浪费硬件资源的问题。

上述在可移植包被移植到需要安装目标软件的目标主机上后,在目标主机上安装可移植包中的目标软件及全部依赖软件,也即是在目标主机的本地,安装目标软件及其全部依赖软件,与相关技术中通过yum源从互联网上下载目标软件及其依赖软件的方式相比,可以有效避免网络攻击的隐患,提高目标软件安装的安全性。

可选地,在目标主机上安装可移植包中的目标软件及全部依赖软件包括:根据可移植包生成本地源;依据本地源在目标主机上安装目标软件及全部依赖软件。

在目标主机上安装可移植包中的目标软件及其全部依赖软件之前,已经将上述可移植包移植到目标主机上,在目标主机上进行安装。根据可移植包生成本地源,再根据上述本地源在目标主机上安装目标软件及其全部依赖软件,其中,上述本地源可以是本地yum源。采用本地源对目标软件及其全部依赖软件进行安装,干扰因素较少。相比于相关技术中采用网络源,安装目标软件的依赖软件,具有不受网速影响,没有网络攻击的隐患等优点。

可选地,在目标主机上安装可移植包中的目标软件及全部依赖软件之前还包括:备份目标主机的系统源得到备份源;在目标主机上安装可移植包中的目标软件及全部依赖软件之后还包括:使用备份源替换本地源。

在将可移植包移植到目标主机上,根据可移植包生成本地源的情况下,由于目标主机本身具有系统源,上述系统源可以包括本地源或者网络源等其他源,用于实现相应的功能。在目标主机上安装可移植包的目标软件及其依赖软件之前,需要在目标主机上做好安装的准备。例如,可以删除目标主机上的系统源,但是会影响目标主机原有的功能和使用。

在本实施例中,采用备份主机的系统源得到备份源的方式,在上述目标主机上根据可移植包安装上述本地源,然后在主机上安装可移植包中的目标软件及全部依赖软件之后,使用备份源替换本地源,恢复目标主机的系统源,不影响后续的目标主机的系统源的使用和操作。上述本地源可以删除,以减少系统内存。

可选地,根据可移植包生成本地源包括:将可移植包中的目标软件及全部依赖软件的软件包部署到预设位置得到本地源。

上述根据可移植包生成本地源,可以通过更改目标主机上的系统源,可以将目标主机原有的系统源,按照可移植包的安装需求,更改成本地源,在安装完成后,将该本地源,更改回目标主机原有的系统源,但是,在更改过程中,容易出错,导致更改失败,影响使用。

还可以将该系统源删除,直接根据可移植包确定本地源。可以是将可移植包中的目标软件及全部依赖软件的软件包部署到预设位置得到本地源。例如,在linux中,yum源(本地源)全部放置在/etc/yum.repos.d/(存储文件夹的路径)中。

可选地,在采用包下载器下载目标软件及全部依赖软件的软件包之前还包括:获取目标软件的依赖树,依赖树的根节点对应目标软件,根节点以外的其他节点对应目标软件的依赖软件,相邻一对父子节点表征父节点依赖子节点;则采用包下载器下载目标软件及全部依赖软件的软件包包括:采用包下载器下载目标软件的依赖树中全部节点对应的软件包;在目标主机上安装可移植包中的目标软件及全部依赖软件包括:按照目标软件的依赖树中的依赖关系,安装目标软件及全部依赖软件。

由于一个目标软件的安装所依赖的依赖软件可以有多个层级的多个依赖软件,而且依赖软件之间的安装也是逐级依赖,因此,在安装目标软件及其依赖软件之前,需要先确定该目标软件与其全部依赖软件的依赖树,也即是依赖关系,在该依赖树中,依赖树的根节点对应目标软件,根节点以外的其他节点对应目标软件的依赖软件,相邻一对父子节点表征父节点依赖子节点,其中,该父子节点表示父子依赖之间的依赖关系,例如,父依赖软件的安装依赖于所有的子依赖软件,也即是所有的子依赖软件安装完成,才能进行父依赖软件的安装。

在目标软件及其全部的依赖软件具有上述依赖树的依赖关系的情况下,采用包下载器下载目标软件及全部依赖软件的软件包,可以采用包下载器下载目标软件的依赖树中全部节点对应的软件包,该软件包可以是一个软件包,包括上述目标软件及其所有依赖软件,上述软件包还可以为多个。上述软件包中的依赖软件,或者目标软件和依赖软件,之前按照依赖关系排序。上述排序可以是根据安装顺序确定,例如,本实施例中,基于子依赖软件安装父依赖软件,因此,子依赖软件在前,父依赖软件在后。上述排序还可以是其他的方式进行排序,例如,软件的下载时间,数据块大小等。

在目标软件及其全部的依赖软件具有上述依赖树的依赖关系的情况下,在主机上安装可移植包中的目标软件及全部依赖软件,可以按照目标软件的依赖树中的依赖关系,安装目标软件及全部依赖软件。可以是按照先安装子依赖软件,基于父依赖软件安装所需的子依赖软件均安装完成后,再安装父依赖软件,在所有的依赖软件安装完成后,基于安装的依赖软件,安装目标软件。

可选地,每个软件包包括安装程序和属性信息,属性信息包括版本,依据本地源在主机上安装目标软件及全部依赖软件包括:对于本地源的每个软件包,其安装步骤如下:判断目标主机是否安装有软件包中的软件;在目标主机没有安装软件包中的软件的情况下,则安装该软件;在目标主机安装有软件包中的软件的情况下,则判断目标主机上该软件的当前版本是否低于该软件包中的版本;在软件的当前版本低于软件包中的版本时,更新软件。

上述属性信息还可以包括依赖软件的软件包的大小,版本,数据类型,依赖软件的用于判断依赖软件的软件包对应的依赖软件,是否为目标主机需要安装的依赖软件的验证信息等。

上述在主机上安装目标软件及全部依赖软件的情况下,可以对每个依赖软件的软件包同时进行安装,多个依赖软件的软件包同时安装,或者同一父依赖软件的所有子依赖软件同时安装。同一层级之间的每个依赖软件的软件包的安装进程可以独立,互不干扰,不同层级之间的依赖软件由于依赖关系的存在,因此,必须在子依赖软件完成安装后,在能够进行父依赖软件的安装。

在同一层级的依赖软件相互独立的情况下,安装本地源的每个软件包,可以包括:判断目标主机是否安装有软件包中的软件;在该目标主机上没有安装上述软件包中的软件的情况下,则安装该软件;在该目标主机上安装有上述软件包中的软件的情况下,则判断目标主机上该软件的当前版本是否低于该软件包中的版本;在软件的当前版本低于软件包中的版本时,更新软件。在软件的当前版本不低于软件包中的版本的情况下,终止安装该软件。以避免重复安装或将较低版本的依赖软件替换安装较高版本依赖软件,导致软件故障或者不兼容等问题。

可选地,在通过软件包打包器将下载的软件包打包成可移植包之前包括:删除所有软件包中与目标软件无关的数据;则通过软件包打包器将下载的软件包打包成可移植包包括:通过软件包打包器将删除无关数据后的所有软件包打包成可移植包。

在下载的目标软件及其全部依赖软件的软件包中可以有该目标软件和依赖软件的各种文件或数据,在下载该软件包后,可以将该软件包中与安装目标软件和依赖软件无关的数据进行删除,可以有效减轻系统负担,降低所占内存,提高运算效率。上述物管数据,可以包括,软件包中的链接,广告信息等。

在将软件包中的无关数据删除后,再通过软件包打包器将下载的软件包打包成可移植包。也即是通过软件包打包器将删除无关数据后的所有软件包打包成可移植包。可以有效减轻可移植包的数据量,从而提高可移植包的移植的速度,并且可以是可移植包在安装目标软件及其依赖软件的过程中,更加高效。

需要说明的是,本实施例还提供了一种依赖软件安装的方法,作为一种可选的实施方式,下面对该实施方式进行详细说明。

如背景技术所述,现有技术是在私有云主机能够访问的局域网内部搭建一个提供yum源服务的服务器,再修改需要访问yum源的主机配置。但是,搭建本地源的方式不仅需要占据一台空闲的云主机,而且从根本上并没有切断局域网和广域网的连接问题,可能还会存在网络攻击的隐患。另外,更改yum源也是一项极易出现失误的操作。

本实施方式依托repotrack包灵活的管理指定软件包的所有依赖,以及createrepo快速打包功能,辅以自动化的系统yum源替代和恢复脚本,可以快速的将应用系统所依赖的软件包安装到位,且不影响后续的yum源更新操作。

图2是根据本申请实施方式提供的软件的安装方法的流程图,如图2所示,本实施方式主要包括以下步骤:

使用repotrack获取应用系统(即目标软件)依赖的软件包及其子依赖(对应图中的rpm包);剔除下载的依赖包中非应用系统的文件;使用createrepo打包下载好的依赖(对应图中的rpm元数据),并生成yum源的repo文件;将上述生成好的软件包拷贝到目标主机(对应图中的目标服务器)上;目标主机使用脚本自动备份目标主机的系统yum源;目标主机使用脚本自动将本地软件包部署到指定位置(例如图中的usr/local/yum),并调用yuminstall命令完成依赖软件包的安装和升级;将本地源移除并恢复之前备份的系统yum源。

本实施方式可以有效减少硬件资源消耗(无须重新搭建本地yum源服务器),应用系统的依赖可以灵活管理,自动化安装依赖,提高部署效率。

本申请实施例提供的软件的安装方法,通过采用包下载器下载目标软件及全部依赖软件的软件包;通过软件包打包器将下载的软件包打包成可移植包;在可移植包被移植到需要安装目标软件的目标主机上后,在目标主机上安装可移植包中的目标软件及全部依赖软件,解决了相关技术中采用一台空闲的云主机搭建yum源服务器,可能存在网络攻击隐患,且容易出现失误的问题。进而达到了根据包下载器指定软件包的所有依赖,以及软件包打包器快速打包功能,结合软件包管理器,可以快速的将应用系统所依赖的软件包安装到位的效果。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例还提供了一种软件的安装装置,需要说明的是,本申请实施例的软件的安装装置可以用于执行本申请实施例所提供的用于软件的安装方法。以下对本申请实施例提供的软件的安装装置进行介绍。

图3是根据本申请实施例提供的软件的安装装置的示意图。如图3所示,该装置包括:下载模块32,打包模块34和安装模块36,下面对该装置进行详细说明。

下载模块32,用于采用包下载器下载目标软件及全部依赖软件的软件包;打包模块34,用于通过软件包打包器将下载的软件包打包成可移植包;安装模块36,用于在可移植包被移植到需要安装目标软件的目标主机上后,在目标主机上安装可移植包中的目标软件及全部依赖软件。

可选的,安装模块36包括:生成单元,用于根据可移植包生成本地源;第一安装单元,用于依据本地源在目标主机上安装目标软件及全部依赖软件。

可选的,该装置还包括:备份模块,用于备份目标主机的系统源得到备份源;替换模块,用于使用备份源替换本地源。

可选的,生成单元包括:部署子单元,用于将可移植包中的目标软件及全部依赖软件的软件包部署到预设位置得到本地源。

可选的,该装置还包括:获取模块,用于获取目标软件的依赖树,依赖树的根节点对应目标软件,根节点以外的其他节点对应目标软件的依赖软件,相邻一对父子节点表征父节点依赖子节点;下载模块32包括:下载单元,用于采用包下载器下载目标软件的依赖树中全部节点对应的软件包;安装模块36包括:第二安装单元,用于按照目标软件的依赖树中的依赖关系,安装目标软件及全部依赖软件。

可选的,每个软件包包括安装程序和属性信息,属性信息包括版本,第一安装单元包括:对于本地源的每个软件包,其安装步骤如下:第一判断子单元,用于判断目标主机是否安装有软件包中的软件;安装子单元,用于在目标主机没有安装软件包中的软件的情况下,安装该软件;第二判断子单元,在目标主机安装有软件包中的软件的情况下,判断目标主机上该软件的当前版本是否低于该软件包中的版本;更新子单元,用于在软件的当前版本低于软件包中的版本时,更新软件。

可选的,该装置还包括:删除模块,用于删除所有软件包中与目标软件无关的数据;则通过软件包打包器将下载的软件包打包成可移植包包括:通过软件包打包器将删除无关数据后的所有软件包打包成可移植包。

本申请实施例提供的软件的安装装置,采用包下载器下载目标软件及其全部依赖软件的软件包;采用软件打包器将下载的软件包打包成可移植包,通过将可移植包移植到需要安装目标软件的目标主机上,然后在目标主机上安装可移植包中的目标软件及其全部依赖软件,解决了相关技术中采用一台空闲的云主机搭建yum源服务器,浪费硬件资源的问题。进而达到了根据可移植包,在目标主机上安装目标软件及其依赖,可以快速安装到位,且有效节省硬件资源消耗的效果。

软件的安装装置包括处理器和存储器,上述下载模块32,打包模块34和安装模块36等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来根据包下载器指定软件包的所有依赖,以及软件包打包器快速打包功能,结合软件包管理器,可以实现快速的将应用系统所依赖的软件包安装到位的效果。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现软件的安装方法。

本发明实施例提供了一种处理器,处理器用于运行程序,其中,程序运行时执行软件的安装方法。

本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:采用包下载器下载目标软件及全部依赖软件的软件包;通过软件包打包器将下载的软件包打包成可移植包;在可移植包被移植到需要安装目标软件的目标主机上后,在目标主机上安装可移植包中的目标软件及全部依赖软件。

可选的,在目标主机上安装可移植包中的目标软件及全部依赖软件包括:根据可移植包生成本地源;依据本地源在目标主机上安装目标软件及全部依赖软件。

可选的,在目标主机上安装可移植包中的目标软件及全部依赖软件之前还包括:备份目标主机的系统源得到备份源;在目标主机上安装可移植包中的目标软件及全部依赖软件之后还包括:使用备份源替换本地源。

可选的,根据可移植包生成本地源包括:将可移植包中的目标软件及全部依赖软件的软件包部署到预设位置得到本地源。

可选的,在采用包下载器下载目标软件及全部依赖软件的软件包之前还包括:获取目标软件的依赖树,依赖树的根节点对应目标软件,根节点以外的其他节点对应目标软件的依赖软件,相邻一对父子节点表征父节点依赖子节点;则采用包下载器下载目标软件及全部依赖软件的软件包包括:采用包下载器下载目标软件的依赖树中全部节点对应的软件包;在目标主机上安装可移植包中的目标软件及全部依赖软件包括:按照目标软件的依赖树中的依赖关系,安装目标软件及全部依赖软件。

可选的,每个软件包包括安装程序和属性信息,属性信息包括版本,依据本地源在目标主机上安装目标软件及全部依赖软件包括:对于本地源的每个软件包,其安装步骤如下:判断目标主机是否安装有软件包中的软件;在目标主机没有安装软件包中的软件的情况下,安装该软件;在目标主机安装有软件包中的软件的情况下,判断目标主机上该软件的当前版本是否低于该软件包中的版本;在软件的当前版本低于软件包中的版本时,更新软件。

可选的,在通过软件包打包器将下载的软件包打包成可移植包之前包括:删除所有软件包中与目标软件无关的数据;则通过软件包打包器将下载的软件包打包成可移植包包括:通过软件包打包器将删除无关数据后的所有软件包打包成可移植包。

本文中的设备可以是服务器、pc、pad、手机等。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:采用包下载器下载目标软件及全部依赖软件的软件包;通过软件包打包器将下载的软件包打包成可移植包;在可移植包被移植到需要安装目标软件的目标主机上后,在目标主机上安装可移植包中的目标软件及全部依赖软件。

可选的,在目标主机上安装可移植包中的目标软件及全部依赖软件包括:根据可移植包生成本地源;依据本地源在目标主机上安装目标软件及全部依赖软件。

可选的,在目标主机上安装可移植包中的目标软件及全部依赖软件之前还包括:备份目标主机的系统源得到备份源;在目标主机上安装可移植包中的目标软件及全部依赖软件之后还包括:使用备份源替换本地源。

可选的,根据可移植包生成本地源包括:将可移植包中的目标软件及全部依赖软件的软件包部署到预设位置得到本地源。

可选的,在采用包下载器下载目标软件及全部依赖软件的软件包之前还包括:获取目标软件的依赖树,依赖树的根节点对应目标软件,根节点以外的其他节点对应目标软件的依赖软件,相邻一对父子节点表征父节点依赖子节点;则采用包下载器下载目标软件及全部依赖软件的软件包包括:采用包下载器下载目标软件的依赖树中全部节点对应的软件包;在目标主机上安装可移植包中的目标软件及全部依赖软件包括:按照目标软件的依赖树中的依赖关系,安装目标软件及全部依赖软件。

可选的,每个软件包包括安装程序和属性信息,属性信息包括版本,依据本地源在目标主机上安装目标软件及全部依赖软件包括:对于本地源的每个软件包,其安装步骤如下:判断目标主机是否安装有软件包中的软件;在目标主机没有安装软件包中的软件的情况下,安装该软件;在目标主机安装有软件包中的软件的情况下,判断目标主机上该软件的当前版本是否低于该软件包中的版本;在软件的当前版本低于软件包中的版本时,更新软件。

可选的,在通过软件包打包器将下载的软件包打包成可移植包之前包括:删除所有软件包中与目标软件无关的数据;则通过软件包打包器将下载的软件包打包成可移植包包括:通过软件包打包器将删除无关数据后的所有软件包打包成可移植包。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1