一種系統(tǒng)更新的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及操作系統(tǒng)維護技術(shù)領(lǐng)域,尤其涉及一種系統(tǒng)更新的方法。
【背景技術(shù)】
[0002]隨著Linux操作系統(tǒng)的飛速發(fā)展,以及其承載的應用軟件的不斷更新,人們對于Linux操作系統(tǒng)進行系統(tǒng)更新的需求越來越頻繁。但是現(xiàn)有的針對Linux操作系統(tǒng)的版本更新方式,通常會對存在以下幾個問題:
[0003]1)對于Linux操作系統(tǒng)的版本肯定,通常會同時把操作系統(tǒng)中的一些使用者自定義的應用軟件進行適于該更新版本的更新操作,而這些更新操作可能是使用者并不希望進行的;
[0004]2)在Linux操作系統(tǒng)的版本更新過程中,往往會遇到安裝包的上下依賴關(guān)系,可能會對更新過程產(chǎn)生不利影響;
[0005]3)使用者無法獲知一次對于Linux操作系統(tǒng)的版本更新的具體內(nèi)容以及更新方式等更新信息,因此降低了使用者的使用體驗。
【發(fā)明內(nèi)容】
[0006]根據(jù)現(xiàn)有技術(shù)中存在的上述問題,現(xiàn)提供一種系統(tǒng)更新的方法的技術(shù)方案,旨在避免操作系統(tǒng)整體升級時將使用者自定義的軟件一起升級的問題,實現(xiàn)操作系統(tǒng)升級的過程透明性,提升使用者的使用體驗。
[0007]上述技術(shù)方案具體包括:
[0008]—種系統(tǒng)更新的方法,其中,包括服務端和客戶端,所述服務端與所述客戶端遠程連接;
[0009]于所述服務端用于保存系統(tǒng)更新包,并且于所述客戶端中安裝有用戶自定義的應用軟件,還包括:
[0010]步驟S1,所述客戶端監(jiān)控所述服務端是否發(fā)布新的所述系統(tǒng)更新包,并在所述服務端發(fā)布新的所述系統(tǒng)更新包時轉(zhuǎn)向步驟S2 ;
[0011]步驟S2,所述客戶端從所述服務端下載所述系統(tǒng)更新包;
[0012]步驟S3,所述客戶端檢測得到所述應用軟件,并將所述應用軟件隔離;
[0013]步驟S4,所述客戶端采用所述系統(tǒng)更新包進行操作系統(tǒng)的更新;
[0014]步驟S5,所述客戶端將所述應用軟件解除隔離,并判斷所述應用軟件是否能夠正常運行:
[0015]若能夠正常運行,則退出;
[0016]若無法正常運行,則標記所述應用軟件,以提示使用者注意,隨后退出。
[0017]優(yōu)選的,該系統(tǒng)更新的方法,其中,所述系統(tǒng)更新包中包括:
[0018]用于進行系統(tǒng)更新的系統(tǒng)更新文件;以及
[0019]用于對所述系統(tǒng)更新進行描述的系統(tǒng)更新描述文件。
[0020]優(yōu)選的,該系統(tǒng)更新的方法,其中,所述系統(tǒng)更新文件中包括:
[0021]用于表示所述系統(tǒng)更新包的更新順序的序列信息;
[0022]用于表示所述系統(tǒng)更新包的更新類型的類型信息;
[0023]用于表示所述系統(tǒng)更新包針對的操作系統(tǒng)架構(gòu)的架構(gòu)信息;
[0024]用于表示所述系統(tǒng)更新包的發(fā)布日期的發(fā)布信息;
[0025]用于表示所述系統(tǒng)更新包的屬性描述的屬性信息;
[0026]用于表示所述系統(tǒng)更新包中是否存在所述系統(tǒng)更新前需要執(zhí)行的腳本的前期腳本信息;
[0027]用于表示所述系統(tǒng)更新包中是否存在所述系統(tǒng)更新后需要執(zhí)行的腳本的后期腳本信息;以及
[0028]用于表示針對所述系統(tǒng)更新包進行的所述系統(tǒng)更新之后是否需要重啟的重新信息。
[0029]優(yōu)選的,該系統(tǒng)更新的方法,其中,所述類型信息包括:
[0030]用于表示所述系統(tǒng)更新包關(guān)聯(lián)于漏洞修復的所述更新類型的第一更新信息;和/或
[0031]用于表示所述系統(tǒng)更新包關(guān)聯(lián)于系統(tǒng)升級的所述更新類型的第二更新信息;和/或
[0032]用于表示所述系統(tǒng)更新包關(guān)聯(lián)于安全更新的所述更新類型的第三更新信息。
[0033]優(yōu)選的,該系統(tǒng)更新的方法,其中,執(zhí)行所述步驟S4之前,所述客戶端采用所述系統(tǒng)更新包進行操作系統(tǒng)的更新時,將所述系統(tǒng)更新描述文件顯示于所述客戶端的顯示屏上,以供使用者查看。
[0034]優(yōu)選的,該系統(tǒng)更新的方法,其中,執(zhí)行所述步驟S4之前,所述客戶端將所述類型信息顯示于所述客戶端的顯示屏上,以供使用者查看。
[0035]優(yōu)選的,該系統(tǒng)更新的方法,其中,執(zhí)行所述步驟S1之前,首先判斷所述客戶端是否開啟自動更新功能:
[0036]若開啟所述自動更新功能,則繼續(xù)執(zhí)行所述步驟S1 ;
[0037]若未開啟所述自動更新功能,則所述客戶端根據(jù)外部輸入的指令轉(zhuǎn)向執(zhí)行所述步驟S2。
[0038]優(yōu)選的,該系統(tǒng)更新的方法,其中,于所述客戶端中設置一監(jiān)控單元,以監(jiān)控所述客戶端下載所述系統(tǒng)更新包的進度,和/或所述客戶端進行所述系統(tǒng)更新的進度。
[0039]優(yōu)選的,該系統(tǒng)更新的方法,其特征在于,所述客戶端基于Linux操作系統(tǒng)運行。
[0040]上述技術(shù)方案的有益效果是:提供一種系統(tǒng)更新的方法,能夠避免操作系統(tǒng)整體升級時將使用者自定義的軟件一起升級的問題,實現(xiàn)操作系統(tǒng)升級的過程透明性,提升使用者的使用體驗。
【附圖說明】
[0041]圖1是本發(fā)明的較佳的實施例中,一種系統(tǒng)更新的方法的流程示意圖。
【具體實施方式】
[0042]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0043]需要說明的是,在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互組合。
[0044]下面結(jié)合附圖和具體實施例對本發(fā)明作進一步說明,但不作為本發(fā)明的限定。
[0045]現(xiàn)有技術(shù)中,針對操作系統(tǒng)的版本更新方式有多種,以Linux操作系統(tǒng)為例,較為常用的更新方式為使用軟件包管理工具進行系統(tǒng)更新和升級,其中RPM(RPM PackageManager,RPM軟件包管理器)和DPKG(Debian Packager,Debian軟件包管理器)為最常見的兩類軟件包管理工具。
[0046]RPM最開始的全稱為Redhat Package Manager,最早由Redhat公司制定實施,隨后被GNU(GNU is Not Unix,革奴計劃)開源操作系統(tǒng)接受并稱為很多Linux系統(tǒng)的既定軟件標準。由于這種軟件管理方式非常方便,其包管理模式類似于windows下的“添加/刪除程序”。每個RPM文件(以.rpm結(jié)尾的軟件包文件)中包含了已經(jīng)編譯好的二進制可執(zhí)行文件,其實就是將軟件源碼文件進行編譯安裝,然后進行封裝,其類似于windows程序安裝包中的exe”文件,最終執(zhí)行該文件就能完成安裝。
[0047]RPM軟件包管理方式的缺點在于對操作系統(tǒng)環(huán)境的依賴很大,它要求RPM包的安裝環(huán)境必須與RPM包封裝時的環(huán)境相一致或相當,還需要滿足安裝時與系統(tǒng)某些軟件包的依賴關(guān)系。
[0048]相反地,DPKG軟件包管理工具并不負責檢查軟件包的依賴關(guān)系,因此DPKG通常被用來安裝單個軟件包。
[0049]但是DPKG同樣存在一些缺陷,具體為:一,不能主動從鏡像站點獲取軟件包;二,安裝軟件包時,無法檢查軟件包的依賴關(guān)系。
[0050]綜上所述,現(xiàn)有技術(shù)中的針對Linux操作系統(tǒng)的軟件更新方式均存在一些缺陷。
[0051]則本發(fā)明的較佳的實施例中,基于現(xiàn)有技術(shù)中存在的上述問題,現(xiàn)提供一種系統(tǒng)更新的方法,該方法適用于Linux操作系統(tǒng),并包括服務端和客戶端,服務端與客戶端遠程連接;于服務端用于保存系統(tǒng)更新包,并且于客戶端中安裝有用戶自定義的應用軟件。
[0052]具體地,該方法中,上述服務端和客戶端均基于Linux操作系統(tǒng)運行,在服務端保存系統(tǒng)更新包,該系統(tǒng)更新包通常被保證為關(guān)聯(lián)于Linux操作系統(tǒng)的最新的系統(tǒng)版本,則在客戶端中也安裝有用戶自定義的適用于Linux操作系統(tǒng)的應用軟件。
[0053]則本發(fā)明的較佳的實施例中,如圖1所示,上述系統(tǒng)更新的方法具體包括:
[0054]步驟S1,客戶端監(jiān)控服務端是否發(fā)布新的系統(tǒng)更新包,并在服務端發(fā)布新的系統(tǒng)更新包時轉(zhuǎn)向步驟S2 ;
[0055]步驟S2,客戶端從服務端下載系統(tǒng)更新包;
[0056]步驟S3,客戶端檢測得到應用軟件,并將應用軟件隔離;
[0057]步驟S4,客戶端采用系統(tǒng)更新包進行操作系統(tǒng)的更新;
[0058]步驟S5,客戶端將應用軟件解除隔離,并判斷應用軟件是否能夠正常運行:
[0059]若能夠正常運行,則退出;
[0060]若無法正常運行,則標記應用軟件,以提示使用者注意,隨后退出。
[0061]在一個具體實施例中,客戶端首先監(jiān)控服務端是否發(fā)布了新的系統(tǒng)更新包:若是,則轉(zhuǎn)向步驟S2,若否,則繼續(xù)監(jiān)控,直至監(jiān)控到服務端發(fā)布了新的系統(tǒng)更新包時轉(zhuǎn)向步驟S2 ;
[0062]隨后,該實施例中,客戶端從服務端下載該系統(tǒng)更新包,并同時根據(jù)系統(tǒng)的設置檢測在客戶端的Linux操作系統(tǒng)中是否存在用戶自定義的上述應用軟件:若存在,則客戶端將檢測得到的應用軟件做隔離處理,例如將有關(guān)這些軟件的運行文件以及注冊表文件放至一預設的隔離區(qū)域進行保存,以避免接下來的系統(tǒng)更新過程對這些應用軟件進行更新或者更改;若不存在,則客戶端繼續(xù)進行系統(tǒng)更新。
[0063]最后,該實施例中,客戶端采用上述系統(tǒng)更新包對Linux操作系統(tǒng)進行更新完畢后,再將上述應用軟件從隔離區(qū)域中放出,即對上述應用軟件進行解除隔離,并且在經(jīng)過更新的Linux操作系統(tǒng)中分別對上述之前被隔離的應用軟件進行運行驗證,以驗證上述應用軟件是否能夠在經(jīng)過更新的Linux操作系統(tǒng)中正常運行:
[0064]若能正常運行,則本次版本更新結(jié)束,則退出;
[0065]若不能正常運行,則標記應用軟件,以提示使用者注意,隨后退出。例如,將不能正常運行的應用軟件(即帶有標記的應用軟件)的列表顯示在客戶端的顯示屏上。
[0066]本發(fā)明的一個較佳的實施例中,在上述客戶端內(nèi)可以設置一個檢測單元,該檢測單元可以用于提供系統(tǒng)的dbus服務,即負責在后臺輪詢檢查上述服務端是否存在新發(fā)布的系統(tǒng)更新包,例如監(jiān)聽是否存在網(wǎng)絡服務狀態(tài)變化的信號,當網(wǎng)絡服務狀態(tài)發(fā)生變化時即李計檢查并下載新發(fā)布的系統(tǒng)更新包。
[0067]本發(fā)明的較佳的實施例中,上述系統(tǒng)更新包中包括:
[0068]用于進行系統(tǒng)更新的系統(tǒng)更新文件;以及
[0069]用于對系統(tǒng)更新進行描述的系統(tǒng)更新描述文件。
[0070]具體地