CN107643895A - 一种软件打包方法和装置 - Google Patents
一种软件打包方法和装置 Download PDFInfo
- Publication number
- CN107643895A CN107643895A CN201710911389.9A CN201710911389A CN107643895A CN 107643895 A CN107643895 A CN 107643895A CN 201710911389 A CN201710911389 A CN 201710911389A CN 107643895 A CN107643895 A CN 107643895A
- Authority
- CN
- China
- Prior art keywords
- file
- differences
- temporary file
- software package
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种软件打包方法和装置。涉及云计算技术;解决了现有的软件更新打包方式消耗大量处理时间、降低升级效率的问题。该方法包括:对比软件的最新版本和上一版本,确定存在差异的部分;对所述存在差异的部分进行打包。本发明提供的技术方案适用于安装包更新,实现了在有效减少软件打包的大小的同时,提高软件打包速度,有效支撑***自动升级。
Description
技术领域
本发明涉及云计算技术,尤指一种软件打包方法和装置。
背景技术
随着云计算***软件的越来越复杂,动辄几百兆的软件安装包成为普遍现象,这不仅降低了软件自动化打包的速度,而且也不满足软件升级时对安装包的大小要求。
在实际应用过程中,软件需要频繁的进行更新,涉及的更新规模或大或小。无论涉及的修改规模有多大,均需要对软件进行新的打包操作得到新的安装包,使得需要频繁重复进行对整个软件的打包操作,工作量较大,且安装包数据量也较大,消耗了大量处理时间,降低了升级效率。
发明内容
为了解决上述技术问题,本发明提供了一种软件打包方法,包括:
对比软件的最新版本和上一版本,确定存在差异的部分;
对所述存在差异的部分进行打包。
优选的,对比软件的最新版本和上一版本,提取存在差异的部分生成变化文件部分的步骤包括:
对比软件的最新版本和上一版本,提取存在差异的部分生成变化文件;
将所述变化文件存入临时文件中。
优选的,对所述存在差异的部分进行打包的步骤之后,还包括:
清空所述临时文件的内容。
优选的,对所述存在差异的部分进行打包的步骤包括:
读取所述临时文件;
在检测到所述临时文件不为空、存储有变化文件时,对所述变化文件进行打包。
优选的,读取所述临时文件的步骤之后,还包括:
在检测到所述临时文件为空时,不执行打包操作。
优选的,读取所述临时文件的步骤具体为:
根据预置的打包周期循环读取所述临时文件。
本发明还提供了一种软件打包装置,包括:
差异发现模块,用于对比软件的最新版本和上一版本,确定存在差异的部分;
打包模块,用于对所述存在差异的部分进行打包。
优选的,所述差异发现模块包括:
变化文件提取单元,用于对比软件的最新版本和上一版本,提取存在差异的部分生成变化文件;
临时文件写入单元,用于将所述变化文件存入临时文件中。
优选的,所述打包模块包括:
临时文件读取单元,用于读取所述临时文件;
在检测到所述临时文件不为空、存储有变化文件时,对所述变化文件进行打包。
优选的,所述临时文件读取单元,具体用于根据预置的打包周期循环读取所述临时文件。
本发明提供了一种软件打包方法和装置,通过对比软件的最新版本和上一版本,确定存在差异的部分,仅针对该存在差异的部分进行打包,对不存在差异即没有发生变化的部分不执行打包操作,解决了现有的软件更新打包方式消耗大量处理时间、降低升级效率的问题。减少了打包操作的工作量,提升了打包操作的速度,更好的满足了***升级包的大小要求。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明的实施例一提供的一种软件打包方法的流程示意图;
图2为本发明的实施例二提供的一种软件打包装置的结构示意图;
图3为图2中差异发现模块201的结构示意图;
图4为图2中打包模块202的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在实际应用过程中,软件需要频繁的进行更新,涉及的更新规模或大或小。无论涉及的修改规模有多大,均需要对软件进行新的打包操作得到新的安装包,使得需要频繁重复进行对整个软件的打包操作,工作量较大,且安装包数据量也较大,消耗了大量处理时间,降低了升级效率。
为了解决上述问题,本发明的实施例提供了一种打包方法和装置。针对两个版本之间的文件变动情况,根据文件与软件打包的模式匹配,进行增量的***软件打包,进而实现频繁变动的部分频繁打包,低频变换的部分低频打包,减少了打包操作涉及的整体数据量,提升了***升级效率。
首先结合附图,对本发明的实施例一进行说明。
本发明提供了一种软件打包方法,使用该方法完成软件更新打包的流程如图1所述,包括:
步骤101、对比软件的最新版本和上一版本,确定存在差异的部分;
本步骤中,对比软件的最新版本和上一版本,提取存在差异的部分生成变化文件,将所述变化文件存入临时文件中。
优选的,可使用Git版本控制工具,检测两个版本之间的文件变动情况。使用Git命令判断版本之间文件变动,基于打包模式文件判断是否需打包。
针对两个版本之间的文件变动情况,根据文件与软件打包的模式匹配,进行增量的***软件打包。
在基于Git版本控制工具获取版本之间的变化文件后,将变化文件存入临时文件DIFF_TMP_FILE中。
本发明实施例中,将软件安装包逐次拆分为文档(Doc),开发(devel),核心(core),依赖库(lib),并根据软件源代码版本库中的更改,进行增量的软件打包,使得不频繁变动的依赖库(lib)较少打包和升级,而频繁变动的核心(core)得以经常的打包和升级。从而软件打包的速度得以提升,同时满足***升级包的大小要求。
步骤102、对所述存在差异的部分进行打包;
本步骤中,读取临时文件,具体的根据预置的打包周期循环读取所述临时文件。
在检测到所述临时文件不为空、存储有变化文件时,对所述变化文件进行打包。在检测到所述临时文件为空时,不执行打包操作。
仍以步骤101中基于Git版本控制工具获取版本之间的变化文件为例,在此种场景下,循环读取文件打包的模式regex_file,并根据DIFF_TMP_FILE进行模式匹配,判断模块是否需要打包。
在确定存在变化文件时,执行模块的具体打包函数,对变化部分进行打包。
以下为打包函数的一种具体代码实现:
步骤103、清空所述临时文件的内容;
本步骤中,在完成临时文件内变化文件的打包后,可清空所述临时文件的内容,表明本次打包成功。
实现了基于版本文件变动的增量软件打包,变化频繁的部分,频繁打包;变化少的部分,少打包;未曾变动部分一次打包。在有效减少软件打包的大小的同时,提高了软件打包的速度,并有效的支撑了***的自动升级。
下面结合附图,对本发明的实施例二进行说明。
本发明实施例提供了一种软件打包装置,其结构如图2所示,包括:
差异发现模块201,用于对比软件的最新版本和上一版本,确定存在差异的部分;
打包模块202,用于对所述存在差异的部分进行打包。
优选的,所述差异发现模块201的结构如图3所示,包括:
变化文件提取单元2011,用于对比软件的最新版本和上一版本,提取存在差异的部分生成变化文件;
临时文件写入单元2012,用于将所述变化文件存入临时文件中。
优选的,所述打包模块202的结构如图4所示,包括:
临时文件读取单元2021,用于读取所述临时文件;
打包执行模块2022,用于在检测到所述临时文件不为空、存储有变化文件时,对所述变化文件进行打包。
优选的,所述临时文件读取单元2021,具体用于根据预置的打包周期循环读取所述临时文件。
本发明的实施例提供了一种软件打包方法和装置,通过对比软件的最新版本和上一版本,确定存在差异的部分,仅针对该存在差异的部分进行打包,对不存在差异即没有发生变化的部分不执行打包操作,解决了现有的软件更新打包方式消耗大量处理时间、降低升级效率的问题。减少了打包操作的工作量,提升了打包操作的速度,更好的满足了***升级包的大小要求。在有效减少软件打包的大小的同时,提高了软件打包的速度,并有效的支撑了***的自动升级。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种软件打包方法,其特征在于,包括:
对比软件的最新版本和上一版本,确定存在差异的部分;
对所述存在差异的部分进行打包。
2.根据权利要求1所述的软件打包方法,其特征在于,对比软件的最新版本和上一版本,提取存在差异的部分生成变化文件部分的步骤包括:
对比软件的最新版本和上一版本,提取存在差异的部分生成变化文件;
将所述变化文件存入临时文件中。
3.根据权利要求2所述的软件打包方法,其特征在于,对所述存在差异的部分进行打包的步骤之后,还包括:
清空所述临时文件的内容。
4.根据权利要求2或3所述的软件打包方法,其特征在于,对所述存在差异的部分进行打包的步骤包括:
读取所述临时文件;
在检测到所述临时文件不为空、存储有变化文件时,对所述变化文件进行打包。
5.根据权利要求4所述的软件打包方法,其特征在于,读取所述临时文件的步骤之后,还包括:
在检测到所述临时文件为空时,不执行打包操作。
6.根据权利要求4所述的软件打包方法,其特征在于,读取所述临时文件的步骤具体为:
根据预置的打包周期循环读取所述临时文件。
7.一种软件打包装置,其特征在于,包括:
差异发现模块,用于对比软件的最新版本和上一版本,确定存在差异的部分;
打包模块,用于对所述存在差异的部分进行打包。
8.根据权利要求7所述的软件打包装置,其特征在于,所述差异发现模块包括:
变化文件提取单元,用于对比软件的最新版本和上一版本,提取存在差异的部分生成变化文件;
临时文件写入单元,用于将所述变化文件存入临时文件中。
9.根据权利要求8所述的软件打包装置,其特征在于,所述打包模块包括:
临时文件读取单元,用于读取所述临时文件;
打包执行模块,用于在检测到所述临时文件不为空、存储有变化文件时,对所述变化文件进行打包。
10.根据权利要求9所述的软件打包方法,其特征在于,
所述临时文件读取单元,具体用于根据预置的打包周期循环读取所述临时文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710911389.9A CN107643895A (zh) | 2017-09-29 | 2017-09-29 | 一种软件打包方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710911389.9A CN107643895A (zh) | 2017-09-29 | 2017-09-29 | 一种软件打包方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107643895A true CN107643895A (zh) | 2018-01-30 |
Family
ID=61123113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710911389.9A Pending CN107643895A (zh) | 2017-09-29 | 2017-09-29 | 一种软件打包方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107643895A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108664254A (zh) * | 2018-05-09 | 2018-10-16 | 中山市博美科研技术服务有限公司 | 一种软件打包方法及装置 |
CN109032641A (zh) * | 2018-07-24 | 2018-12-18 | 杭州安恒信息技术股份有限公司 | 应用版本更新方法及装置 |
CN110389773A (zh) * | 2018-04-23 | 2019-10-29 | 比亚迪股份有限公司 | 软件发布及部署方法、装置及*** |
CN111651193A (zh) * | 2020-06-03 | 2020-09-11 | 上海米哈游天命科技有限公司 | 一种信息打包方法、装置、设备及介质 |
CN111782263A (zh) * | 2020-07-22 | 2020-10-16 | 网易(杭州)网络有限公司 | 游戏打包的处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019641A (zh) * | 2012-12-13 | 2013-04-03 | 北京奇虎科技有限公司 | 在远程控制过程中传输数据的设备及方法 |
CN104834539A (zh) * | 2015-03-02 | 2015-08-12 | 倪桂强 | 一种数据增量更新方法 |
CN106250195A (zh) * | 2016-08-10 | 2016-12-21 | 青岛海信电器股份有限公司 | 更新***文件的方法、设备及*** |
CN106502696A (zh) * | 2016-10-26 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 一种升级安装包的生成方法及相关装置 |
-
2017
- 2017-09-29 CN CN201710911389.9A patent/CN107643895A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019641A (zh) * | 2012-12-13 | 2013-04-03 | 北京奇虎科技有限公司 | 在远程控制过程中传输数据的设备及方法 |
CN104834539A (zh) * | 2015-03-02 | 2015-08-12 | 倪桂强 | 一种数据增量更新方法 |
CN106250195A (zh) * | 2016-08-10 | 2016-12-21 | 青岛海信电器股份有限公司 | 更新***文件的方法、设备及*** |
CN106502696A (zh) * | 2016-10-26 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 一种升级安装包的生成方法及相关装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110389773A (zh) * | 2018-04-23 | 2019-10-29 | 比亚迪股份有限公司 | 软件发布及部署方法、装置及*** |
CN108664254A (zh) * | 2018-05-09 | 2018-10-16 | 中山市博美科研技术服务有限公司 | 一种软件打包方法及装置 |
CN109032641A (zh) * | 2018-07-24 | 2018-12-18 | 杭州安恒信息技术股份有限公司 | 应用版本更新方法及装置 |
CN109032641B (zh) * | 2018-07-24 | 2022-07-08 | 杭州安恒信息技术股份有限公司 | 应用版本更新方法及装置 |
CN111651193A (zh) * | 2020-06-03 | 2020-09-11 | 上海米哈游天命科技有限公司 | 一种信息打包方法、装置、设备及介质 |
CN111782263A (zh) * | 2020-07-22 | 2020-10-16 | 网易(杭州)网络有限公司 | 游戏打包的处理方法及装置 |
CN111782263B (zh) * | 2020-07-22 | 2024-01-23 | 网易(杭州)网络有限公司 | 游戏打包的处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107643895A (zh) | 一种软件打包方法和装置 | |
CN103955363B (zh) | 一种程序升级安装包的制作方法 | |
CN1168001C (zh) | 根据各版本将更新应用于程序和数据文件集合的方法和*** | |
CN100489774C (zh) | 结构化的代码自动配置方法及装置 | |
CN110383247B (zh) | 由计算机执行的方法、计算机可读介质与异构计算*** | |
US10114745B2 (en) | Assisted garbage collection in a virtual machine | |
US9021455B2 (en) | Packed data objects | |
CN103678698A (zh) | 一种提高pdf文档在线浏览加载速度的方法及其装置 | |
WO2016134641A1 (en) | On-demand loading of dynamic scripting language code for reduced memory usage | |
CN110309386B (zh) | 一种网页爬取的方法和装置 | |
CN105138603A (zh) | 一种从HPUX平台向KUX平台迁移的Oracle数据库迁移工具 | |
CN103473062A (zh) | 一种基于用户空间文件***的移动终端定制化方法及*** | |
CN104657142A (zh) | 一种基于OSGi技术的CCFD*** | |
CN111190687A (zh) | 一种容器镜像的构建方法、装置、设备及存储介质 | |
CN101719168A (zh) | 一种基于算法可配置的通用数据入库方法 | |
CN108037929A (zh) | 一种消息处理方法及*** | |
CN108984102B (zh) | 管理存储***的方法、***和计算机程序产品 | |
CN111045686B (zh) | 一种提高应用反编译速度的方法、智能终端及存储介质 | |
CN111221698A (zh) | 任务数据采集方法与装置 | |
CN106951593B (zh) | 一种生成保护测控装置的配置文件的方法和装置 | |
US9043305B2 (en) | Flexible metadata composition | |
CN109165210A (zh) | 一种集群Hbase数据迁移的方法及装置 | |
CN104281471A (zh) | 多版本软件ota升级方法 | |
JP5536593B2 (ja) | 最適化装置、最適化方法およびコンパイラ・プログラム | |
KR20010083781A (ko) | 메모리 요건을 줄인 프로그램 코드 실행 장치 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180130 |