CN113672262B - 一种linux终端系统的自动升级方法 - Google Patents
一种linux终端系统的自动升级方法 Download PDFInfo
- Publication number
- CN113672262B CN113672262B CN202110949996.0A CN202110949996A CN113672262B CN 113672262 B CN113672262 B CN 113672262B CN 202110949996 A CN202110949996 A CN 202110949996A CN 113672262 B CN113672262 B CN 113672262B
- Authority
- CN
- China
- Prior art keywords
- file
- source
- run
- script
- update
- 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
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000009434 installation Methods 0.000 claims abstract description 33
- 238000013515 script Methods 0.000 claims description 38
- 230000001419 dependent effect Effects 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 7
- 238000004519 manufacturing process Methods 0.000 abstract description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000003054 catalyst Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version 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终端系统的自动升级方法,通过在linux终端环境下制作补丁包,只需要将补丁包要做的事情填写到UpdateDescription.txt中,将要修改的文件添加到root下,将要更新的deb包放在deb_to_update目录下,然后运行mkrun.sh即可,对于其他需要升级的linux终端系统而言,直接将补丁包放在自己的linux终端系统环境下,执行run文件即可升级。由于补丁包制作的过程中,不止添加了deb包,还添加了deb包的依赖包,因此,整个的系统升级可以在无网络连接的情况下,成功升级。能够大大减轻使用者的安装时间,增强用户体验。
Description
技术领域
本申请涉及计算机系统升级技术领域,尤其涉及一种linux终端系统的自动升级方法。
背景技术
Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux操作系统被应用在越来越多的地方,linux操作系统的更新升级也越来越快。在整个操作系统的发展中,自动升级尤为重要,是强有力的催化剂。
现有的linux终端系统升级存在问题:升级时需要整个系统重新烧录,费时费力,之前个人在系统中所安装的应用、配置等都会清零,升级后的系统需要重新下载安装应用,无个性化的存在。而命令升级的方式则存在网络因素的限制,在无网络的情况下,无法进行升级,在想要更新个别软件应用时,步骤较为繁琐。
发明内容
本申请提供一种linux终端系统的自动升级方法,能够快速简单的进行升级操作,大大减轻使用者的安装时间,能够保留使用者对终端系统的使用痕迹,增强用户体验。
有鉴于此,本申请提供了一种linux终端系统的自动升级方法,包括以下步骤:
步骤S1、linux操作系统环境下制作补丁包,其中,制定补丁包的步骤包括:
步骤S101、创建source目录;
步骤S102、在source目录下创建deb_to_update目录以及用与存放要添加或要更改的文件的root目录,将要更新的deb包及其依赖包放置在deb_to_update目录,其中,deb包及其依赖包从企业源中进行下载,或者获得源码,在linux操作系统环境下进行本地编译获得deb包;
步骤S103、编写用于生成run文件的autoinstall.sh脚本;
步骤S104、在source目录下编写用于执行更新升级的update.sh脚本,run文件运行后调用update.sh脚本;
步骤S105、创建readme-XXX.txt文件;
步骤S106、编写mkrun.sh脚本,mkrun.sh脚本用于生成run.md5sum文件及readme文件,调用autoinstall.sh脚本生成run文件,并这三个文件生成patch目录下,patch目录为预先创建的source同级目录;
步骤S2、执行补丁包中的run文件,升级系统。
可选地,步骤S101还包括:创建UpdateDescription.txt文件填写更新描述。
可选地,所述autoinstall.sh脚本的执行步骤包括:
利用tail命令将source.tar.gz从run文件第16行开始剥离出来,放到/tmp/source.tar.gz;
进入/tmp,解压source.tar.gz为文件夹;
删除压缩包;
执行安装脚本:判断命令行参数执行对应流程,参数-s用于判断显示或跳过终端提示;
执行完毕,删除source文件夹;
退出。
可选地,update.sh脚本的执行步骤包括:
判断版本信息,查看补丁包是否适用于系统版本,不适合则退出,否则进行安装步骤;
终端提示,提示readme-XXX.txt的内容;
运行安装,进行升级操作;
检查是否更新成功。
可选地,mkrun.sh脚本的执行步骤包括:
将source和autoinstall.sh放在同级目录autorun下;
生成deblist.txt、debname.txt、SoftVersion.txt、versioninfo.txt,用于安装脚本的升级成功的检查使用;
压缩source文件;
创建run文件和run.md5sum文件,并放在patch/X-XXX-patch/目录下;
生成readme文件放在run文件同级目录下;
删除autorun目录。
可选地,创建run文件的步骤为:将autoinstall.sh和source.tar.gz连接组成run文件,其中,source.tar.gz为source文件的压缩文件。
从以上技术方案可以看出,本申请具有以下优点:
本发明的一种linux终端系统的自动升级方法,通过在linux终端环境下制作补丁包,只需要将补丁包要做的事情填写到UpdateDescription.txt中,将要修改的文件添加到root下,将要更新的deb包放在deb_to_update目录下,然后运行mkrun.sh即可,对于其他需要升级的linux终端系统而言,直接将补丁包放在自己的linux终端系统环境下,执行run文件即可升级。由于补丁包制作的过程中,不止添加了deb包,还添加了deb包的依赖包,因此,整个的系统升级可以在无网络连接的情况下,成功升级。能够大大减轻使用者的安装时间,增强用户体验。
附图说明
为了更清楚地表达说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例中补丁包的制作步骤的示意图;
图2为本说明书实施例中补丁包中各脚本间的调用及目录层级关系示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
系统升级的实质是软件包的更新,根据之前,选择以补丁包的形式,通过linux操作系统环境下制作补丁包运行,进行系统的升级操作,这种升级方式的重点在于补丁包的制作。参见图1和图2,补丁包的制作步骤包括:
步骤S101、创建source目录;
步骤S102、在source目录下创建用于存放要更新的deb包及其依赖包的deb_to_update目录,以及用与存放要添加或要更改的文件的root目录;
步骤S103、编写用于生成run文件的autoinstall.sh脚本;
步骤S104、在source目录下编写用于执行更新升级的update.sh脚本,run文件运行后调用update.sh脚本;
步骤S105、创建readme-XXX.txt文件;
步骤S106、编写mkrun.sh脚本,mkrun.sh脚本用于生成run.md5sum文件及readme文件,调用autoinstall.sh脚本生成run文件,并这三个文件生成patch目录下,patch目录为预先创建的source同级目录;
以麒麟操作系统为例,deb包及其依赖包的获取方式:公司内部源(launchpad)或麒麟操作系统本地编译成功的deb包。首先,在制作run文件前下载或编译deb包,在本地环境中试安装deb包,确定deb包安装的真确性及其依赖。其次,如果有缺失依赖,同方法获得依赖包。最终将能够正常安装的deb包及依赖包放置在步骤S102的deb_to_update目录下。
同理,其他Linux操作系统所需deb包可在对应源中进行下载,或获得源码,在对应的操作系统环境下进行本地编译获得deb包。
本申请升级方式:指在公司内部进行制作,通过其他方式将run文件给到用户,仅指run文件运行环境可断网成功升级。
由于run文件中已包括下载成功的deb包,不需要进行下载的步骤,因此可在无网络的情况下,进行本地安装。命令升级方式是本地无deb软件包,需要联网在自定义的软件源中查找相应的deb软件包,然后下载到本机某个目录,再进行软件包的安装操作。
run文件的本质是一个可执行脚本+压缩包。可执行脚本的作用是解压压缩包和进行文件内容的安装和配置;压缩包的内容是要安装的文件(deb包或文件)。即autoinstall.sh是可执行脚本,source.tar.gz为安装文件的压缩包。
run文件执行后的安装升级流程如下:
(1)root用户登录银河麒麟桌面操作系统;
(2)执行升级操作./运行run文件;
(3)先执行autoinstall.sh脚本,执行流程如下文,标红位置所示。
其中调用到的Update.sh脚本流程如下(4)~(11)所示。
(4)终端提示输入y/n来确认是否安装该补丁包;
y:确认安装,提示“即将安装升级补丁包”;
n:不安装,提示“退出!!!”。
(5)在安装该补丁升级包前将会进行检查,以确保系统可以正常升级;
如果您未安装前一个补丁安装包,将提示:
"在安装该补丁升级包前,请您先安装前一个补丁升级包(last_patch)";
"以确保您的版本能正常升级"。
(6)如果安装的系统版本与升级包的版本不匹配,则提示:
"该补丁升级包适用于KYLIN_BUILDER系统版本";
"不适用您的版本,退出补丁升级!!!"。
(7)如果已安装SP2补丁,则提示:
"该补丁已安装"
否则提示:
"该补丁能够正常安装"
(8)升级包安装提示:
"正在安装升级包,请耐心等待!"
即执行dpkg-i命令,安装source中的deb包及其依赖deb包。
安装成功,则提示:
"安装升级包成功"
安装失败,则提示:
"正在安装依赖,重新安装升级包"
如果安装依赖后再次安装失败,将提示:
"该软件包仍有依赖包未安装,即将退出!"
(9)文件更新成功,则提示:
"更新文件成功"
失败则提示:
"更新文件失败"
(10)补丁安装提示
安装成功,则提示:
"您已成功更新XXX版本升级包!"
"请重启系统以确保升级功能生效!"
安装失败,则提示:
"安装失败,请确认补丁包是否正确或联系技术人员获取支持。"
整个的制作流程十分简单,首先拥有一个linux终端环境,在这个环境下制作补丁包,只需要将补丁包要做的事情填写到UpdateDescription.txt中,将要修改的文件添加到root下,将要更新的deb包放在deb_to_update目录下,然后运行mkrun.sh即可,对于其他需要升级的linux终端系统而言,直接将补丁包放在自己的linux终端系统环境下,执行run文件即可升级。由于补丁包制作的过程中,不止添加了deb包,还添加了deb包的依赖包,因此,整个的系统升级可以在无网络连接的情况下,成功升级。能够大大减轻使用者的安装时间,增强用户体验。
优选地,在步骤S101中,还可以同时创建UpdateDescription.txt文件填写更新描述,便于使用者了解更新内容。
需要说明的有,创建run文件的步骤为:将autoinstall.sh和source.tar.gz连接组成run文件,source.tar.gz为source文件的压缩文件。
下面介绍本申请中三个主要脚本的主要内容及其作用:
1、autoinstall.sh:生成run文件
autoinstall.sh内容如下。
lines的数值要比autoinstall.sh的行数多1,run文件是由autoinstall.sh和source.tar.gz连接而成,前15行为autoinstall.sh,执行run文件就是从autoinstall.sh执行,命令中要从run文件中解析出source.tar.gz,从16行开始到最后都是source.tar.gz。
执行步骤包括:
(1)利用tail命令将source.tar.gz从run文件第16行开始剥离出来,放到/tmp/source.tar.gz
(2)进入/tmp,解压source.tar.gz为文件夹。
(3)删除压缩包。
(4)执行安装脚本:判断命令行参数执行对应流程(更新升级),参数-s用于判断显示或跳过终端提示。
(5)执行完毕,删除source文件夹。
(6)退出。
update.sh:安装脚本(更新升级):
update.sh内容如下。
其执行步骤包括:
(1)Verify_system():判断版本信息,查看补丁包是否适用于XXX系统版本,不适合则退出。
为了确保环境的正常安装,会检查前一个补丁包是否安装(第一个补丁包除外),判断该补丁是否已安装,已安装则退出。否则进行安装步骤。
(2)Sop():终端提示,提示readme-XXX.txt的内容。
(3)Patching():运行安装,进行升级操作。
(4)Check():检查是否更新成功。
2、mkrun.sh:运行./mkrun.sh一键制作run文件
mkrun.sh脚本的内容如下。
mkrun.sh脚本的执行步骤包括:
(1)Mmove():将source和autoinstall.sh放在同级目录autorun下。
(2)CreateFile():生成deblist.txt、debname.txt、SoftVersion.txt、versioninfo.txt,
用于安装脚本的升级成功的检查使用。
(3)TarFile():压缩source源文件。
(4)CreateRun():创建run文件和run.md5sum文件,并放在patch/X-XXX-patch/目录下。
(5)CreateReadme():生成readme文件放在run文件同级目录下。
(6)Clean():删除autorun目录。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述方法实施例中的对应过程,可以参考前述系统实施例中的具体工作过程,作用和效果也相同,在此不再赘述。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (6)
1.一种linux终端系统的自动升级方法,其特征在于,包括以下步骤:
步骤S1、linux操作系统环境下制作补丁包,其中,制定补丁包的步骤包括:
步骤S101、创建source目录;
步骤S102、在source目录下创建deb_to_update目录以及用与存放要添加或要更改的文件的root目录,将要更新的deb包及其依赖包放置在deb_to_update目录,其中,deb包及其依赖包从企业源中进行下载,或者获得源码,在linux操作系统环境下进行本地编译获得deb包;
步骤S103、编写用于生成run文件的autoinstall.sh脚本;
步骤S104、在source目录下编写用于执行更新升级的update.sh脚本,run文件运行后调用update.sh脚本;
步骤S105、创建readme-XXX.txt文件;
步骤S106、编写mkrun.sh脚本,mkrun.sh脚本用于生成run.md5sum文件及readme文件,调用autoinstall.sh脚本生成run文件,并这三个文件生成patch目录下,patch目录为预先创建的source同级目录;
步骤S2、执行补丁包中的run文件,升级系统。
2.根据权利要求1所述的linux终端系统的自动升级方法,其特征在于,步骤S101还包括:创建UpdateDescription.txt文件填写更新描述。
3.根据权利要求1所述的linux终端系统的自动升级方法,其特征在于,所述autoinstall.sh脚本的执行步骤包括:
利用tail命令将source.tar.gz从run文件第16行开始剥离出来,放到/tmp/source.tar.gz;
进入/tmp,解压source.tar.gz 为文件夹;
执行安装脚本:判断命令行参数执行对应流程,参数 -s 用于判断显示或跳过终端提示;
判断命令行参数,执行安装脚本update.sh;
执行完毕,删除source文件夹;
退出。
4.根据权利要求1所述的linux终端系统的自动升级方法,其特征在于,update.sh脚本的执行步骤包括:
判断版本信息,查看补丁包是否适用于系统版本,不适合则退出,否则进行安装步骤;
终端提示,提示readme-XXX.txt的内容;
运行安装,进行升级操作;
检查是否更新成功。
5.根据权利要求1所述的linux终端系统的自动升级方法,其特征在于,mkrun.sh脚本的执行步骤包括:
将source和autoinstall.sh放在同级目录autorun下;
生成deblist.txt、debname.txt 、SoftVersion.txt 、versioninfo.txt,用于安装脚本的升级成功的检查使用;
压缩source文件;
创建run文件和run.md5sum文件,并放在patch/X-XXX-patch/目录下;
生成readme文件放在run文件同级目录下;
删除autorun目录。
6.根据权利要求5所述的linux终端系统的自动升级方法,其特征在于,创建run文件的步骤为:将autoinstall.sh和source.tar.gz连接组成run文件,其中,source.tar.gz为source文件的压缩文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110949996.0A CN113672262B (zh) | 2021-08-18 | 2021-08-18 | 一种linux终端系统的自动升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110949996.0A CN113672262B (zh) | 2021-08-18 | 2021-08-18 | 一种linux终端系统的自动升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113672262A CN113672262A (zh) | 2021-11-19 |
CN113672262B true CN113672262B (zh) | 2024-03-15 |
Family
ID=78543681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110949996.0A Active CN113672262B (zh) | 2021-08-18 | 2021-08-18 | 一种linux终端系统的自动升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113672262B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673207A (zh) * | 2009-09-25 | 2010-03-17 | 成都时代诺亚舟教育软件有限公司 | 手持式学习终端的程序更新方法 |
CN112214221A (zh) * | 2020-10-10 | 2021-01-12 | 上海上讯信息技术股份有限公司 | 一种用于Linux系统构建的方法与设备 |
CN112328297A (zh) * | 2020-11-30 | 2021-02-05 | 北京技德系统技术有限公司 | 一种在Linux上兼容运行的Android系统的升级方法与装置 |
CN112698846A (zh) * | 2020-12-30 | 2021-04-23 | 麒麟软件有限公司 | 一种Linux系统自动安装补丁的方法和系统 |
-
2021
- 2021-08-18 CN CN202110949996.0A patent/CN113672262B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673207A (zh) * | 2009-09-25 | 2010-03-17 | 成都时代诺亚舟教育软件有限公司 | 手持式学习终端的程序更新方法 |
CN112214221A (zh) * | 2020-10-10 | 2021-01-12 | 上海上讯信息技术股份有限公司 | 一种用于Linux系统构建的方法与设备 |
CN112328297A (zh) * | 2020-11-30 | 2021-02-05 | 北京技德系统技术有限公司 | 一种在Linux上兼容运行的Android系统的升级方法与装置 |
CN112698846A (zh) * | 2020-12-30 | 2021-04-23 | 麒麟软件有限公司 | 一种Linux系统自动安装补丁的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113672262A (zh) | 2021-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105657191B (zh) | 一种基于Android系统的应用增量升级方法及系统 | |
CN102622241B (zh) | 一种软件升级方法及装置 | |
CN107391104B (zh) | 一种客户端与react native代码的更新依赖管理方法、装置及系统 | |
US8161474B2 (en) | Diagnostic information preservation during installations of over the air update of wireless handset software | |
US7389505B2 (en) | Method and apparatus for modifying software | |
CN106371881B (zh) | 一种用于服务器内程序版本更新的方法和系统 | |
CN111090452B (zh) | 服务环境的切换方法及计算机可读存储介质 | |
EP2482187A1 (en) | Software upgrading method, software upgrading system and client | |
NO312269B1 (no) | Fremgangsmåte for automatisering av programvareoppgradering | |
CN105550001A (zh) | 分布式自动构建方法及系统 | |
CN101593121A (zh) | 软件在线升级的方法、装置及系统 | |
CN106598681A (zh) | 开发环境构建方法及装置 | |
CN108874437B (zh) | 一种android应用程序的在线云更新方法 | |
CN102314367A (zh) | PC端操作Android设备中应用程序的方法 | |
CN105389187B (zh) | 一种系统更新的方法 | |
CN105468427A (zh) | 一种自动编译和发布的实现方法及系统 | |
EP2805233B1 (en) | Installation engine and package format for parallelizable, reliable installations | |
CN118170431B (zh) | 跨操作系统的业务迁移方法、装置及电子设备 | |
CN111722868A (zh) | 一种申威防火墙快速移植高版本linux内核的方法 | |
CN113672262B (zh) | 一种linux终端系统的自动升级方法 | |
CN107315602B (zh) | 一种应用程序的升级方法及终端 | |
CN111694578A (zh) | 一种获取基于WinSW的系统安装包的方法及装置 | |
CN111158700A (zh) | 一种svn自动部署方法及其系统 | |
CN114237572B (zh) | 原生工程集成开发框架的方法、装置、设备及存储介质 | |
CN112579111B (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 |