[发明专利]一种Linux系统下基于细粒度系统状态检测的升级方法有效
申请号: | 201711247522.1 | 申请日: | 2017-12-01 |
公开(公告)号: | CN107943502B | 公开(公告)日: | 2021-04-27 |
发明(设计)人: | 黄晟;文波;张冬松;李翔;贺冰;马超;夏若冰;伍凯歌 | 申请(专利权)人: | 麒麟软件有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F8/71 |
代理公司: | 天津诺德知识产权代理事务所(特殊普通合伙) 12213 | 代理人: | 栾志超 |
地址: | 300000 天津市滨海新区滨海*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 linux 系统 基于 细粒度 状态 检测 升级 方法 | ||
1.一种Linux系统下基于细粒度系统状态检测的升级方法,步骤包括:S1:生成带有当前系统状态的升级校验文件,其中,所述升级校验文件是基于客户端对系统状态进行细粒度检测而生成的;所述系统状态包括用户系统认证信息、出库序列号、系统版本号、系统架构和软件包列表;
S2:根据所述升级校验文件计算出可升级版本;
S3:从所述可升级版本中选择需要升级的目标版本;
S4:计算出升级列表,进行包冲突判断;
S5:生成静态升级文件;
S6:将所述静态升级文件和升级到所述目标版本需要用到的指令执行程序打包成升级包,并进行版本升级;
所述细粒度检测的内容包括:
a)用户系统认证信息:若未经授权或激活,则停止升级程序;
b)出库序列号:若无所述出库序列号或所述出库序列号在数据库中无记录则停止升级程序;
c)系统版本号:用于定位所述用户系统版本所属项目和/或历史节点;
d)系统架构:用于定位所述用户系统版本的可升级版本;
e)软件包列表:用于在选定所述目标版本后进行包列表对比。
2.根据权利要求1所述Linux系统下基于细粒度系统状态检测的升级方法,其特征在于:所述升级校验文件生成的具体步骤包括:
S11:获取未生成的校验文件;
S12:检测用户系统的出库序列号是否为空,若不为空则查询数据库看是否记录在案,否则不予升级;
S13:检测出库版本,若验证出库版本为非正常出库版本,则停止生成校验文件,进入S11;否则进入下一步;
S14:检测用户授权文件是否完整,若完整则进入下一步,若不完整或系统未进行激活认证,则不予升级;
S15:判断所述系统是否被授权或被激活,若未授权或未激活,则停止生成校验文件,进入S11;否则进入下一步;
S16:获取系统版本号、系统架构和/或已安装包列表;
S17:将获取到的所述系统版本号、所述系统架构及所述已安装包列表整合成升级校验文件。
3.根据权利要求1所述Linux系统下基于细粒度系统状态检测的升级方法,其特征在于:所述包冲突判断的判断步骤包括:S41:第一次包冲突判断:将所述升级校验文件与所述目标版本进行包列表和包版本的包冲突判断,得出升级安装包列表;S42:第二次包冲突判断:将所述需要升级安装包列表与当前系统版本中已安装包列表进行包冲突判断。
4.根据权利要求3所述Linux系统下基于细粒度系统状态检测的升级方法,其特征在于:所述包冲突判断的判断步骤还包括:S43:所述包冲突判断结果若为存在冲突包,则无法正常升级,选择放弃升级或自动卸载所述冲突包;若卸载所述冲突包则并继续升级到所述目标版本;若继续升级,将会保持所述目标版本的包完整性。
5.根据权利要求3所述Linux系统下基于细粒度系统状态检测的升级方法,其特征在于:所述S42具体为:判断已安装包与被列入所述升级安装包列表的包是否存在相容性冲突;判断已安装包的依赖包或库的版本,与被列入所述升级安装包列表的包所依赖的包或库是否存在版本冲突。
6.根据权利要求1-5中任一所述Linux系统下基于细粒度系统状态检测的升级方法,其特征在于:所述S2的具体内容为:根据所述升级校验文件中的系统版本号和架构查询数据库,通过架构信息定位所述系统对应的位数,再通过所述系统版本号定位所述系统所属项目和/或版本系列,最终根据所述系统版本号得出在版本系统中的节点位置,确定所述可升级版本。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于麒麟软件有限公司,未经麒麟软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711247522.1/1.html,转载请声明来源钻瓜专利网。