CN107391216A - 一种软件升级方法及装置 - Google Patents
一种软件升级方法及装置 Download PDFInfo
- Publication number
- CN107391216A CN107391216A CN201710881627.6A CN201710881627A CN107391216A CN 107391216 A CN107391216 A CN 107391216A CN 201710881627 A CN201710881627 A CN 201710881627A CN 107391216 A CN107391216 A CN 107391216A
- Authority
- CN
- China
- Prior art keywords
- software
- file
- upgrading
- program
- mode
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
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
本发明公开了一种软件升级方法及装置,包括:从预先设置的配置文件中解析出软件的升级方式以及与该升级方式对应的文件名称;根据解析出的升级方式和文件名称对软件进行升级。通过本发明实施例,由于预先在配置文件中设置软件的升级方式和与该升级方式对应的文件名称,通过解析配置文件就可以根据解析出的内容自动对软件升级,避免了人工对软件进行升级,特别是软件中有很多的内容需要升级时,有效地提高了软件升级的效率。
Description
技术领域
本发明涉及计算机技术,尤指一种软件升级方法及装置。
背景技术
软件包括程序和文件,程序指的是一组指示计算机执行动作或做出判断的指令,也就是说该程序为计算机程序,文件包括配置文件和日志文件,例如,grub.cfg、libvirt.conf和anaconda-ks.cfg是配置文件,upgrade.log是日志文件。通过对软件中的程序和文件进行升级可以修复软件中存在的漏洞和增加软件的功能。在相关技术中,通过人工确定软件中的待升级的程序和待升级的文件,并开发出用于升级程序的安装包和用于升级文件的文件,再由人工使用开发出的安装包对软件中的程序进行升级,以及使用开发出的文件对软件中的文件进行升级。可见,软件中的程序和文件的升级都需要人工来完成,这样就导致了软件的升级效率比较低。特别是当软件中的待升级的程序和待升级的文件比较多时,人工对软件升级的效率是非常低的。
发明内容
为了解决上述技术问题,本发明提供了一种软件升级方法及装置,能够自动对软件进行升级,提高软件升级的效率。
为了达到本发明目的,本发明提供了一种软件升级方法,包括:
从预先设置的配置文件中解析出软件的升级方式以及与该升级方式对应的文件名称;
根据解析出的升级方式和文件名称对软件进行升级。
进一步地,所述根据解析出的升级方式和文件名称对软件进行升级之前,还包括:
从所述配置文件中解析出在对所述软件升级之前执行的动作和在对所述软件升级之后执行的动作。
进一步地,所述对软件进行升级之前,还包括:
根据所述文件名称,检查所述软件是否符合预先设置的与所述升级方式对应的升级要求;
在不符合预先设置的与升级方式对应的升级要求时,输出升级错误的提示信息。
进一步地,所述升级方式为:更新所述软件中的程序、向所述软件中添加程序、卸载所述软件中的程序、替换所述软件中的文件、向所述软件中添加文件或者删除所述软件中的文件。
进一步地,所述根据解析出的升级方式和名称对软件进行升级,包括:
若所述升级方式为更新所述软件中的程序、向所述软件中添加程序、替换所述软件中的文件或者向所述软件中添加文件,则从预先设置的升级文件中查找所述解析出的文件名称的文件,按照所述升级方式,使用该查找出的文件对所述软件进行升级;
若所述升级方式为卸载所述软件中的程序,根据所述解析出的文件名称,卸载所述软件中的使用所述解析出的文件名称的文件升级的程序;
若所述升级方式包括删除所述软件的文件,则根据所述解析出的文件名称,删除所述软件中的所述解析出的文件名称的文件。
进一步地,如果所述升级方式为:更新所述软件中的程序、卸载所述软件中的程序、替换所述软件中的文件或者删除所述软件中的文件,所述根据解析出的升级方式和名称对软件进行升级之前,还包括:
根据所述文件名称,从预先设置的备份文件中查找在对所述软件升级失败时用于将所述软件回滚到升级前的状态的文件。
进一步地,如果对所述软件升级成功,还包括:
若所述升级方式为更新所述软件中的程序或者替换所述软件中的文件,则删除所述备份文件中的用于将所述软件回滚到升级前的状态的文件,将从所述升级文件中查找到的文件添加到所述备份文件中;
若所述升级方式为向所述软件中添加程序或者向所述软件中添加文件,则将从所述升级文件中查找到的文件添加到所述备份文件中;
若所述升级方式为卸载所述软件中的程序或者删除所述软件中的文件,则删除所述备份文件中的用于将所述软件回滚到升级前的状态的文件。
本发明提供一种软件升级装置,包括:
解析模块,用于从预先设置的配置文件中解析出软件的升级方式以及与该升级方式对应的文件名称;
升级模块,用于根据解析出的升级方式和文件名称对软件进行升级。
进一步地,所述解析模块还用于,
从所述配置文件中解析出在对所述软件升级之前执行的动作和在对所述软件升级之后执行的动作。
进一步地,还包括:
检查模块,用于根据所述文件名称,检查所述软件是否符合预先设置的与所述升级方式对应的升级要求;
输出模块,用于在不符合预先设置的与升级方式对应的升级要求时,输出升级错误的提示信息。
进一步地,所述升级方式为:更新所述软件中的程序、向所述软件中添加程序、卸载所述软件中的程序、替换所述软件中的文件、向所述软件中添加文件或者删除所述软件中的文件。
进一步地,所述升级模块包括:
第一升级单元,用于若所述升级方式为更新所述软件中的程序、向所述软件中添加程序、替换所述软件中的文件或者向所述软件中添加文件,则从预先设置的升级文件中查找所述解析出的文件名称的文件,按照所述升级方式,使用该查找出的文件对所述软件进行升级;
第二升级单元,用于若所述升级方式为卸载所述软件中的程序,根据所述解析出的文件名称,卸载所述软件中的使用所述解析出的文件名称的文件升级的程序;
第三升级单元,用于若所述升级方式包括删除所述软件的文件,则根据所述解析出的文件名称,删除所述软件中的所述解析出的文件名称的文件。
进一步地,如果所述升级方式为:更新所述软件中的程序、卸载所述软件中的程序、替换所述软件中的文件或者删除所述软件中的文件,还包括:
查找模块,用于根据所述文件名称,从预先设置的备份文件中查找在对所述软件升级失败时用于将所述软件回滚到升级前的状态的文件。
进一步地,如果对所述软件升级成功,还包括:
添加模块,用于若所述升级方式为更新所述软件中的程序、替换所述软件中的文件、向所述软件中添加程序或者向所述软件中添加文件,则将从所述升级文件中查找到的文件添加到所述备份文件中;
删除模块,用于若所述升级方式为卸载所述软件中的程序、删除所述软件中的文件、更新所述软件中的程序或者替换所述软件中的文件,则删除所述备份文件中的用于将所述软件回滚到升级前的状态的文件。
本发明至少包括从预先设置的配置文件中解析出软件的升级方式以及与该升级方式对应的文件名称;根据解析出的升级方式和文件名称对软件进行升级。从本发明实施例可见,由于预先在配置文件中设置软件的升级方式和与该升级方式对应的文件名称,通过解析配置文件就可以根据解析出的内容自动对软件升级,避免了人工对软件进行升级,特别是软件中有很多的内容需要升级时,有效地提高了软件升级的效率。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例提供的一种软件升级方法的流程示意图;
图2为本发明实施例提供的另一种软件升级方法的流程示意图;
图3为本发明实施例提供的一种软件升级装置的结构示意图;
图4为本发明实施例提供的另一种软件升级装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例提供一种软件升级方法,如图1所示,该软件升级方法包括:
步骤101、从预先设置的配置文件中解析出软件的升级方式以及与该升级方式对应的文件名称。
具体地,预先在配置文件中设置软件的升级方式和该升级方式对应的文件名称,这样对该配置文件解析就可以解析出软件的升级方式和该升级方式对应的文件名称。其中,软件包括:***软件(例如操作***软件)和应用软件(例如办公软件、图像处理软件、社交通信软件等)。该软件可以安装在虚拟机上,还可以安装在物理主机上。配置文件可以是可扩展标记语言(eXtensible Markup Language,XML)格式的文件,例如配置文件为upgrade.xml。
步骤102、根据解析出的升级方式和名称对软件进行升级。
步骤101和步骤102的执行主体是主机。
进一步地,在图1对应实施例的基础上,步骤102之前,还包括:
从配置文件中解析出在对软件升级之前执行的动作和在对软件升级之后执行的动作。
配置文件中进一步包括:用于标识在对软件升级之前执行的动作的字段和用于标识在对软件升级之后执行的动作的字段,换句话说配置文件中进一步包括两种字段,第一种字段用于标识在软件升级之前执行哪些动作,第二种字段用于标识在软件升级之后执行哪些动作。因此在对配置文件解析时,不仅解析出了升级方式以及与升级方式对应的文件名称,还解析出了在对软件升级之前执行的动作和在对软件升级之后执行的动作,从而在对软件升级之前和对软件升级之后自动执行该解析出的动作,避免了在软件升级之前和在软件升级之后人工手动操控来执行该解析出的动作。其中,解析配置文件的实现可以采用相关技术中的方式实现,具体实现并不用于限定本发明的保护范围,这里不再赘述。解析出的在对软件升级之前执行的动作包括:暂停主机的业务,如果软件是安装在虚拟机上的,解析出的在对软件升级之前执行的动作还可以包括:清空虚拟机,解析出的在对软件升级之后执行的动作包括:重启操作***。
进一步地,在图1对应实施例的基础上,步骤102之前,还包括:
根据解析出的文件名称,检查软件是否符合预先设置的与升级方式对应的升级要求;在不符合预先设置的与升级方式对应的升级要求时,输出升级错误的提示信息。
进一步地,升级方式为:更新软件中的程序、向软件中添加程序、卸载软件中的程序、替换软件中的文件、向所述软件中添加文件或者删除软件中的文件。
一个软件包括程序和文件,程序指的是一组指示计算机执行动作或做出判断的指令,也就是说该程序为计算机程序,文件包括配置文件和日志文件,例如,grub.cfg、libvirt.conf和anaconda-ks.cfg是配置文件,upgrade.log是日志文件。在升级程序时,可以更新软件中的程序、向软件中添加程序、卸载软件中的程序、替换、删除软件中的文件或者向软件中添加文件。
下面具体说明与升级方式对应的升级要求。若升级方式为替换软件中的文件或者删除软件中的文件,则与该升级方式对应的升级要求为:软件中存在解析出的文件名称的文件;若升级方式为向软件中添加文件,则与该升级方式对应的升级要求为:软件中不存在解析出的文件名称的文件。若升级方式为更新软件中的程序,则与该升级方式对应的升级要求为:软件中存在待更新的程序,和在对程序升级后,升级后的程序的版本高于升级前的程序的版本;若升级方式为卸载软件中的程序,则与该升级方式对应的升级要求为:软件中存在待卸载的程序,若升级方式为向软件中添加程序,则与该升级方式对应的升级要求为:软件中不存在待添加的程序。如果软件不符合升级要求,说明升级错误,则输出升级错误的提示信息,以使技术人员发现错误并更正,从而减少了软件升级出错的概率。
进一步地,在图1对应实施例的基础上,步骤102包括:
若升级方式为更新软件中的程序、向软件中添加程序、替换软件中的文件或者向软件中添加文件,则从预先设置的升级文件中查找解析出的文件名称的文件,按照升级方式,使用查找出的文件对软件进行升级;若升级方式为卸载软件中的程序,根据解析出的文件名称,卸载软件中的使用该解析出的文件名称的文件升级的程序;若升级方式包括删除软件的安装文件,则根据解析出的文件名称,删除软件中的解析出的文件名称的文件。
具体地,若升级方式为更新软件中的程序,则根据解析出的文件名称,从预先设置的升级文件中查找该解析出的文件名称的文件,使用该查找到的文件对软件中的程序进行更新;若升级方式为向软件中添加程序,则根据解析出的文件名称,从预先设置的升级文件中查找该解析出的文件名称的文件,使用该查找到的文件向软件中添加新的程序,也就是说使用该查找到的文件为软件安装新的程序;若升级方式为卸载软件中的程序,则根据解析出的文件名称,卸载软件中的使用该解析出的文件名称的文件安装的程序。其中,在对软件中的程序进行更新或者向软件中添加程序时,从预先设置的升级文件中查找到的文件可以是由软件包管理器(Red Hat Package Manager,RPM)生成的文件,该生成的文件是RPM格式的文件。若升级方式为替换软件中的文件,则根据解析出的文件名称,从预先设置的升级文件中查找该解析出的文件名称的文件,使用该查找到的文件替换软件中的该解析出的文件名称的文件;若升级方式为向软件中添加文件,则根据解析出的文件名称,从预先设置的升级文件中查找该解析出的文件名称的文件,将该查找到的文件添加到软件中;若升级方式为删除软件中的文件,则根据解析出的文件名称,删除软件中的该解析出的文件名称的文件。
进一步地,在图1对应实施例的基础上,如果升级方式为:更新软件中的程序、卸载软件中的程序、替换软件中的文件或者删除软件中的文件,步骤102之前,还包括:
根据解析出的文件名称,从预先设置的备份文件中查找在所述软件升级失败时用于将软件回滚到升级前的状态的文件。
从备份文件中查找用于将软件回滚到升级前的状态的文件,这样当软件升级失败时,可以利用该查找出的文件将软件回滚到升级前的状态,减少在升级失败时给客户带来损失,从而保证了软件的可用性。另外,如果在对软件中的程序进行升级的过程中主机意外宕机或者断电,再次对该程序升级时自动检查该程序的已升级成功的部分,并跳过已升级成功的部分,接着该已升级成功的部分开始升级,这样避免意外情况对升级的影响,减少了技术人员参与软件的升级。
例如,若升级方式为更新软件中的程序,则根据解析出的文件名称,从预先设置的备份文件中查找待更新的程序的安装包,在备份文件中查找到的该程序的安装包是旧版本的安装包;若对该程序更新失败,使用从备份文件中查找到的安装包对该程序进行回滚。若升级方式为卸载软件中的程序,则根据解析出的文件名称,从预先设置的备份文件中查找待卸载的程序的安装包;若对该程序卸载失败,使用从备份文件中查找到的安装包对该程序进行回滚。
若升级方式为删除软件中的文件,则根据解析出的文件名称,从备份文件中查找该解析出的文件名称的文件,如果未成功删除软件中的文件,则利用从备份文件中查找出的文件将软件回滚到升级前的状态。若升级方式为替换软件中的文件,则根据解析出的文件名称,从升级文件中查找该解析出的文件名称的文件,该文件是最新版本的文件,并从备份文件中查找解析出的文件名称的文件,该文件是旧版本的文件,使用最新版本的文件替换旧版本的文件,若替换失败,使用旧版本的文件对软件进行回滚。
进一步地,如果对软件升级成功,还包括:
若升级方式为更新软件中的程序或者替换软件中的文件,则删除备份文件中的用于将软件回滚到升级前的状态的文件,将从升级文件中查找到的文件添加到备份文件中;若升级方式为向软件中添加程序或者向软件中添加文件,则将从升级文件中查找到的文件添加到备份文件中;若升级方式为卸载软件中的程序或者删除软件中的文件,则删除备份文件中的用于将软件回滚到升级前的状态的文件。
由于从升级文件中查找到的文件是最新版本的文件,因此将从升级文件中查找到的文件添加到备份文件中,保证了备份文件中的文件是最新版本的文件。而且删除备份文件中的用于将软件回滚到升级前的状态的文件,避免了备份文件中存在过多的冗余数据。
下面举一个例子对上述中的配置文件进行说明,在该例子中,软件安装在虚拟机上,用于对软件升级的配置文件的内容如下:
其中,<id>Center</id>表示软件的模式为Center。
<description>common configuration</description>表示软件的升级内容。
<version>CS50EESP1-Center</version>表示软件的版本号。
<hotfix>yes</hotfix>中的hotfix表示是否为软件的版本间的升级,yes表示是软件的版本间的升级,软件的版本间的升级指的是修复软件的漏洞,但不改***件的版本号,就是说软件的版本号不发生变化。
<backuppath>/tmp/iso</backuppath>表示软件回滚的路径,也就是说在该路径下存储有软件的备份文件。
<dependencies>
<dependency>CS50EE_Center_SP1.upgrade.zip</dependency>
</dependencies>
以上三行的内容表示软件所依赖的版本,意思是说软件依赖于版本为CS50EE_Center_SP1.upgrade.zip的安装包来完成安装的。
<requirements>和</requirements>之间的内容包括对软件升级前执行的动作和对软件升级后执行的动作。
<reboot>yes</reboot>中的reboot表示升级后是否重启虚拟机的操作***,<reboot>yes</reboot>中的yes表示升级后重启虚拟机的操作***。
<maintenance>yes</maintenance>中的maintenance表示升级前是否暂停运行虚拟机的主机的业务,<maintenance>yes</maintenance>中的yes表示升级前暂停该主机的业务。
<cleanvm>yes</cleanvm>中的cleanvm表示升级前是否清空虚拟机,<cleanvm>yes</cleanvm>中的yes表示升级前清空虚拟机。
在以上的内容中,cs-agent-1.7-39.20161021.x86_64.rpm表示用于更新软件中的程序的RPM包的名称,cs-agent表示待更新的程序的名称。
在以上的内容中,tree-2.5.0-1.x86_64.rpm表示用于向软件中添加程序的RPM包的名称,tree表示待添加的程序的名称。
在以上的内容中,screen-4.0.3-16.el.x86_64.rpm表示待卸载软件中程序的RPM包的名称,换句话说软件中的待卸载的程序是使用该RPM包安装得到的,screen表示待卸载的程序的名称。
<file method='add'>/var/log/upgrade.log</file>中的'add'表示向软件中添加文件,upgrade.log表示待添加的文件的名称,/var/log/表示待添加的文件的存储位置,换句话说就是向/file的文件夹中添加文件。
<file method='add'>/etc/grub/grub.cfg</file>中的'add'表示向软件中添加文件,grub.cfg表示待添加的文件的名称,/etc/grub/表示待添加的文件的存储位置,换句话说就是向/file的文件夹中添加文件。
<file method='update'>/etc/sasl2/libvirt.conf</file>中的'update'表示更新软件中的文件,libvirt.conf表示待更新的文件的名称,/etc/sasl2/表示待更新的文件的存储位置,换句话说就是更新/file的文件夹中的文件。
<file method='delete'>/root/anaconda-ks.cfg</file>中的'delete'表示删除软件中的文件,anaconda-ks.cfg表示待删除的文件的名称,/root/表示待删除的文件的存储位置,换句话说就是删除/file的文件夹中的文件。
根据本发明实施例的软件升级方法,从预先设置的配置文件中解析出软件的升级方式以及与该升级方式对应的文件名称;根据解析出的升级方式和文件名称对软件进行升级。从本发明实施例可见,由于预先在配置文件中设置软件的升级方式和与该升级方式对应的文件名称,通过解析配置文件就可以根据解析出的内容自动对软件升级,避免了人工对软件进行升级,特别是软件中有很多的内容需要升级时,有效地提高了软件升级的效率。而且本发明是将升级方式以及与该升级方式对应的文件名称设置到配置文件中即可,不需要人工对软件进行升级操作,降低了软件升级的复杂度,大大简化了软件升级的流程,使用户更容易操作,保证了软件升级的易用性。由于用户很容易操作软件升级,也就是说对用户在专业技术水平上要求不高,从而降低了公司在人力运维方面投入更多的成本。
本发明实施例提供另一种软件升级方法,如图2所示,该软件升级方法包括:
步骤201、下发对软件升级的任务,下发的任务中包括用于对软件升级的配置文件和升级文件。
步骤202、验证软件的升级文件是否正确,在验证正确时,执行步骤203,否则,结束本次流程,在结束本次流程时可以输出升级文件出错的提示。具体地,读取升级文件中的文件的名称,根据该文件的名称判断升级文件是否为该软件的升级文件,也就是说判断升级文件和软件是否是对应的。
步骤203、解析配置文件,以解析出配置文件中的升级方式和与该升级方式对应的文件名称。解析出的文件名称包括用于升级软件中的程序的RPM包的名称和/或用于升级软件中的文件的名称。
步骤204、从备份文件中查找用于将软件回滚到升级前的状态的文件。
步骤205、如果查找到多个用于将软件回滚到升级前的状态的文件,则删除多余的老版本文件。例如,在备份文件中查找到3个版本的RPM包,该3个版本的RPM包都用于升级一个程序,删除版本多余的2个老版本的RPM包,以保留该3个版本的RPM包中的最新版本的RPM包。
步骤206、如果解析出的文件名称中包括RPM包的名称,则从升级文件中查找该名称的RPM包,使用查找的RPM包对软件中的程序进行升级。
步骤207、软件中的程序是否升级成功,若升级成功则执行步骤208,若升级失败则执行步骤209。
步骤208、将从升级文件中查找出的RPM包添加到备份文件中。
步骤209、使用老版本的RPM包(即在步骤204中,从备份文件中查找的用于将软件中的程序回滚到升级前的状态的文件)将软件回滚到该升级之前的状态。
步骤210、如果解析出的文件的名称中包括用于升级软件中的文件的名称,则从升级文件中查找该名称的文件,使用查找的文件对软件中的文件进行升级。
步骤211、软件中的文件是否升级成功,若升级成功则执行步骤212,若升级失败则执行步骤214。
步骤212、将从升级文件中查找出的RPM包添加到备份文件中,将从升级文件中查找出的用于升级软件中的文件的文件添加到备份文件中。
步骤213、修改软件的版本号。
步骤214、使用老版本的文件(即在步骤204中,从备份文件中查找的用于将软件中的文件回滚到升级前的状态的文件)将软件中的文件回滚到该升级之前的状态。
步骤215、使用老版本的RPM包(即在步骤204中,从备份文件中查找的用于将软件中的程序回滚到升级前的状态的文件)将软件中的程序回滚到该升级之前的状态。
本发明实施例提供一种软件升级装置,如图3所示,该软件升级装置3包括:
解析模块31,用于从预先设置的配置文件中解析出软件的升级方式以及与该升级方式对应的文件名称。
升级模块32,用于根据解析出的升级方式和文件名称对软件进行升级。
进一步地,在图3对应实施例的基础上,解析模块31还用于,
从配置文件中解析出在对软件升级之前执行的动作和在对软件升级之后执行的动作。
进一步地,在图3对应实施例的基础上,本发明提供另一种软件升级装置,如图4所示,该软件升级装置3还包括:
检查模块33,用于根据文件名称,检查软件是否符合预先设置的与升级方式对应的升级要求;
输出模块34,用于在不符合预先设置的与升级方式对应的升级要求时,输出升级错误的提示信息。
进一步地,升级方式为:更新软件中的程序、向软件中添加程序、卸载软件中的程序、替换软件中的文件、向软件中添加文件或者删除软件中的文件。
进一步地,如图4所示,升级模块32包括:
第一升级单元321,用于若升级方式为更新软件中的程序、向软件中添加程序、替换软件中的文件或者向软件中添加文件,则从预先设置的升级文件中查找解析出的文件名称的文件,按照升级方式,使用该查找出的文件对软件进行升级。
第二升级单元322,用于若升级方式为卸载软件中的程序,根据解析出的文件名称,卸载软件中的使用解析出的文件名称的文件升级的程序。
第三升级单元323,用于若升级方式包括删除软件的文件,则根据解析出的文件名称,删除软件中的解析出的文件名称的文件。
进一步地,如果升级方式为:更新软件中的程序、卸载软件中的程序、替换软件中的文件或者删除软件中的文件,如图4所示,软件升级装置3还包括:
查找模块35,用于根据文件名称,从预先设置的备份文件中查找在对软件升级失败时用于将软件回滚到升级前的状态的文件。
进一步地,如果对软件升级成功,如图4所示,软件升级装置3还包括:
添加模块36,用于若升级方式为更新软件中的程序、替换软件中的文件、向软件中添加程序或者向软件中添加文件,则将从升级文件中查找到的文件添加到备份文件中。
删除模块37,用于若升级方式为卸载软件中的程序、删除软件中的文件、更新软件中的程序或者替换软件中的文件,则删除备份文件中的用于将软件回滚到升级前的状态的文件。
在实际应用中,解析模块31、升级模块32、检查模块33、输出模块34、查找模块35、添加模块36和删除模块37均可由软件升级装置3中的CPU、微处理器(Micro ProcessorUnit,MPU)、数字信号处理器(Digital Signal Processor,DSP)或现场可编程门阵列(Field Programmable Gate Array,FPGA)等实现。
根据本发明实施例的软件升级装置,从预先设置的配置文件中解析出软件的升级方式以及与该升级方式对应的文件名称;根据解析出的升级方式和文件名称对软件进行升级。从本发明实施例可见,由于预先在配置文件中设置软件的升级方式和与该升级方式对应的文件名称,通过解析配置文件就可以根据解析出的内容自动对软件升级,避免了人工对软件进行升级,特别是软件中有很多的内容需要升级时,有效地提高了软件升级的效率。
本发明实施例提供又一种软件升级装置,该软件升级装置包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现的步骤包括:
从预先设置的配置文件中解析出软件的升级方式以及与该升级方式对应的文件名称;
根据解析出的升级方式和文件名称对软件进行升级。
进一步地,上述处理器执行计算机程序时实现的步骤还包括:
从所述配置文件中解析出在对所述软件升级之前执行的动作和在对所述软件升级之后执行的动作。
进一步地,上述处理器执行计算机程序时实现的步骤还包括:
根据所述文件名称,检查所述软件是否符合预先设置的与所述升级方式对应的升级要求;在不符合预先设置的与升级方式对应的升级要求时,输出升级错误的提示信息。
进一步地,所述升级方式为:更新所述软件中的程序、向所述软件中添加程序、卸载所述软件中的程序、替换所述软件中的文件、向所述软件中添加文件或者删除所述软件中的文件。
进一步地,上述处理器执行计算机程序时实现的步骤具体包括:
若所述升级方式为更新所述软件中的程序、向所述软件中添加程序、替换所述软件中的文件或者向所述软件中添加文件,则从预先设置的升级文件中查找所述解析出的文件名称的文件,按照所述升级方式,使用该查找出的文件对所述软件进行升级;若所述升级方式为卸载所述软件中的程序,根据所述解析出的文件名称,卸载所述软件中的使用所述解析出的文件名称的文件升级的程序;若所述升级方式包括删除所述软件的文件,则根据所述解析出的文件名称,删除所述软件中的所述解析出的文件名称的文件。
进一步地,如果所述升级方式为:更新所述软件中的程序、卸载所述软件中的程序、替换所述软件中的文件或者删除所述软件中的文件,上述处理器执行计算机程序时实现的步骤还包括:
根据所述文件名称,从预先设置的备份文件中查找在对所述软件升级失败时用于将所述软件回滚到升级前的状态的文件。
进一步地,如果对所述软件升级成功,上述处理器执行计算机程序时实现的步骤还包括:
若所述升级方式为更新所述软件中的程序或者替换所述软件中的文件,则删除所述备份文件中的用于将所述软件回滚到升级前的状态的文件,将从所述升级文件中查找到的文件添加到所述备份文件中;若所述升级方式为向所述软件中添加程序或者向所述软件中添加文件,则将从所述升级文件中查找到的文件添加到所述备份文件中;若所述升级方式为卸载所述软件中的程序或者删除所述软件中的文件,则删除所述备份文件中的用于将所述软件回滚到升级前的状态的文件。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种软件升级方法,其特征在于,包括:
从预先设置的配置文件中解析出软件的升级方式以及与该升级方式对应的文件名称;
根据解析出的升级方式和文件名称对软件进行升级。
2.根据权利要求1所述的软件升级方法,其特征在于,所述根据解析出的升级方式和文件名称对软件进行升级之前,还包括:
从所述配置文件中解析出在对所述软件升级之前执行的动作和在对所述软件升级之后执行的动作。
3.根据权利要求1所述的软件升级方法,其特征在于,所述对软件进行升级之前,还包括:
根据所述文件名称,检查所述软件是否符合预先设置的与所述升级方式对应的升级要求;
在不符合预先设置的与升级方式对应的升级要求时,输出升级错误的提示信息。
4.根据权利要求1至3中任一项所述的软件升级方法,其特征在于,所述升级方式为:更新所述软件中的程序、向所述软件中添加程序、卸载所述软件中的程序、替换所述软件中的文件、向所述软件中添加文件或者删除所述软件中的文件。
5.根据权利要求4所述的软件升级方法,其特征在于,所述根据解析出的升级方式和名称对软件进行升级,包括:
若所述升级方式为更新所述软件中的程序、向所述软件中添加程序、替换所述软件中的文件或者向所述软件中添加文件,则从预先设置的升级文件中查找所述解析出的文件名称的文件,按照所述升级方式,使用该查找出的文件对所述软件进行升级;
若所述升级方式为卸载所述软件中的程序,根据所述解析出的文件名称,卸载所述软件中的使用所述解析出的文件名称的文件升级的程序;
若所述升级方式包括删除所述软件的文件,则根据所述解析出的文件名称,删除所述软件中的所述解析出的文件名称的文件。
6.根据权利要求5所述的软件升级方法,其特征在于,如果所述升级方式为:更新所述软件中的程序、卸载所述软件中的程序、替换所述软件中的文件或者删除所述软件中的文件,所述根据解析出的升级方式和名称对软件进行升级之前,还包括:
根据所述文件名称,从预先设置的备份文件中查找在对所述软件升级失败时用于将所述软件回滚到升级前的状态的文件。
7.根据权利要求6所述的软件升级方法,其特征在于,如果对所述软件升级成功,还包括:
若所述升级方式为更新所述软件中的程序或者替换所述软件中的文件,则删除所述备份文件中的用于将所述软件回滚到升级前的状态的文件,将从所述升级文件中查找到的文件添加到所述备份文件中;
若所述升级方式为向所述软件中添加程序或者向所述软件中添加文件,则将从所述升级文件中查找到的文件添加到所述备份文件中;
若所述升级方式为卸载所述软件中的程序或者删除所述软件中的文件,则删除所述备份文件中的用于将所述软件回滚到升级前的状态的文件。
8.一种软件升级装置,其特征在于,包括:
解析模块,用于从预先设置的配置文件中解析出软件的升级方式以及与该升级方式对应的文件名称;
升级模块,用于根据解析出的升级方式和文件名称对软件进行升级。
9.根据权利要求8所述的软件升级装置,其特征在于,所述升级方式为:更新所述软件中的程序、向所述软件中添加程序、卸载所述软件中的程序、替换所述软件中的文件、向所述软件中添加文件或者删除所述软件中的文件。
10.根据权利要求9所述的软件升级装置,其特征在于,所述升级模块包括:
第一升级单元,用于若所述升级方式为更新所述软件中的程序、向所述软件中添加程序、替换所述软件中的文件或者向所述软件中添加文件,则从预先设置的升级文件中查找所述解析出的文件名称的文件,按照所述升级方式,使用该查找出的文件对所述软件进行升级;
第二升级单元,用于若所述升级方式为卸载所述软件中的程序,根据所述解析出的文件名称,卸载所述软件中的使用所述解析出的文件名称的文件升级的程序;
第三升级单元,用于若所述升级方式包括删除所述软件的文件,则根据所述解析出的文件名称,删除所述软件中的所述解析出的文件名称的文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710881627.6A CN107391216A (zh) | 2017-09-26 | 2017-09-26 | 一种软件升级方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710881627.6A CN107391216A (zh) | 2017-09-26 | 2017-09-26 | 一种软件升级方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107391216A true CN107391216A (zh) | 2017-11-24 |
Family
ID=60350750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710881627.6A Pending CN107391216A (zh) | 2017-09-26 | 2017-09-26 | 一种软件升级方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391216A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113505777A (zh) * | 2021-07-20 | 2021-10-15 | 深圳市拓普泰克技术股份有限公司 | 键盘布局版本检测方法、装置、设备和存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1866252A (zh) * | 2006-02-20 | 2006-11-22 | 华为技术有限公司 | 不同版本的配置数据间进行转换的方法和*** |
CN101158908A (zh) * | 2007-10-25 | 2008-04-09 | 中兴通讯股份有限公司 | 一种设备软件升级自动化的实现***和方法 |
CN101281469A (zh) * | 2008-04-11 | 2008-10-08 | 青岛海信电器股份有限公司 | 嵌入式***及其启动加载的方法 |
CN101739278A (zh) * | 2009-12-17 | 2010-06-16 | 中国电力科学研究院 | 一种企业级应用软件升级方法及*** |
CN102170536A (zh) * | 2011-04-15 | 2011-08-31 | 深圳创维数字技术股份有限公司 | 数字电视网络***、数字电视一体机及其升级方法 |
CN102346673A (zh) * | 2010-07-27 | 2012-02-08 | 比亚迪股份有限公司 | 一种手机***升级的方法及装置 |
CN104156244A (zh) * | 2014-08-06 | 2014-11-19 | 北京奇虎科技有限公司 | 一种软件升级的方法和装置 |
CN104615471A (zh) * | 2015-03-05 | 2015-05-13 | 浪潮软件集团有限公司 | 一种终端的***升级方法及装置 |
CN106502685A (zh) * | 2016-11-01 | 2017-03-15 | Tcl集团股份有限公司 | 一种数据库的升级方法及*** |
-
2017
- 2017-09-26 CN CN201710881627.6A patent/CN107391216A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1866252A (zh) * | 2006-02-20 | 2006-11-22 | 华为技术有限公司 | 不同版本的配置数据间进行转换的方法和*** |
CN101158908A (zh) * | 2007-10-25 | 2008-04-09 | 中兴通讯股份有限公司 | 一种设备软件升级自动化的实现***和方法 |
CN101281469A (zh) * | 2008-04-11 | 2008-10-08 | 青岛海信电器股份有限公司 | 嵌入式***及其启动加载的方法 |
CN101739278A (zh) * | 2009-12-17 | 2010-06-16 | 中国电力科学研究院 | 一种企业级应用软件升级方法及*** |
CN102346673A (zh) * | 2010-07-27 | 2012-02-08 | 比亚迪股份有限公司 | 一种手机***升级的方法及装置 |
CN102170536A (zh) * | 2011-04-15 | 2011-08-31 | 深圳创维数字技术股份有限公司 | 数字电视网络***、数字电视一体机及其升级方法 |
CN104156244A (zh) * | 2014-08-06 | 2014-11-19 | 北京奇虎科技有限公司 | 一种软件升级的方法和装置 |
CN104615471A (zh) * | 2015-03-05 | 2015-05-13 | 浪潮软件集团有限公司 | 一种终端的***升级方法及装置 |
CN106502685A (zh) * | 2016-11-01 | 2017-03-15 | Tcl集团股份有限公司 | 一种数据库的升级方法及*** |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113505777A (zh) * | 2021-07-20 | 2021-10-15 | 深圳市拓普泰克技术股份有限公司 | 键盘布局版本检测方法、装置、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8365164B1 (en) | Portable software applications | |
US9262153B2 (en) | Firmware update discovery and distribution | |
US9804933B2 (en) | System differential upgrade method, apparatus, and mobile terminal | |
US10114630B2 (en) | Management of software and operating system updates required for the process of creating a virtual machine facsimile of an existing physical or virtual machine | |
CN102693139B (zh) | 一种无线升级手机软件的方法及*** | |
US6363499B1 (en) | Method and system for restoring a computer to its original state after an unsuccessful installation attempt | |
KR101143112B1 (ko) | 페일세이프 방식으로 맞춤 소프트웨어 영상 갱신을불휘발성 저장 장치에 적용하는 시스템 및 방법 | |
JP4878715B2 (ja) | オペレーティングシステムに適合しないアプリケーションにパッチを当てる方法、コンピュータシステム及びコンピュータ可読記録媒体 | |
US20110320882A1 (en) | Accelerated virtual environments deployment troubleshooting based on two level file system signature | |
US6269442B1 (en) | Apparatus and method for on-line replacement of a running program code and data using checkpoints | |
US20060048129A1 (en) | Patch un-installation | |
US20070118725A1 (en) | CPU life-extension apparatus and method | |
CN106775723A (zh) | 基于Android平台的***固件定制的方法和Android设备 | |
CN101815988A (zh) | 固件映像更新和管理 | |
US7320087B2 (en) | Information processing apparatus and method, program, and recording medium | |
CN109062598A (zh) | 一种安全的ota升级方法及*** | |
US6816984B1 (en) | Method and system for verifying and storing documents during a program failure | |
US9141385B2 (en) | Managing operating system components | |
CN102054041B (zh) | 元数据升级方法和*** | |
CN107391216A (zh) | 一种软件升级方法及装置 | |
CN110865829A (zh) | 数据库升级方法、***、设备及存储介质 | |
US20030046524A1 (en) | Method for dynamically designating initialization modules as recovery code | |
CN108228266A (zh) | 一种Android插件框架下不同插件间启动Fragment组件的方法和装置 | |
US9251043B2 (en) | Managed runtime enabling condition percolation | |
US11573779B2 (en) | Creating and upgrading of solutions for deployment in a virtualized computing environment |
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: 20171124 |
|
RJ01 | Rejection of invention patent application after publication |