CN107943502A - 一种Linux***下基于细粒度***状态检测的升级方法 - Google Patents

一种Linux***下基于细粒度***状态检测的升级方法 Download PDF

Info

Publication number
CN107943502A
CN107943502A CN201711247522.1A CN201711247522A CN107943502A CN 107943502 A CN107943502 A CN 107943502A CN 201711247522 A CN201711247522 A CN 201711247522A CN 107943502 A CN107943502 A CN 107943502A
Authority
CN
China
Prior art keywords
version
upgrade
file
bag
upgrading
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.)
Granted
Application number
CN201711247522.1A
Other languages
English (en)
Other versions
CN107943502B (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.)
Tianjin Kylin Information Technology Co Ltd
Original Assignee
Tianjin Kylin Information Technology 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 Tianjin Kylin Information Technology Co Ltd filed Critical Tianjin Kylin Information Technology Co Ltd
Priority to CN201711247522.1A priority Critical patent/CN107943502B/zh
Publication of CN107943502A publication Critical patent/CN107943502A/zh
Application granted granted Critical
Publication of CN107943502B publication Critical patent/CN107943502B/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/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

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

Abstract

一种Linux***下基于细粒度***状态检测的升级方法,步骤包括:S1:生成带有当前***完整状态的升级校验文件;S2:根据所述升级校验文件计算出可升级版本;S3:从所述可升级版本中选择需要升级的目标版本;S4:计算出升级列表,进行包冲突判断;S5:生成静态升级文件;S6:将所述静态升级文件和升级到所述目标版本需要用到的指令执行程序打包成升级包,并进行版本升级。本申请的有益效果是:基于***状态的细粒度判断,生成的升级校验文件更可靠;排除冲突后精细化生成升级包,确保各种状态的操作***都可以安全统一的升级到目标版本;对于不同项目和应用场景的操作***,可自动区分,各项目拥有自己的版本状态和升级路线,可选择升级到路线中任意可用的版本状态。

Description

一种Linux***下基于细粒度***状态检测的升级方法
技术领域
本申请属于Linux***升级技术领域,具体地说,涉及一种Linux***下基于细粒度***状态检测的升级方法。
背景技术
随着终端设备的不断更新,操作***的不断完善,终端设备每隔一段时间就需要进行一次***的升级。目前主流操作***升级方法是:将最新的升级包放在升级服务器,终端设备如果检测到有新的***版本,则会提示用户升级,待用户确认后,将从升级服务器下载最新的升级包进行升级。
这种常规升级方法存在以下不足:
(1)不同于Windows将***关键组件和用户软件分别处理,Linux***关键组件和普通软件是以同一种形态存在的,即软件包。而因为软件包之间的复杂依赖关系,用户在安装、卸载、升级软件包时可能会直接或间接地影响***关键组件。此时,安装固定不变的***升级包可能对***已经不起作用,甚至导致***混乱。这也是升级Linux***经常出现异常问题的原因;
(2)在实际应用中,面对不同的客户和使用环境,操作***会衍生出不同的类型、分支、版本、甚至体系结构,面对这四种情况,所需要的升级包也各不相同,手动制作升级包、手动匹配终端和升级服务器都会产生巨大的工作量;
(3)常规方法只能统一将操作***升级到固定的最新版本,无法选择升级到一个中间状态。
中国发明专利“一种Linux操作***及其安全升级方法”(申请号CN102662647A),该发明通过对所要升级的计算机进行保密级别的判断并通过可移动存储介质来进行升级,克服了在断网或计算机要求保密的情况下操作***无法升级的技术问题,达到了对操作***进行安全升级的目的。和本专利区别:本专利是一种Linux***下基于细粒度***状态检测的升级方法,专利方向不一样。
中国发明专利“***升级方法及装置”(申请号CN105242945A),该发明升级过程对用户终端存储的升级准则进行查询,并对比服务器的升级准则,若满足升级条件就对用户***进行升级。和发明区别:本发明会对***状态、软件包状态和配置文件状态进行检测及进行软件包冲突判断,且能对于不同项目和应用场景的操作***,可自动区分,各项目拥有自己的版本状态和升级路线,可选择升级到路线中任意可用的版本状态。
中国发明专利“一种智能终端的***升级方法及装置”(申请号CN105045671A),该发明获取已连接智能终端的存储容量值;将所述获取的存储容量值与***升级包适用的智能终端的存储容量值进行匹配;如果匹配成功,则向所述已连接智能终端发送所述***升级包进行升级。和本发明区别:本发明会对***状态、软件包状态和配置文件状态进行检测及进行软件包冲突判断,且能对于不同项目和应用场景的操作***,可自动区分,各项目拥有自己的版本状态和升级路线,可选择升级到路线中任意可用的版本状态。
中国发明专利“一种UNIX环境软件***升级方法”(申请号CN105117263A),该发明为升级包预先建立目录结构,根据所有应用服务器中两两之间的配置差异建立规则映射表,然后将该规则映射表预先存储至所有应用服务器内,综合规则映射表将安装成功的升级包适用到其他应用服务器上,完成所有应用服务器完成自适应升级包的安装部署。和本发明区别:本发明是一种Linux***下基于细粒度***状态检测的升级方法,专利方向不一样。
中国发明专利“终端***升级方法、装置及服务器”(申请号CN104778057A),该发明接收终端发送的版本升级请求;根据当前***版本和用户标识,确定终端的待升级版本;检测是否存储了待升级版本与当前***版本之间的差分包;如果未存储差分包,则将待升级版本的大包和当前***版本的大包进行差分处理,得到差分包;将差分包下发至终端,终端用于根据差分包进行***升级。和本发明区别:本发明会对***状态、软件包状态和配置文件状态进行检测及进行软件包冲突判断,且能对于不同项目和应用场景的操作***,可自动区分,各项目拥有自己的版本状态和升级路线,可选择升级到路线中任意可用的版本状态。
中国发明专利“一种终端更新***及其更新方法”(申请号CN104572212A,该发明主要通过更新配置文件1与本地更新配置文件0、本地临时更新配置文件L比较确定需要下载的文件列表,然后根据文件列表下载需要更新文件。和本发明区别:本发明是一种Linux***下基于细粒度***状态检测的升级方法,专利方向不一样。
发明内容
有鉴于此,本申请为了解决现有技术存在的缺陷和不足,提供了一种Linux***下基于细粒度***状态检测的升级方法,以解决传统操作***升级可能产生的版本混乱等问题。
为了解决上述技术问题,本申请公开了一种Linux***下基于细粒度***状态检测的升级方法,并采用以下技术方案来实现。
一种Linux***下基于细粒度***状态检测的升级方法,步骤包括:S1:生成带有当前***完整状态的升级校验文件;
S2:根据所述升级校验文件计算出可升级版本;
S3:从所述可升级版本中选择需要升级的目标版本;
S4:计算出升级列表,进行包冲突判断;
S5:生成静态升级文件;
S6:将所述静态升级文件和升级到所述目标版本需要用到的指令执行程序打包成升级包,并进行版本升级。
进一步的,所述升级校验文件基于客户端对***状态进行细粒度检测而生成,所述细粒度检测的内容包括:
a)用户***认证信息:若未经授权或激活,则停止升级程序;
b)出库序列号:若无所述出库序列号或所述出库序列号在数据库中无记录则停止升级程序;
c)***版本号:用于定位所述用户***版本所属项目和/或历史节点;
d)***架构:用于定位所述用户***版本的可升级版本;
e)软件包列表:用于在选定所述目标版本后进行包列表对比。
进一步的,所述升级校验文件生成的具体步骤包括:
S11:获取未生成的校验文件;
S12:检测用户***的出库序列号是否为空,若不为空则查询数据库看是否记录在案,否则不予升级;
S13:检测出库版本,若验证出库版本为非正常出库版本,则停止生成校验文件,进入S11;否则进入下一步;
S14:检测用户授权文件是否完整,若完整则进入下一步,若不完整或***未进行激活认证,则不予升级;
S15:判断所述***是否被授权或被激活,若未授权或未激活,则停止生成校验文件,进入S11;否则进入下一步;
S16:获取***版本号、***架构和/或已安装包列表;
S17:将获取到的所述***版本号、所述***架构及所述已安装包列表整合成升级校验文件。
进一步的,所述包冲突判断的判断步骤包括:S41:第一次包冲突判断:将所述升级校验文件与所述目标版本进行包列表和包版本的包冲突判断,得出升级安装包列表;S42:第二次包冲突判断:将所述需要升级安装包列表与当前***版本中已安装包列表进行包冲突判断。
更进一步的,所述包冲突判断的判断步骤还包括:S43:所述包冲突判断结果若为存在冲突包,则无法正常升级,选择放弃升级或自动卸载所述冲突包;若卸载所述冲突包则并继续升级到所述目标版本;若继续升级,将会保持所述目标版本的包完整性。
再进一步的,判断已安装包与被列入所述升级安装包列表的包是否存在相容性冲突;判断已安装包的依赖包或库的版本,与被列入所述升级安装包列表的包所依赖的包或库是否存在版本冲突。
进一步的,所述S2的具体内容为:根据所述升级校验文件中的***版本号和架构查询数据库,通过架构信息定位所述***对应的位数,再通过所述***版本号定位所述***所属项目和/或版本系列,最终根据所述***版本号得出在版本***中的节点位置,确定所述可升级版本。
一种基于细粒度状态检测的***,包括:
客户端(101):检测当前操作***的信息,对检测的所述信息进行整合及格式处理生成升级校验文件,将所述升级校验文件发送给处理中心(102);接收所述处理中心(102)发来的可升级版本供选择,并将选择的目标版本发送给所述处理中心(102),接收所述处理中心(102)生成的升级包进行安装升级;
所述处理中心(102):接收所述客户端(101)发送的所述升级校验文件,根据所述校验文件匹配数据库(103)中的信息,得出所述可升级版本的集合并发送给所述客户端(101);并根据所述目标版本生成升级包发送给所述客户端(101);
和数据库(103):用于保存所有***架构、项目、***版本、包列表信息,供所述处理中心(102)进行查询和获取。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现以上任一所述升级方法的步骤。
一种基于细粒度状态检测的升级装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以上任一所述升级方法的步骤。
与现有技术相比,本申请可以获得包括以下技术效果:对操作***整体状态进行细粒度判断,生成的升级校验文件更可靠;排除冲突后精细化生成升级包,确保各种状态的操作***都可以安全统一的升级到规定的版本状态;对于不同项目和应用场景的操作***,可自动区分,各项目拥有自己的版本状态和升级路线,可选择升级到路线中任意可用的版本状态。
当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请一个实施例的整体架构示意图。
图2是本申请一个实施例的主流程示意图。
图3是本申请一个实施例的用户升级校验文件生成过程。
具体实施方式
以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
图1示出本发明实施例整体架构示意图,主要包含客户端101、处理中心102和数据库103三部分。
客户端101检测用户***的版本信息、包信息等,对检测的信息进行整合及格式处理生成校验文件,将校验文件发送给处理中心102。
客户端101接收处理中心102分析得出的可升级版本供用户选择,并将用户选择好的目标版本发送给处理中心102,接收处理中心102最终生成的升级包进行安装升级。
客户端101通过Http协议与处理中心102进行通信和文件传输,包括校验文件、可升级版本信息交互及最终升级包传输。
处理中心102接收客户端101发送的校验文件,根据校验文件匹配数据库103中各项目版本信息,得出可升级版本节点的集合并发送给客户端101。
处理中心102接收用户选择的目标版本后,根据校验文件中的包列表信息计算出升级到目标版本需要新安装的包列表、升级的包列表,及处理脚本,将以上静态升级文件和预存的指令执行程序打包成最终升级使用的安装包发给客户端101。
数据库103保存所有***架构、项目、***版本、包列表等信息,给处理中心102提供信息查询和获取。
图2示出本发明实施例主流程示意图,展示了基于细粒度***状态检测的升级技术的主要过程。
一种Linux***下基于细粒度***状态检测的升级方法,步骤包括:
S1:用户***客户端对***状态进行细粒度检测,通过检测生成带有***完整状态的升级校验文件,升级校验文件内容按一定的格式约定并能直接被处理中心的脚本读取及分析;
S2:处理中心数据库保存和组织了各类项目***的版本形态,处理中心根据客户端生成的升级校验文件,与数据库中各类项目***的版本进行对比,计算出用户***版本可升级的节点集合供用户选择,若用户已经是最新版本,则将提示用户版本已是最新状态;
S3:在用户选择目标版本后,处理中心读取数据库中该目标版本的包列表,与用户***的校验文件中包列表进行对比,计算出目前用户***状态升级到目标版本需增量安装和需升级的包列表,两者统称为升级包列表;同时将升级包列表与用户***原有包列表进行包冲突判断,防止因包版本或包依赖冲突而导致升级失败;
S4:在冲突判断后,处理中心根据生成的包列表拉取相关静态升级文件及升级到目标版本需要用到的指令执行程序,将二者打包成最终版本升级使用的安装包(即升级包),发送给客户端进行安装升级。
以上4步的具体步骤如图2所示,包括:
S201:利用当前***版本,获取用户***升级前的状态;
S202:启动客户端;当用户需要进行升级时,运行客户端软件即可开始检测***状态;
S203:检测***状态生成升级校验文件;
用户***客户端对***状态进行细粒度检测,通过检测生成带有***完整状态的校验文件。
***状态的细粒度检测,可通过指令或直接查看***文件获取,检测内容包括:
a)用户***认证信息(即版本的授权激活):若都未经授权或激活,将停止升级程序;
b)出库序列号:若无出库序列号或序列号在处理中心库中无记录则视为盗版,将停止升级程序;
c)***版本号:用于定位用户***版本所属项目及历史节点;
d)***架构:用于定位用户***版本可升级版本;
e)软件包列表:用于用户选定升级的目标版本后进行包列表对比。
然后,校验文件的生成需要:检测出库序列号、检测版本授权激活、获取***版本号、获取架构及包列表等步骤;根据约定格式对内容进行处理,最后整合成处理中心脚本能直接读取和分析的升级校验文件,用于之后的升级节点定位,获取具体步骤如图3所示:
S301:获取未生成的校验文件;
S302:检测用户***的出库序列号是否为空,若不为空则发送给处理中心查询数据库看是否记录在案,否则视为盗版不予升级;
S303:如果经过验证为非正常出库版本,将停止生成校验文件,进入步骤301;否则继续检测流程,进入下一步;
S304:检测用户授权文件是否完整,若完整则进一步检测用户***是否已经激活,若授权文件内容不完整或***未进行激活认证都不予升级;
S305:判断***是否被授权或被激活,如果检测出***未授权或未进行***激活,将停止生成校验文件,进入步骤301;否则,继续检测流程,进入下一步;
S306:通过指令或查询***文件,获取***版本号和***架构,例如在Ubuntu***中,可通过命令行lsb_release-a或查看/etc/lsb-release文件查询相关信息。通过指令获取***已安装包列表,例如在Ubuntu***中,可通过dpkg-l来获取***中的包列表及这些包的版本号,定向输出到文件后再根据约定进行格式调整及删除非必须的信息;
S307:将获取到的***版本号、***架构及包列表整合成升级校验文件发送给处理中心。
以上7步生成升级校验文件。
S204:判断是否符合升级条件,如果不符合则停止升级,进入步骤201;否则继续升级流程,进入下一步;判断是否符合升级条件具体是对***状态进行判断,例如出库序列号、版本授权激活等检测;
S205:处理中心根据升级校验文件中的***版本号和架构查询数据库,通过架构信息定位是x86还是arm版本,是64位还是32位***,再通过版本号定位用户***所属项目、版本系列等,最终根据版本号得出在版本***中的节点位置,确定可升级版本后返回给用户选择;
S206:判断是否有可升级版本,如果处理中心计算出用户***为最新版本,则提示用户***为最新版本无需升级,进入步骤201;否则进入下一步;
S207:用户选择目标升级版本;将可升级版本的集合提供给用户选择,用户勾选自己想要升级到的节点版本提交给处理中心用于生成升级包;
在用户选择目标版本后,处理中心读取数据库中该目标版本的包列表,与用户***的校验文件中包列表进行对比,计算出目前用户***状态升级到目标版本需增量安装和升级的包列表。
S208:进行包冲突判断并生成静态升级文件;
通过脚本用升级校验文件中的包列表及包版本号与数据库中目标版本的包列表及包版本号进行增量对比,计算出目标版本比校验文件中包列表多的包为需要安装的,目标版本比校验文件中版本高的包为需要升级的,从而得出升级到目标版本需要额外安装及升级的包列表。
用户升级校验文件与目标版本包列表和包版本对比具体步骤包括:
a)目标***相对用户***新增的包,将被列入“增量安装包列表”;
b)目标***比用户***包版本更高的包,将被列入“版本升级包列表”;
c)用户***相对目标***额外的包,将需要与上述被列入“增量安装包列表”的包进行冲突判断。
经以上对比,得出升级安装包列表后,还需与用户目前版本中已安装的包进行包冲突判断,因为用户可能在***使用中自己安装了不少包,这些包有可能会与升级到目标版本需要额外安装的包有依赖冲突问题,包冲突判断可以防止因包版本或包依赖冲突而导致升级失败。
再次对比校验文件包列表和目标版本包列表,得出校验文件包列表比目标版本中多的包,这些包即是用户使用时另外安装的包及老版本到目标版本剔除的包(这部分包肯定不会与目标版本有冲突问题),得出用户额外安装的包后,与***升级需要额外安装的包进行包冲突判断。例如在Ubuntu***中可通过脚本对比包中的“Conflicts”信息,检测是否存在依赖冲突的包,软件包的“Conflicts”信息可通过命令行:apt-cache show接包名,通过显示包信息即可查看,也可从源码中control文件查看,以上对比和处理都可通过脚本自动化完成,若无冲突,将得到静态升级文件包。
本步骤的第二次包冲突判断的内容包括:
a)判断用户已安装包与被列入增量安装包列表的包是否存在相容性冲突,即是否为不能共存包;
b)判断用户已安装包的依赖包或库的版本,与被列入增量安装包列表的包所依赖的包或库是否存在版本冲突,例如原有包依赖低版本的库,而升级需安装的包依赖高版本的同一个库,则将会导致版本冲突。
S209:判断当前***是否存在与***冲突的包,如果存在冲突包,则提示给用户冲突包名,用户可选择放弃升级,返回步骤201;否则会自动卸载***上的冲突包,并进入下一步;
用户自己安装过的包与升级到目标***需增量安装的包若存在S208中两种冲突中任意一种,将会无法正常升级,提示给用户冲突包名,用户可选择放弃升级或自动卸载***上的冲突包并继续升级到目标***;若继续升级,将会以保持目标***包完整性为主。
S210:加入指令执行程序,生成升级包;
指令执行程序主要包括:包的升级安装指令和部分包的特殊处理指令。若升级到目标版本中的包存在需要特殊处理的,如有些包不能覆盖安装,需要先卸载后安装;有些包安装完后需要进行特殊配置等。这些特殊处理脚本将会和目标版本一起保存在数据库中,当需要升级到某个版本时,将数据库中保存的指令文件路径下对应脚本加入到升级包中即可,最终将静态升级文件和指令执行程序打包成升级包发送给用户进行升级;
S211:运行升级包,将***升级到目标***;客户端收到处理中心的升级包后直接运行进行***升级,升级界面将会自动引导用户完成升级。
本申请的有益效果是:对操作***整体状态进行细粒度判断,生成的升级校验文件更可靠;排除冲突后精细化生成升级包,确保各种状态的操作***都可以安全统一的升级到规定的版本状态;对于不同项目和应用场景的操作***,可自动区分,各项目拥有自己的版本状态和升级路线,可选择升级到路线中任意可用的版本状态。
以上对本申请实施例所提供的一种Linux***下基于细粒度***状态检测的升级方法,进行了详细介绍。以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,不同机构可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者***中还存在另外的相同要素。
上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明创造构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。

Claims (10)

1.一种Linux***下基于细粒度***状态检测的升级方法,步骤包括:
S1:生成带有当前***完整状态的升级校验文件;
S2:根据所述升级校验文件计算出可升级版本;
S3:从所述可升级版本中选择需要升级的目标版本;
S4:计算出升级列表,进行包冲突判断;
S5:生成静态升级文件;
S6:将所述静态升级文件和升级到所述目标版本需要用到的指令执行程序打包成升级包,并进行版本升级。
2.根据权利要求1所述Linux***下基于细粒度***状态检测的升级方法,其特征在于:所述升级校验文件基于客户端对***状态进行细粒度检测而生成,所述细粒度检测的内容包括:
a)用户***认证信息:若未经授权或激活,则停止升级程序;
b)出库序列号:若无所述出库序列号或所述出库序列号在数据库中无记录则停止升级程序;
c)***版本号:用于定位所述用户***版本所属项目和/或历史节点;
d)***架构:用于定位所述用户***版本的可升级版本;
e)软件包列表:用于在选定所述目标版本后进行包列表对比。
3.根据权利要求1或2所述Linux***下基于细粒度***状态检测的升级方法,其特征在于:所述升级校验文件生成的具体步骤包括:
S11:获取未生成的校验文件;
S12:检测用户***的出库序列号是否为空,若不为空则查询数据库看是否记录在案,否则不予升级;
S13:检测出库版本,若验证出库版本为非正常出库版本,则停止生成校验文件,进入S11;否则进入下一步;
S14:检测用户授权文件是否完整,若完整则进入下一步,若不完整或***未进行激活认证,则不予升级;
S15:判断所述***是否被授权或被激活,若未授权或未激活,则停止生成校验文件,进入S11;否则进入下一步;
S16:获取***版本号、***架构和/或已安装包列表;
S17:将获取到的所述***版本号、所述***架构及所述已安装包列表整合成升级校验文件。
4.根据权利要求1或2所述Linux***下基于细粒度***状态检测的升级方法,其特征在于:所述包冲突判断的判断步骤包括:S41:第一次包冲突判断:将所述升级校验文件与所述目标版本进行包列表和包版本的包冲突判断,得出升级安装包列表;S42:第二次包冲突判断:将所述需要升级安装包列表与当前***版本中已安装包列表进行包冲突判断。
5.根据权利要求4所述Linux***下基于细粒度***状态检测的升级方法,其特征在于:所述包冲突判断的判断步骤还包括:S43:所述包冲突判断结果若为存在冲突包,则无法正常升级,选择放弃升级或自动卸载所述冲突包;若卸载所述冲突包则并继续升级到所述目标版本;若继续升级,将会保持所述目标版本的包完整性。
6.根据权利要求4所述Linux***下基于细粒度***状态检测的升级方法,其特征在于:所述S42具体为:判断已安装包与被列入所述升级安装包列表的包是否存在相容性冲突;判断已安装包的依赖包或库的版本,与被列入所述升级安装包列表的包所依赖的包或库是否存在版本冲突。
7.根据权利要求1-2、5-6任一所述Linux***下基于细粒度***状态检测的升级方法,其特征在于:所述S2的具体内容为:根据所述升级校验文件中的***版本号和架构查询数据库,通过架构信息定位所述***对应的位数,再通过所述***版本号定位所述***所属项目和/或版本系列,最终根据所述***版本号得出在版本***中的节点位置,确定所述可升级版本。
8.一种基于细粒度状态检测的***,包括:
客户端(101):检测当前操作***的信息,对检测的所述信息进行整合及格式处理生成升级校验文件,将所述升级校验文件发送给处理中心(102);接收所述处理中心(102)发来的可升级版本供选择,并将选择的目标版本发送给所述处理中心(102),接收所述处理中心(102)生成的升级包进行安装升级;
所述处理中心(102):接收所述客户端(101)发送的所述升级校验文件,根据所述校验文件匹配数据库(103)中的信息,得出所述可升级版本的集合并发送给所述客户端(101);并根据所述目标版本生成升级包发送给所述客户端(101);
和所述数据库(103):用于保存所有***架构、项目、***版本、包列表信息,供所述处理中心(102)进行查询和获取。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-2、5-6任一所述升级方法的步骤。
10.一种基于细粒度状态检测的升级装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现如权利要求1-2、5-6任一所述升级方法的步骤。
CN201711247522.1A 2017-12-01 2017-12-01 一种Linux***下基于细粒度***状态检测的升级方法 Active CN107943502B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711247522.1A CN107943502B (zh) 2017-12-01 2017-12-01 一种Linux***下基于细粒度***状态检测的升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711247522.1A CN107943502B (zh) 2017-12-01 2017-12-01 一种Linux***下基于细粒度***状态检测的升级方法

Publications (2)

Publication Number Publication Date
CN107943502A true CN107943502A (zh) 2018-04-20
CN107943502B CN107943502B (zh) 2021-04-27

Family

ID=61948170

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711247522.1A Active CN107943502B (zh) 2017-12-01 2017-12-01 一种Linux***下基于细粒度***状态检测的升级方法

Country Status (1)

Country Link
CN (1) CN107943502B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117158A (zh) * 2018-08-02 2019-01-01 郑州云海信息技术有限公司 固件更新方法和装置
CN109542499A (zh) * 2018-10-11 2019-03-29 珠海许继芝电网自动化有限公司 一种配电终端软件版本管理方法和装置
CN110502263A (zh) * 2019-08-14 2019-11-26 深圳市东微智能科技股份有限公司 升级包制作方法、***及计算机可读存储介质
CN110611650A (zh) * 2019-07-05 2019-12-24 中国工程物理研究院计算机应用研究所 一种运行态pki/ca认证体系平滑升级方法
CN111158719A (zh) * 2019-12-26 2020-05-15 湖南快乐阳光互动娱乐传媒有限公司 应用软件升级方法及装置
CN112068855A (zh) * 2019-06-10 2020-12-11 海信视像科技股份有限公司 一种双***下应用的升级方法及***
CN112947988A (zh) * 2021-03-10 2021-06-11 中国民航信息网络股份有限公司 大型机的持续集成方法及相关装置、计算机存储介质
CN113204355A (zh) * 2021-05-20 2021-08-03 山东英信计算机技术有限公司 一种国产***预装软件的方法、***、终端及存储介质
CN114499948A (zh) * 2021-12-23 2022-05-13 麒麟软件有限公司 一种Linux防火墙动态策略处理方法、装置及存储介质
CN116009912A (zh) * 2022-12-26 2023-04-25 郑州云智信安安全技术有限公司 针对私网环境的自动生成升级包的构建方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070240134A1 (en) * 2006-02-28 2007-10-11 Joydeep Buragohain Software packaging model supporting multiple entity types
CN105302586A (zh) * 2014-06-24 2016-02-03 中兴通讯股份有限公司 软件升级处理方法、装置、终端及服务器
CN107172460A (zh) * 2017-06-16 2017-09-15 深圳市云联志远网络科技有限公司 网络电视升级方法、装置及计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070240134A1 (en) * 2006-02-28 2007-10-11 Joydeep Buragohain Software packaging model supporting multiple entity types
CN105302586A (zh) * 2014-06-24 2016-02-03 中兴通讯股份有限公司 软件升级处理方法、装置、终端及服务器
CN107172460A (zh) * 2017-06-16 2017-09-15 深圳市云联志远网络科技有限公司 网络电视升级方法、装置及计算机可读存储介质

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117158A (zh) * 2018-08-02 2019-01-01 郑州云海信息技术有限公司 固件更新方法和装置
CN109542499A (zh) * 2018-10-11 2019-03-29 珠海许继芝电网自动化有限公司 一种配电终端软件版本管理方法和装置
CN112068855A (zh) * 2019-06-10 2020-12-11 海信视像科技股份有限公司 一种双***下应用的升级方法及***
CN112068855B (zh) * 2019-06-10 2024-03-26 海信视像科技股份有限公司 一种双***下应用的升级方法及***
CN110611650A (zh) * 2019-07-05 2019-12-24 中国工程物理研究院计算机应用研究所 一种运行态pki/ca认证体系平滑升级方法
CN110611650B (zh) * 2019-07-05 2021-12-28 中国工程物理研究院计算机应用研究所 一种运行态pki/ca认证体系平滑升级方法
CN110502263A (zh) * 2019-08-14 2019-11-26 深圳市东微智能科技股份有限公司 升级包制作方法、***及计算机可读存储介质
CN111158719B (zh) * 2019-12-26 2023-06-16 湖南快乐阳光互动娱乐传媒有限公司 应用软件升级方法及装置
CN111158719A (zh) * 2019-12-26 2020-05-15 湖南快乐阳光互动娱乐传媒有限公司 应用软件升级方法及装置
CN112947988A (zh) * 2021-03-10 2021-06-11 中国民航信息网络股份有限公司 大型机的持续集成方法及相关装置、计算机存储介质
CN112947988B (zh) * 2021-03-10 2024-03-08 中国民航信息网络股份有限公司 大型机的持续集成方法及相关装置、计算机存储介质
CN113204355A (zh) * 2021-05-20 2021-08-03 山东英信计算机技术有限公司 一种国产***预装软件的方法、***、终端及存储介质
CN114499948A (zh) * 2021-12-23 2022-05-13 麒麟软件有限公司 一种Linux防火墙动态策略处理方法、装置及存储介质
CN116009912A (zh) * 2022-12-26 2023-04-25 郑州云智信安安全技术有限公司 针对私网环境的自动生成升级包的构建方法
CN116009912B (zh) * 2022-12-26 2023-08-18 郑州云智信安安全技术有限公司 针对私网环境的自动生成升级包的构建方法

Also Published As

Publication number Publication date
CN107943502B (zh) 2021-04-27

Similar Documents

Publication Publication Date Title
CN107943502A (zh) 一种Linux***下基于细粒度***状态检测的升级方法
CN109726099B (zh) 一种应用灰度发布方法、装置及设备
CN108121559B (zh) 配置文件推送方法、服务器及存储介质
US20030051235A1 (en) Method and apparatus for verifying and analyzing computer software installation
JP2016094185A (ja) ソフトウェア航空機部品の実装システム
EP2876554B1 (en) Method and apparatus for secure distribution of embedded firmware
CN109918285B (zh) 一种开源软件的安全识别方法及装置
US20080222732A1 (en) Computer manufacturer and software installation detection
KR101579493B1 (ko) 소스코드 이관제어 방법 및 이를 위한 컴퓨터 프로그램, 그 기록매체
CN106027644B (zh) 一种业务的校验方法及***
KR20150065582A (ko) 구성 소프트웨어 파트를 이용한 항공기 구성 및 소프트웨어 파트 관리
US20060048225A1 (en) System and method for inhibiting interaction with malicious software
CN110619208B (zh) 用户验证方法、服务器、用户设备和***
US20220253297A1 (en) Automated deployment of changes to applications on a cloud computing platform
US8959645B2 (en) Method for providing control information for a distributed operation in an automation system, computer program and automation system
JP2018014046A (ja) 検証システムおよび検証方法
US8079026B2 (en) Job definition verification system, and method and program thereof
CN107341074B (zh) 一种升级异常修复方法、升级异常修复装置及智能终端
CN111931192B (zh) rootkit检测方法、装置及电子设备
US20160239662A1 (en) Control system and authentication device
CN102982279A (zh) 计算机辅助设计病毒感染防止***和方法
CN114391136A (zh) 增强的虚拟机镜像管理***
WO2009055131A1 (en) System, method, and computer software code for determining whether a change in a subsystem is compatible with a system
CN106845164B (zh) 一种基于网络软件授权方法
CN106485139B (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
CB03 Change of inventor or designer information

Inventor after: Huang Cheng

Inventor after: Wen Bo

Inventor after: Zhang Dongsong

Inventor after: Li Xiang

Inventor after: He Bing

Inventor after: Ma Chao

Inventor after: Xia Ruobing

Inventor after: Wu Kaige

Inventor before: Ma Jun

Inventor before: Xia Ruobing

Inventor before: Wu Kaige

Inventor before: Liu Xiaodong

Inventor before: Yu Jie

Inventor before: Huang Cheng

Inventor before: Wen Bo

Inventor before: Zhang Dongsong

Inventor before: Li Xiang

Inventor before: He Bing

Inventor before: Ma Chao

CB03 Change of inventor or designer information
CB02 Change of applicant information

Address after: 6-8 / F, building 3, Xin'an pioneer Plaza, Tanggu marine science and Technology Park, Binhai New Area, Tianjin

Applicant after: Kirin Software Co.,Ltd.

Address before: 6-8 / F, building 3, Xin'an pioneer Plaza, Tanggu marine science and Technology Park, Binhai New Area, Tianjin

Applicant before: TIANJIN KYLIN INFORMATION TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant