CN107608698B - 一种命令行工具更新方法及装置 - Google Patents
一种命令行工具更新方法及装置 Download PDFInfo
- Publication number
- CN107608698B CN107608698B CN201710948758.1A CN201710948758A CN107608698B CN 107608698 B CN107608698 B CN 107608698B CN 201710948758 A CN201710948758 A CN 201710948758A CN 107608698 B CN107608698 B CN 107608698B
- Authority
- CN
- China
- Prior art keywords
- command line
- module
- line tool
- target cache
- tool
- 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.)
- Active
Links
Images
Abstract
本发明公开了一种命令行工具更新方法及装置,该方法包括:检测目标缓存路径下命令行工具对应的命令行模块是否为最新版本,在目标缓存路径下,文件修改无需最高权限,命令行模块为命令行工具的安装包中除更新检测模块和更新安装模块之外的部分,当命令行模块不是最新版本时,将命令行模块更新至最新版本。本发明的上述技术方案,命令行工具的开发者、使用者在命令行工具有更新后,命令行工具开发者无需一个个通知命令行工具使用者更新,命令行工具使用者也无需手动更新,优化了双方的体验,并且可以在命令行工具快速更新的情况下保证命令行工具使用者的体验一致。
Description
技术领域
本发明命令行工具开发使用技术领域,特别涉及一种命令行工具更新方法及装置。
背景技术
目前,命令行工具如果有更新时,当前比较普遍的做法是,命令行工具开发者需要通知命令行工具使用者,并让命令行工具使用者手动执行更新命令完成更新。然而,上述的现有技术方案仍然有让用户不够方便以及体验不够好的地方:对命令行工具开发者来说,如果命令行工具有更新,命令行工具开发者需要口头或在程序里告知命令行工具使用者工具有更新;对命令行工具使用者来说,更新命令行工具常常需要输入系统密码,非常不方便,并且如果是团队工具,很多命令行工具使用者之间的命令行工具版本不一致,体验自然也不一致。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种命令行工具更新方法及装置。用以自动完成命令行工具的更新。
本发明提供一种命令行工具更新方法,包括:
检测目标缓存路径下所述命令行工具对应的命令行模块是否为最新版本,在所述目标缓存路径下,文件修改无需最高权限,所述命令行模块为所述命令行工具的安装包中除更新检测模块和更新安装模块之外的部分;
当所述命令行模块不是最新版本时,将所述命令行模块更新至最新版本。
可选地,在所述检测目标缓存路径下所述命令行工具对应的命令行模块是否为最新版本之前,所述方法还包括:
在安装所述命令行工具时,仅安装所述命令行工具安装包中的更新检测模块和更新安装模块,所述更新检测模块用于检测所述命令行模块是否有更新,所述更新安装模块用于在所述命令行模块有更新时,安装所述更新后的命令行模块。
可选地,所述方法还包括:
在所述命令行工具使用时,将所述命令行工具对应的命令行模块安装在目标缓存路径下。
可选地,所述在所述命令行工具使用时,将所述命令行工具对应的命令行模块安装在目标缓存路径下,包括:
在所述命令行工具使用时,检测所述目标缓存路径中是否存在所述命令行工具对应的命令行模块;
当所述目标缓存路径中不存在所述命令行模块时,下载并安装所述命令行模块,并将所述命令行模块保存在所述目标缓存路径中。
可选地,所述目标缓存路径在用户目录下。
本发明还提供一种命令行工具更新装置,包括:
检测模块,用于检测目标缓存路径下所述命令行工具对应的命令行模块是否为最新版本,在所述目标缓存路径下,文件修改无需最高权限,所述命令行模块为所述命令行工具的安装包中除更新检测模块和更新安装模块之外的部分;
更新模块,用于当所述命令行模块不是最新版本时,将所述命令行模块更新至最新版本。
可选地,所述装置还包括:
第一安装模块,用于在安装所述命令行工具时,仅安装所述命令行工具安装包中的更新检测模块和更新安装模块,所述更新检测模块用于检测所述命令行模块是否有更新,所述更新安装模块用于在所述命令行模块有更新时,安装所述更新后的命令行模块。
可选地,所述装置还包括:
第二安装模块,用于在所述命令行工具使用时,将所述命令行工具对应的命令行模块安装在目标缓存路径下。
可选地,所述第二安装模块,包括:
检测子模块,用于在所述命令行工具使用时,检测所述目标缓存路径中是否存在所述命令行工具对应的命令行模块;
安装子模块,用于当所述目标缓存路径中不存在所述命令行模块时,下载并安装所述命令行模块,并将所述命令行模块保存在所述目标缓存路径中。
可选地,所述目标缓存路径在用户目录下。
本发明的实施例提供的技术方案可以包括以下有益效果:
上述技术方案,通过检测目标缓存路径下命令行工具对应的命令行模块是否为最新版本,在目标缓存路径下,文件修改无需最高权限,命令行模块为命令行工具的安装包中除更新检测模块和更新安装模块之外的部分,当命令行模块不是最新版本时,将命令行模块更新至最新版本。命令行工具的开发者、使用者在命令行工具有更新后,命令行工具开发者无需一个个通知命令行工具使用者更新,命令行工具使用者也无需手动更新,优化了双方的体验,并且可以在命令行工具快速更新的情况下保证命令行工具使用者的体验一致。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中一种命令行工具更新方法的流程图;
图2为本发明实施例中另一种命令行工具更新方法的流程图;
图3为本发明实施例中另一种命令行工具更新方法的流程图;
图4为本发明实施例中一种命令行工具更新方法中步骤S14的流程图;
图5为本发明实施例中一种命令行工具更新装置的框图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1所示为本发明实施例中一种命令行工具更新方法的流程图,如图1所示,该命令行工具更新方法包括以下步骤S11-S12:
步骤S11,检测目标缓存路径下命令行工具对应的命令行模块是否为最新版本,在目标缓存路径下,文件修改无需最高权限,命令行模块为命令行工具的安装包中除更新检测模块和更新安装模块之外的部分。
步骤S12,当命令行模块不是最新版本时,将命令行模块更新至最新版本。
目前,命令行工具有更新时,可以自动提示命令行工具使用者命令行工具有更新,然后等待命令行工具使用者手动完成更新。它不能完成自动更新的原因是需要修改全局目录下的文件,而修改的话需要最高权限,比如常见的让用户输入系统密码才可以。而本发明实施例提供的技术方案,在电脑中使用命令行工具时,一旦命令行工具被以全局命令的形式被安装后,可以自动检查版本更新并自动完成更新,不需要使用者手动更新。
本实施例中,会检查目标缓存路径中的命令行模块是否是最新的。如果不是最新的,会下载最新版本覆盖原来的文件。由于在目标缓存路径下,文件修改无需最高权限,也就是无需让用户输入系统用户名和密码,就可完成自动检测命令行工具更新,自动升级命令行工具,无需使用系统最高权限,无需通知命令行工具使用者,极大提高命令行开发者和命令行使用者的体验。
本发明实施例的上述方法,通过检测目标缓存路径下命令行工具对应的命令行模块是否为最新版本,在目标缓存路径下,文件修改无需最高权限,命令行模块为命令行工具的安装包中除更新检测模块和更新安装模块之外的部分,当命令行模块不是最新版本时,将命令行模块更新至最新版本。通过上述技术方案,命令行工具的开发者、使用者在命令行工具有更新后,命令行工具开发者无需一个个通知命令行工具使用者更新,命令行工具使用者也无需手动更新,优化了双方的体验,并且可以在命令行工具快速更新的情况下保证命令行工具使用者的体验一致。
在一个实施例中,如图2所示,在步骤S11之前,该命令行工具更新方法还可包括步骤S13:
步骤S13,在安装命令行工具时,仅安装命令行工具安装包中的更新检测模块和更新安装模块,更新检测模块用于检测命令行模块是否有更新,更新安装模块用于在命令行模块有更新时,安装更新后的命令行模块。
命令行工具在被安装时,不是安装整个安装包,而是只会安装检测更新和安装更新的代码文件(即更新检测模块和更新安装模块)。这类代码文件安装后不会再更新,而命令行工具的核心部分命令行模块不会被安装,这个模块会经常更新。
本实施例中,命令行工具安装时不安装经常变动的模块,而只安装更新检测和更新安装模块。如果该命令行工具不被使用,则只有安装更新检测和更新安装模块,由于这两个模块占用空间较小,因此,节约了内存空间。
在一个实施例中,如图3所示,该命令行工具更新方法还可包括步骤S14:
步骤S14,在命令行工具使用时,将命令行工具对应的命令行模块安装在目标缓存路径下。
安装命令行工具时,仅安装更新检测模块和更新安装模块,该命令行工具如果不被使用,则仅有安装更新检测模块和更新安装模块,但该命令行工具一旦被使用,就会自动下载该命令行工具的核心部分命令行模块。
本实施例中,命令行工具中经常更新的核心模块命令行模块被安装在无需最高权限就能改动的文件目录下,避免了更新文件时需要用户输入系统密码才能完成的情况。
在一个实施例中,如图4所示,步骤S14可包括以下步骤S141-S142:
步骤S141,在命令行工具使用时,检测目标缓存路径中是否存在命令行工具对应的命令行模块。
步骤S142,当目标缓存路径中不存在命令行模块时,下载并安装命令行模块,并将命令行模块保存在目标缓存路径中。
命令行工具在使用时,会检查目标缓存路径中是否存在核心命令行模块。可选地,目标缓存路径在用户目录下。该路径下,文件可以自由改动,无需最高权限,从而避免了输入系统用户名和密码。如果目标缓存路径中不存在命令行模块,首先会安装命令行模块,并将其存放在目标缓存路径,避免因为权限问题报错。
本发明上述介绍的实施例,在使用过程中,命令行工具开发者可以快速的更新多个版本,命令行工具使用者无需手动更新就能像系统打补丁一样完成自动更新,团队各个成员的使用版本一致,极大提升了开发体验。
基于同一发明构思,本发明实施例还提供了一种命令行工具更新装置,由于该装置所解决问题的原理与前述命令行工具更新方法相似,因此该装置的实施可以参见前述方法的实施,重复之处不再赘述。
图5所示为本发明实施例中一种命令行工具更新装置的框图,如图5所示,该命令行工具更新装置包括:
检测模块51,用于检测目标缓存路径下命令行工具对应的命令行模块是否为最新版本,在目标缓存路径下,文件修改无需最高权限,命令行模块为命令行工具的安装包中除更新检测模块和更新安装模块之外的部分;
更新模块52,用于当命令行模块不是最新版本时,将命令行模块更新至最新版本。
本发明实施例的上述装置,通过检测目标缓存路径下命令行工具对应的命令行模块是否为最新版本,在目标缓存路径下,文件修改无需最高权限,命令行模块为命令行工具的安装包中除更新检测模块和更新安装模块之外的部分,当命令行模块不是最新版本时,将命令行模块更新至最新版本。通过上述技术方案,命令行工具的开发者、使用者在命令行工具有更新后,命令行工具开发者无需一个个通知命令行工具使用者更新,命令行工具使用者也无需手动更新,优化了双方的体验,并且可以在命令行工具快速更新的情况下保证命令行工具使用者的体验一致。
可选地,该命令行工具更新装置还包括:
第一安装模块,用于在安装命令行工具时,仅安装命令行工具安装包中的更新检测模块和更新安装模块,更新检测模块用于检测命令行模块是否有更新,更新安装模块用于在命令行模块有更新时,安装更新后的命令行模块。
可选地,该命令行工具更新装置还包括:
第二安装模块,用于在命令行工具使用时,将命令行工具对应的命令行模块安装在目标缓存路径下。
可选地,第二安装模块,包括:
检测子模块,用于在命令行工具使用时,检测目标缓存路径中是否存在命令行工具对应的命令行模块;
安装子模块,用于当目标缓存路径中不存在命令行模块时,下载并安装命令行模块,并将命令行模块保存在目标缓存路径中。
可选地,目标缓存路径在用户目录下。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (6)
1.一种命令行工具更新方法,其特征在于,包括:
检测目标缓存路径下所述命令行工具对应的命令行模块是否为最新版本,在所述目标缓存路径下,文件修改无需最高权限,所述命令行模块为所述命令行工具的安装包中除更新检测模块和更新安装模块之外的部分;
当所述命令行模块不是最新版本时,将所述命令行模块更新至最新版本;
在所述检测目标缓存路径下所述命令行工具对应的命令行模块是否为最新版本之前,所述方法还包括:
在安装所述命令行工具时,仅安装所述命令行工具安装包中的更新检测模块和更新安装模块,所述更新检测模块用于检测所述命令行模块是否有更新,所述更新安装模块用于在所述命令行模块有更新时,安装所述更新后的命令行模块;
所述方法还包括:
在所述命令行工具使用时,将所述命令行工具对应的命令行模块安装在目标缓存路径下。
2.如权利要求1所述的方法,其特征在于,所述在所述命令行工具使用时,将所述命令行工具对应的命令行模块安装在目标缓存路径下,包括:
在所述命令行工具使用时,检测所述目标缓存路径中是否存在所述命令行工具对应的命令行模块;
当所述目标缓存路径中不存在所述命令行模块时,下载并安装所述命令行模块,并将所述命令行模块保存在所述目标缓存路径中。
3.如权利要求1或2所述的方法,其特征在于,所述目标缓存路径在用户目录下。
4.一种命令行工具更新装置,其特征在于,包括:
检测模块,用于检测目标缓存路径下所述命令行工具对应的命令行模块是否为最新版本,在所述目标缓存路径下,文件修改无需最高权限,所述命令行模块为所述命令行工具的安装包中除更新检测模块和更新安装模块之外的部分;
更新模块,用于当所述命令行模块不是最新版本时,将所述命令行模块更新至最新版本;
所述装置还包括:
第一安装模块,用于在安装所述命令行工具时,仅安装所述命令行工具安装包中的更新检测模块和更新安装模块,所述更新检测模块用于检测所述命令行模块是否有更新,所述更新安装模块用于在所述命令行模块有更新时,安装所述更新后的命令行模块;
所述装置还包括:
第二安装模块,用于在所述命令行工具使用时,将所述命令行工具对应的命令行模块安装在目标缓存路径下。
5.如权利要求4所述的装置,其特征在于,所述第二安装模块,包括:
检测子模块,用于在所述命令行工具使用时,检测所述目标缓存路径中是否存在所述命令行工具对应的命令行模块;
安装子模块,用于当所述目标缓存路径中不存在所述命令行模块时,下载并安装所述命令行模块,并将所述命令行模块保存在所述目标缓存路径中。
6.如权利要求4或5所述的装置,其特征在于,所述目标缓存路径在用户目录下。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710948758.1A CN107608698B (zh) | 2017-10-12 | 2017-10-12 | 一种命令行工具更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710948758.1A CN107608698B (zh) | 2017-10-12 | 2017-10-12 | 一种命令行工具更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107608698A CN107608698A (zh) | 2018-01-19 |
CN107608698B true CN107608698B (zh) | 2020-05-19 |
Family
ID=61068727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710948758.1A Active CN107608698B (zh) | 2017-10-12 | 2017-10-12 | 一种命令行工具更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107608698B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522615B (zh) * | 2020-04-23 | 2023-08-15 | 深圳赛安特技术服务有限公司 | 命令行界面的更新方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530150A (zh) * | 2013-10-10 | 2014-01-22 | 上海爱数软件有限公司 | 一种Linux操作系统远程更新的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8341652B2 (en) * | 2009-02-26 | 2012-12-25 | Red Hat, Inc. | Method for programmatic editing of configuration files |
-
2017
- 2017-10-12 CN CN201710948758.1A patent/CN107608698B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530150A (zh) * | 2013-10-10 | 2014-01-22 | 上海爱数软件有限公司 | 一种Linux操作系统远程更新的方法 |
Non-Patent Citations (1)
Title |
---|
Node.js 使用命令行工具检查更新;KohPoll;《https://www.jb51.net/article/115665.htm》;20170608;第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107608698A (zh) | 2018-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9405630B2 (en) | Methods and apparatus to perform site recovery of a virtual data center | |
US8938735B2 (en) | Bootstrapper and software download manager | |
CN105573780B (zh) | 一种基于容器的移动终端操作系统升级方法和装置 | |
CN106790247A (zh) | 一种Android系统升级的方法和装置 | |
CN107193607B (zh) | 用于更新代码文件的方法和装置、存储介质、处理器以及终端 | |
US9542173B2 (en) | Dependency handling for software extensions | |
CN104636172A (zh) | 一种应用升级方法和装置 | |
CN105389187B (zh) | 一种系统更新的方法 | |
CN106886436A (zh) | 一种Android系统升级的方法和装置 | |
WO2016111673A1 (en) | Multi-tenant upgrading | |
CN105511920A (zh) | 一种基于容器的移动终端操作系统升级方法和装置 | |
CN104346206A (zh) | 一种已卸载软件恢复安装的方法和系统 | |
CN105045640A (zh) | 一种软件升级方法、装置及智能设备 | |
CN105204910A (zh) | 一种脚本热更新方法和系统 | |
US8769520B2 (en) | Calendar aware adaptive patching of a computer program | |
CN110472381B (zh) | 基于安卓系统的root权限隐藏方法、系统及存储介质 | |
CN113805965B (zh) | 一种外部插件安装的方法、装置、设备及可读介质 | |
CN103500114A (zh) | 一种应用程序的安装方法及装置 | |
CN107608698B (zh) | 一种命令行工具更新方法及装置 | |
CN114942933A (zh) | 一种自动更新数据库的方法及相关装置 | |
CN109032617B (zh) | 一种自动删除安装包的控制方法及控制装置 | |
US9760364B2 (en) | Checks for software extensions | |
JP2011040048A (ja) | 情報処理装置、情報処理方法、情報処理プログラム | |
JP2016001376A (ja) | プログラマブルコントローラシステム、その支援装置 | |
CN108595292B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |