CN114070846A - Linux操作系统下软件包仓库的同步方法以及装置 - Google Patents
Linux操作系统下软件包仓库的同步方法以及装置 Download PDFInfo
- Publication number
- CN114070846A CN114070846A CN202111427661.9A CN202111427661A CN114070846A CN 114070846 A CN114070846 A CN 114070846A CN 202111427661 A CN202111427661 A CN 202111427661A CN 114070846 A CN114070846 A CN 114070846A
- Authority
- CN
- China
- Prior art keywords
- software package
- source data
- downloading
- downloaded
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 230000008569 process Effects 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 241000109539 Conchita Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开一种Linux操作系统下软件包仓库的同步方法以及装置,涉及计算机技术领域,能够解决Linux系统中软件包无法下载的技术问题。所述方法包括:从软件包提供方获取软件包源数据;对所述软件包源数据进行处理,得到软件包源数据列表;基于所述软件包源数据列表,从所述软件包提供方下载软件包至本地。本发明实施例应用于在Linux操作系统下对软件包进行下载。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种Linux操作系统下软件包仓库的同步方法以及装置。
背景技术
目前,Linux操作系统凭借其稳定性,安全性,便利性以及资源消耗少等优势,在计算机领域得到了广泛应用。
在Linux系统中的文件有两种数据:元数据以及数据,其中,数据泛指普通文件中的实际数据,而元数据用来描述一个文件的特征的系统数据。然而,在Linux操作系统进行软件包仓库的同步时,在元数据文件损坏的情况下,或者元数据文件与软件包的对应关系出现错误时,则无法正常下载软件包。
因此,目前亟待解决Linux系统中软件包无法下载这一技术问题。
发明内容
有鉴于此,本发明实施例提供一种Linux操作系统下软件包仓库的同步方法、装置、电子设备及存储介质,能够解决Linux系统中软件包无法下载的技术问题。
第一方面,本发明实施例提供一种Linux操作系统下软件包仓库的同步方法,所述方法包括:
从软件包提供方获取软件包源数据;
对所述软件包源数据进行处理,得到软件包源数据列表;
基于所述软件包源数据列表,从所述软件包提供方下载软件包至本地。
可选的,所述从软件包提供方获取软件包源数据,包括:
获取软件包提供方发布的软件包发布信息;
从所述软件包发布信息中,提取软件包源数据。
可选的,所述对所述软件包源数据进行处理,得到软件包源数据列表,包括:
提取所述软件包源数据中的信息;
依据提取的所述信息,建立软件包源数据列表;所述软件包源数据列表中包括软件包的名称、版本号和下载路径。
可选的,所述基于所述软件包源数据列表,从所述软件包提供方下载软件包至本地,包括:
根据所述源数据列表中的软件包名称、版本号和下载路径信息,将对应的软件包下载至本地的指定位置。
可选的,所述在根据所述源数据列表中的软件包名称、版本号和下载路径信息,将对应的软件包下载至本地的指定位置,包括:
检查所述指定位置是否存在与待下载的软件包同名的软件包;
若所述指定位置存在与待下载的软件包同名的软件包,则判断距离当前最近的一次软件包下载过程中,是否发生过下载中断事件;
若在距离当前最近的一次软件包下载过程中,发生过下载中断事件,则将距离当前最近的一次软件包下载过程中所下载的最后预定个数的软件包删除,并重新下载删除的所述预定个数的软件包。
可选的,在基于所述软件包源数据列表,从所述软件包提供方下载软件包至本地之后,所述方法还包括:
基于已下载的软件包,建立元数据文件;
并基于所述元数据文件,将已下载的软件包作为软件包源进行发布。
可选的,所述基于已下载的软件包,建立元数据文件,包括:
确定已下载的软件包所支持的处理器架构;
基于各软件包所支持的处理器架构,建立与所支持的处理器架构相适配的元数据文件。
第二方面,本发明实施例提供一种Linux操作系统下软件包仓库的同步装置,所述装置包括:
获取模块,用于从软件包提供方获取软件包源数据;
处理模块,用于对所述软件包源数据进行处理,得到软件包源数据列表;
下载模块,用于基于所述软件包源数据列表,从所述软件包提供方下载软件包至本地。
可选的,所述获取模块具体用于:
获取软件包提供方发布的软件包发布信息;
从所述软件包发布信息中,提取软件包源数据。
可选的,所述处理模块包括:
提取单元,用于提取所述软件包源数据中的信息;
建立单元,用于依据提取的所述信息,建立软件包源数据列表;所述软件包源数据列表中包括软件包的名称、版本号和下载路径。
可选的,所述下载模块具体用于:
根据所述源数据列表中的软件包名称、版本号和下载路径信息,将对应的软件包下载至本地的指定位置。
可选的,所述下载模块包括:
检查单元,用于检查所述指定位置是否存在与待下载的软件包同名的软件包;
判断单元,用于若所述指定位置存在与待下载的软件包同名的软件包,则判断距离当前最近的一次软件包下载过程中,是否发生过下载中断事件;
重新下载单元,用于若在距离当前最近的一次软件包下载过程中,发生过下载中断事件,则将距离当前最近的一次软件包下载过程中所下载的最后预定个数的软件包删除,并重新下载删除的所述预定个数的软件包。
可选的,所述装置还包括:
建立模块,用于基于已下载的软件包,建立元数据文件;
发布模块,用于基于所述元数据文件,将已下载的软件包作为软件包源进行发布。
可选的,所述建立模块具体用于:
确定已下载的软件包所支持的处理器架构;
基于各软件包所支持的处理器架构,建立与所支持的处理器架构相适配的元数据文件。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行本发明的任一实施例提供的Linux操作系统下软件包仓库的同步方法。
第四方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一实现方式所述的方法。
本发明的实施例提供的Linux操作系统下软件包仓库的同步方法、装置、电子设备及存储介质,能够从软件包提供方获取软件包源数据,对所述软件包源数据进行处理,得到软件包源数据列表,基于所述软件包源数据列表,从所述软件包提供方下载软件包至本地。这样一来,通过直接获取软件包源数据,进而根据软件包源数据进行处理,得到软件包源数据列表,最后根据软件包源数据列表,即可从软件包提供方下载软件包至本地,而无需再下载软件包时采用软件包对应的元数据,从而使得本发明实施例即使在在元数据文件损坏的情况下,或者元数据文件与软件包的对应关系出现错误时,仍然能够正常下载软件包,从而解决了Linux系统中软件包无法下载这一技术问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种Linux操作系统下软件包仓库的同步方法的流程示意图;
图2为本发明实施例提供的一种Linux操作系统下软件包仓库的同步装置的结构示意图;
图3为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供了一种Linux操作系统下软件包仓库的同步方法,参见图1,该方法可以包括:
S11,从软件包提供方获取软件包源数据;
具体而言,在Linux系统中,经常需要对各种软件包仓库进行同步,在此过程中,需要首先下载需要同步的软件包仓库中包括的所有软件包。在下载这些软件包之前,首先可以获取各软件包的源数据,包括各软件包的名称,版本,下载路径等信息。
S12,对所述软件包源数据进行处理,得到软件包源数据列表;
具体而言,可以对各软件包的各项信息进行筛选以及处理,以形成包含多个软件包的各项信息的软件源数据列表。在软件包列表中包含了各软件包的用于进行下载所需的信息,如各软件包的名称,版本,下载路径等信息。
S13,基于所述软件包源数据列表,从所述软件包提供方下载软件包至本地。
根据软件包源数据列表中各软件包的信息,例如,针对任一软件包,可以根据该软件包的下载地址,对该软件包进行下载。在一种可能的实现方式中,一个下载网址中有多个软件包,可以根据该下载网址对多个软件包进行下载。因此,在上述的步骤中,在采用数据包源数据的情况下,即可实现对软件包的下载,而无需通过Linux系统中的元数据,因此在元数据文件,例如repomd.xml,出现损坏的情况下,也可以实现对软件包的下载。另外,需要说明的是,Linux系统中在下载软件包时需要利用元数据文件,除了上述元数据文件损坏的情况,在网站中软件包出现新增或者删除的情况下,以及软件包出现版本更新的情况时,如果元数据没有进行实时同步更新,在Linux中同样无法实现对软件包的下载,而本发明实施例并不需要用到元数据文件,因此即使出现上述的任一情景,仍可实现对软件包的下载。
另一方面,目前的同步工具在对某一软件包进行下载时,如果该软件包的适配处理器架构类型与当前本地平台的处理器架构类型不一致,例如,软件包A的适配处理器架构类型为x86,而当前平台的处理器架构类型为ARM64,则无法将软件包A下载至本地平台上。而在本发明实施例中,通过软件包源数据实现对所有软件包的下载,无需考虑两者的处理器架构类型是否一致,因此在对软件包进行下载时,即使两者的处理器架构类型不一致,仍可实现下载软件包的功能。
需要说明的是,本发明实施例中的Linux系统包括centos全系列,redhat全系列,银河麒麟v10全系列。
本发明的实施例提供的Linux操作系统下软件包仓库的同步方法,能够从软件包提供方获取软件包源数据,对所述软件包源数据进行处理,得到软件包源数据列表,基于所述软件包源数据列表,从所述软件包提供方下载软件包至本地。这样一来,通过直接获取软件包源数据,进而根据软件包源数据进行处理,得到软件包源数据列表,最后根据软件包源数据列表,即可从软件包提供方下载软件包至本地,而无需再下载软件包时采用软件包对应的元数据,从而使得本发明实施例即使在在元数据文件损坏的情况下,或者元数据文件与软件包的对应关系出现错误时,仍然能够正常下载软件包,从而解决了Linux系统中软件包无法下载这一技术问题。
可选的,在本发明的一个实施例中,步骤S11中,所述从软件包提供方获取软件包源数据,可以包括:获取软件包提供方发布的软件包发布信息;从所述软件包发布信息中,提取软件包源数据。
在本发明实施例中,软件包发布信息是指软件包的下载网址中发布的信息,其中包括各个软件包的多种信息,例如软件包的名称,版本,下载路径,文件大小,最近访问时间,数据改动时间,元数据改动时间等信息。从上述发布信息中可以根据下载软件包的需要,提取相应的软件包源数据。
可选的,在本发明的一个实施例中,步骤S12中,所述对所述软件包源数据进行处理,得到软件包源数据列表,可以包括:提取所述软件包源数据中的信息;依据提取的所述信息,建立软件包源数据列表;所述软件包源数据列表中包括软件包的名称、版本号和下载路径。
在本发明实施例中,可以在获得多个软件包对应的多项源数据之后,对多项源数据进行处理,可以按照软件包的类型进行分类,将属于同一类型的软件包进行归类。然后对同一类中的各软件包按照名称进行排序,然后将属于同一软件包的上述各种信息进行分类,以获得软件包源数据列表,进而可以从软件包源数据列表中获取各软件包的名称、版本号和下载路径信息。
可选的,在本发明的一个实施例中,步骤S13中,所述基于所述软件包源数据列表,从所述软件包提供方下载软件包至本地,包括:根据所述源数据列表中的软件包名称、版本号和下载路径信息,将对应的软件包下载至本地的指定位置。
在本发明实施例中,可以根据软件包的名称以及版本号在软件包提供方(具体可以是软件包的下载地址)查询并定位相应的软件包所在的位置,然后根据相应的下载地址对该软件包进行下载。在具体实现过程中,可以采用Linux系统中curl以及wget对软件包进行下载。
其中,curl是一个命令行工具,通过指定的URL(Uniform Resource Locator,统一资源定位系统)来上传或下载数据,并将数据展示出来,在本发明实施例中可以通过URL地址对所有的软件包进行下载。wget是在Linux下开发的开放源代码的一个下载文件的工具,可以用于软件或从远程服务器恢复备份到本地服务器,同样可以在本发明实施例中用于对软件包进行下载。
可选的,在本发明的一个实施例中,所述根据所述源数据列表中的软件包名称、版本号和下载路径信息,将对应的软件包下载至本地的指定位置,可以包括:检查所述指定位置是否存在与待下载的软件包同名的软件包;若所述指定位置存在与待下载的软件包同名的软件包,则判断距离当前最近的一次软件包下载过程中,是否发生过下载中断事件;若在距离当前最近的一次软件包下载过程中,发生过下载中断事件,则将距离当前最近的一次软件包下载过程中所下载的最后预定个数的软件包删除,并重新下载删除的所述预定个数的软件包。
在现有技术中,同步工具在下载软件包的过程中,常常会出现下载中断的情况,而当同步工具在中断之后继续下载软件包时,往往在检测到软件包的同名文件之后,不会对下载中断的文件进行重新下载,因此会出现下载中断而造成的损坏软件包,进而造成用户无法正常使用软件包的困难。
为了解决上述技术问题,在本发明实施例中,对任一软件包进行下载之前,首先检查在指定的下载存储路径下,是否存在于该软件包同名的软件包,若存在则说明已经进行了下载操作,进而结合距离当前最近一次下载过程中的下载中断情况,对上述下载过程是否正常完成进行判断。若出现了下载中断,则表明了该软件包并未完成正常下载,该软件包无法正常使用,则抛弃最近的预设个数的软件包,例如两个软件包,对这两个软件包进行重新下载,以完成软件包的正常下载。采取上述的下载方式,能够保证下载的所有软件包的完整性以及正确性,避免了下载中断造成的软件包残缺的现象。
可选的,在本发明的一个实施例中,在步骤S13之后,所述方法还可以包括:基于已下载的软件包,建立元数据文件;并基于所述元数据文件,将已下载的软件包作为软件包源进行发布。
在本发明实施例中,在对所有软件包下载完成之后,可以采用createrepo命令为这些已下载的软件包创建软件包仓库,并为存放于本地特定位置的众多rpm(Red-HatPackage Manager,RedHat软件包管理工具)格式的软件包建立元数据文件,然后根据描述各软件包的信息,建立元数据文件。Nginx是一个高性能的HTTP(Hypertext TransferProtocol,超文本传输协议)和反向代理web服务器,本发明实施例可以采用Nginx将已下载的软件包作为软件包源进行发布,这样就实现了自动发布软件包源,解决了现有技术中同步工具无法自动发布软件包源这一问题。同时用户也可以根据实际需要以及前述建立的元数据文件,下载相应的软件包。
可选的,在本发明的一个实施例中,所述基于已下载的软件包,建立元数据文件,包括:确定已下载的软件包所支持的处理器架构;基于各软件包所支持的处理器架构,建立与所支持的处理器架构相适配的元数据文件。
在现有技术中,主流的处理器分为x86架构以及ARM64架构,两者的指令集完全不同,在对软件包进行下载之后可以根据软件包所对应的处理器架构,生成与该架构适配的元数据文件,这样用户可以根据元数据文件获得软件包对应的处理器架构的类型,进而能够根据本地平台的处理器架构类型获取相应的软件包,避免了下载的软件包的类型与处理器的架构不能适配的情况。
相应的,如图2所示,本发明的实施例还提供一种Linux操作系统下软件包仓库的同步装置2,包括:
获取模块21,用于从软件包提供方获取软件包源数据;
处理模块22,用于对所述软件包源数据进行处理,得到软件包源数据列表;
下载模块23,用于基于所述软件包源数据列表,从所述软件包提供方下载软件包至本地。
本发明的实施例提供的Linux操作系统下软件包仓库的同步装置,能够从软件包提供方获取软件包源数据,对所述软件包源数据进行处理,得到软件包源数据列表,基于所述软件包源数据列表,从所述软件包提供方下载软件包至本地。这样一来,通过直接获取软件包源数据,进而根据软件包源数据进行处理,得到软件包源数据列表,最后根据软件包源数据列表,即可从软件包提供方下载软件包至本地,而无需再下载软件包时采用软件包对应的元数据,从而使得本发明实施例即使在在元数据文件损坏的情况下,或者元数据文件与软件包的对应关系出现错误时,仍然能够正常下载软件包,从而解决了Linux系统中软件包无法下载这一技术问题。
可选的,获取模块21具体用于:
获取软件包提供方发布的软件包发布信息;
从所述软件包发布信息中,提取软件包源数据。
可选的,处理模块22包括:
提取单元,用于提取所述软件包源数据中的信息;
建立单元,用于依据提取的所述信息,建立软件包源数据列表;所述软件包源数据列表中包括软件包的名称、版本号和下载路径。
可选的,下载模块23具体用于:
根据所述源数据列表中的软件包名称、版本号和下载路径信息,将对应的软件包下载至本地的指定位置。
可选的,下载模块23包括:
检查单元,用于检查所述指定位置是否存在与待下载的软件包同名的软件包;
判断单元,用于若所述指定位置存在与待下载的软件包同名的软件包,则判断距离当前最近的一次软件包下载过程中,是否发生过下载中断事件;
重新下载单元,用于若在距离当前最近的一次软件包下载过程中,发生过下载中断事件,则将距离当前最近的一次软件包下载过程中所下载的最后预定个数的软件包删除,并重新下载删除的所述预定个数的软件包。
可选的,装置2还包括:
建立模块,用于基于已下载的软件包,建立元数据文件;
发布模块,用于基于所述元数据文件,将已下载的软件包作为软件包源进行发布。
可选的,所述建立模块具体用于:
确定已下载的软件包所支持的处理器架构;
基于各软件包所支持的处理器架构,建立与所支持的处理器架构相适配的元数据文件。
本发明实施例提供的系统配置信息预测装置与前述的Linux操作系统下软件包仓库的同步方法属于同一发明构思,未在系统配置信息预测装置中描述的技术细节可参见前述的Linux操作系统下软件包仓库的同步方法中的相关描述,在此不再赘述。
相应的,本发明实施例还提供一种电子设备,图3为本发明电子设备一个实施例的结构示意图,可以实现本发明图1所示实施例的流程。如图3所示,上述电子设备可以包括:壳体31、处理器32、存储器33、电路板34和电源电路35,其中,电路板34安置在壳体31围成的空间内部,处理器32和存储器33设置在电路板34上;电源电路35,用于为上述电子设备的各个电路或器件供电;存储器33用于存储可执行程序代码;处理器32通过读取存储器33中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的方法。
处理器32对上述步骤的具体执行过程以及处理器32通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1所示实施例的描述,在此不再赘述。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
此外,本发明的实施例还提供一种计算机程序介质,该计算机程序介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明任一实施例提供的方法,因此也能实现相应的有益技术效果,前文已经进行了相应说明,此处不再赘述。
本发明实施例提供的Linux操作系统下软件包仓库的同步方法、装置、电子设备及介质,能够从软件包提供方获取软件包源数据,对所述软件包源数据进行处理,得到软件包源数据列表,基于所述软件包源数据列表,从所述软件包提供方下载软件包至本地。这样一来,通过直接获取软件包源数据,进而根据软件包源数据进行处理,得到软件包源数据列表,最后根据软件包源数据列表,即可从软件包提供方下载软件包至本地,而无需再下载软件包时采用软件包对应的元数据,从而使得本发明实施例即使在在元数据文件损坏的情况下,或者元数据文件与软件包的对应关系出现错误时,仍然能够正常下载软件包,从而解决了Linux系统中软件包无法下载这一技术问题。进一步地,本发明实施例还可以从软件包提供方发布的软件包发布信息中快速提取的方式,获取软件包源数据。此外,本发明实施例还可以提取所述软件包源数据中的信息,依据提取的所述信息,建立软件包源数据列表,所述软件包源数据列表中包括软件包的名称、版本号和下载路径,从而便于对软件包进行下载以及同步。更进一步的,本发明实施例还可以根据上述源数据列表中的软件包名称、版本号和下载路径信息,实现将对应的软件包下载至本地的指定位置。本发明实施例还可以在下载软件包时,检查所述指定位置是否存在与待下载的软件包同名的软件包;若所述指定位置存在与待下载的软件包同名的软件包,则判断距离当前最近的一次软件包下载过程中,是否发生过下载中断事件;若在距离当前最近的一次软件包下载过程中,发生过下载中断事件,则将距离当前最近的一次软件包下载过程中所下载的最后预定个数的软件包删除,并重新下载删除的所述预定个数的软件包,从而确保了下载的软件包的完整性和正确性。在完成软件包的下载之后,本发明实施例还可以基于已下载的软件包,建立元数据文件,并基于所述元数据文件,将已下载的软件包作为软件包源进行发布,以实现自动发布软件包源的功能。本发明实施例还提供了一种生成元数据文件的具体方式为:确定已下载的软件包所支持的处理器架构,基于各软件包所支持的处理器架构,建立与所支持的处理器架构相适配的元数据文件,从而避免了下载的软件包的类型与处理器的架构不能适配的情况。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (16)
1.一种Linux操作系统下软件包仓库的同步方法,其特征在于,包括:
从软件包提供方获取软件包源数据;
对所述软件包源数据进行处理,得到软件包源数据列表;
基于所述软件包源数据列表,从所述软件包提供方下载软件包至本地。
2.根据权利要求1所述的方法,其特征在于,所述从软件包提供方获取软件包源数据,包括:
获取软件包提供方发布的软件包发布信息;
从所述软件包发布信息中,提取软件包源数据。
3.根据权利要求1所述的方法,其特征在于,所述对所述软件包源数据进行处理,得到软件包源数据列表,包括:
提取所述软件包源数据中的信息;
依据提取的所述信息,建立软件包源数据列表;所述软件包源数据列表中包括软件包的名称、版本号和下载路径。
4.根据权利要求3所述的方法,其特征在于,所述基于所述软件包源数据列表,从所述软件包提供方下载软件包至本地,包括:
根据所述源数据列表中的软件包名称、版本号和下载路径信息,将对应的软件包下载至本地的指定位置。
5.根据权利要求4所述的方法,其特征在于,所述在根据所述源数据列表中的软件包名称、版本号和下载路径信息,将对应的软件包下载至本地的指定位置,包括:
检查所述指定位置是否存在与待下载的软件包同名的软件包;
若所述指定位置存在与待下载的软件包同名的软件包,则判断距离当前最近的一次软件包下载过程中,是否发生过下载中断事件;
若在距离当前最近的一次软件包下载过程中,发生过下载中断事件,则将距离当前最近的一次软件包下载过程中所下载的最后预定个数的软件包删除,并重新下载删除的所述预定个数的软件包。
6.根据权利要求1所述的方法,其特征在于,在基于所述软件包源数据列表,从所述软件包提供方下载软件包至本地之后,所述方法还包括:
基于已下载的软件包,建立元数据文件;
并基于所述元数据文件,将已下载的软件包作为软件包源进行发布。
7.根据权利要求6所述的方法,其特征在于,所述基于已下载的软件包,建立元数据文件,包括:
确定已下载的软件包所支持的处理器架构;
基于各软件包所支持的处理器架构,建立与所支持的处理器架构相适配的元数据文件。
8.一种Linux操作系统下软件包仓库的同步装置,其特征在于,包括:
获取模块,用于从软件包提供方获取软件包源数据;
处理模块,用于对所述软件包源数据进行处理,得到软件包源数据列表;
下载模块,用于基于所述软件包源数据列表,从所述软件包提供方下载软件包至本地。
9.根据权利要求8所述的装置,其特征在于,所述获取模块具体用于:
获取软件包提供方发布的软件包发布信息;
从所述软件包发布信息中,提取软件包源数据。
10.根据权利要求8所述的装置,其特征在于,所述处理模块包括:
提取单元,用于提取所述软件包源数据中的信息;
建立单元,用于依据提取的所述信息,建立软件包源数据列表;所述软件包源数据列表中包括软件包的名称、版本号和下载路径。
11.根据权利要求10所述的装置,其特征在于,所述下载模块具体用于:
根据所述源数据列表中的软件包名称、版本号和下载路径信息,将对应的软件包下载至本地的指定位置。
12.根据权利要求11所述的装置,其特征在于,所述下载模块包括:
检查单元,用于检查所述指定位置是否存在与待下载的软件包同名的软件包;
判断单元,用于若所述指定位置存在与待下载的软件包同名的软件包,则判断距离当前最近的一次软件包下载过程中,是否发生过下载中断事件;
重新下载单元,用于若在距离当前最近的一次软件包下载过程中,发生过下载中断事件,则将距离当前最近的一次软件包下载过程中所下载的最后预定个数的软件包删除,并重新下载删除的所述预定个数的软件包。
13.根据权利要求8所述的装置,其特征在于,所述装置还包括:
建立模块,用于基于已下载的软件包,建立元数据文件;
发布模块,用于基于所述元数据文件,将已下载的软件包作为软件包源进行发布。
14.根据权利要求13所述的装置,其特征在于,所述建立模块具体用于:
确定已下载的软件包所支持的处理器架构;
基于各软件包所支持的处理器架构,建立与所支持的处理器架构相适配的元数据文件。
15.一种电子设备,其特征在于,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述1~7中任一权利要求所述的方法。
16.一种计算机程序介质,其特征在于,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~7任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111427661.9A CN114070846A (zh) | 2021-11-25 | 2021-11-25 | Linux操作系统下软件包仓库的同步方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111427661.9A CN114070846A (zh) | 2021-11-25 | 2021-11-25 | Linux操作系统下软件包仓库的同步方法以及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114070846A true CN114070846A (zh) | 2022-02-18 |
Family
ID=80276890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111427661.9A Pending CN114070846A (zh) | 2021-11-25 | 2021-11-25 | Linux操作系统下软件包仓库的同步方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114070846A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102654835A (zh) * | 2012-05-03 | 2012-09-05 | 中标软件有限公司 | Linux操作系统发行制作方法 |
CN104461567A (zh) * | 2014-12-24 | 2015-03-25 | 北京奇虎科技有限公司 | 软件包的发布方法及系统 |
CN104750515A (zh) * | 2015-03-03 | 2015-07-01 | 惠州Tcl移动通信有限公司 | 固件版本升级的方法及系统 |
JP2017055379A (ja) * | 2015-09-08 | 2017-03-16 | 船井電機株式会社 | 情報機器および配信装置 |
CN109739532A (zh) * | 2018-12-13 | 2019-05-10 | 北京计算机技术及应用研究所 | 一种国产Linux操作系统上的软件更新方法 |
US20210200536A1 (en) * | 2019-12-31 | 2021-07-01 | Shenzhen Jingtai Technology Co., Ltd. | Drug research and development software repository and software package management system |
-
2021
- 2021-11-25 CN CN202111427661.9A patent/CN114070846A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102654835A (zh) * | 2012-05-03 | 2012-09-05 | 中标软件有限公司 | Linux操作系统发行制作方法 |
CN104461567A (zh) * | 2014-12-24 | 2015-03-25 | 北京奇虎科技有限公司 | 软件包的发布方法及系统 |
CN104750515A (zh) * | 2015-03-03 | 2015-07-01 | 惠州Tcl移动通信有限公司 | 固件版本升级的方法及系统 |
JP2017055379A (ja) * | 2015-09-08 | 2017-03-16 | 船井電機株式会社 | 情報機器および配信装置 |
CN109739532A (zh) * | 2018-12-13 | 2019-05-10 | 北京计算机技术及应用研究所 | 一种国产Linux操作系统上的软件更新方法 |
US20210200536A1 (en) * | 2019-12-31 | 2021-07-01 | Shenzhen Jingtai Technology Co., Ltd. | Drug research and development software repository and software package management system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107528718B (zh) | 获取资源的方法、装置和系统 | |
CN111078481B (zh) | 获取配置检查清单的方法、装置、电子设备及存储介质 | |
CN107370804B (zh) | 软件应用处理方法和装置 | |
CN112099800A (zh) | 代码数据的处理方法、装置和服务器 | |
CN109445861A (zh) | 系统启动方法、装置、计算机装置及存储介质 | |
US20170171329A1 (en) | Video recommendaton method and system, and server | |
CN108763084A (zh) | 一种测试用例的生成方法、装置及电子设备 | |
CN114338102B (zh) | 安全检测方法、装置、电子设备及存储介质 | |
CN110652728A (zh) | 一种游戏资源管理方法、装置、电子设备及存储介质 | |
CN114372297A (zh) | 一种基于消息摘要算法校验文件完整性的方法及装置 | |
CN113535226A (zh) | 应用下载方法、终端、服务器、计算机设备以及存储介质 | |
CN117806961A (zh) | 一种芯片测试程序生成方法、装置、电子设备及存储介质 | |
CN114070846A (zh) | Linux操作系统下软件包仓库的同步方法以及装置 | |
WO2017177752A1 (zh) | 一种文件存储方法及装置 | |
CN111556127A (zh) | 一种可穿戴设备升级方法及相关设备 | |
CN111031117A (zh) | 一种多媒体文件下载方法及相关装置 | |
CN111258959A (zh) | 一种数据获取方法、数据提供方法及装置 | |
CN106648671B (zh) | 一种应用升级方法及终端 | |
CN108920658B (zh) | 一种移动设备桌面搬家方法、装置及电子设备 | |
CN111097175B (zh) | 一种模拟器的确定方法、装置及存储介质 | |
US20170161237A1 (en) | Method for creating a hyperlink in a video-playing page and electronic device | |
CN109522187B (zh) | 状态信息快速提取方法及装置 | |
CN112035804A (zh) | 一种在文档页面中插入水印标识的方法、装置、电子设备及存储介质 | |
CN105808243B (zh) | 一种电子设备外观显示方法、装置及电子设备 | |
US20170154096A1 (en) | Data service system and electronic apparatus |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220218 |