專利名稱::安裝套件的方法及制作套件映像文件的方法
技術(shù)領(lǐng)域:
:本發(fā)明是有關(guān)于一種安裝套件的方法,且特別是有關(guān)于在不更動操作系統(tǒng)原有的文件之下,安裝套件的方法。
背景技術(shù):
:—般而言,即用光盤(LiveCD)是一種不需要安裝到硬盤,即能夠激活執(zhí)行的操作系統(tǒng)。利用光驅(qū)來讀取即用光盤,以從即用光盤來開機。即用光盤會將所儲存的映像文件解壓縮至計算機內(nèi)的隨機存取存儲磁盤(RAMdisk)里,以在隨機存取存儲磁盤建立一個可以執(zhí)行的一個環(huán)境。由于即用光盤中已經(jīng)具備操作系統(tǒng),因而免除安裝以及后續(xù)維護的困擾。更因為即用光盤不需要使用硬盤,亦毋需擔心當機(crash),重新安裝、設(shè)定等問題然而,即用光盤的只讀既是其優(yōu)點,亦是其缺點。使用者并無法在使用即用光盤之下安裝其它軟件。因此,為了解決此一缺點,則發(fā)展出了套件外掛至RAMdisk上,利用RAMdisk的可修改性來達成外掛的目的。然而,以目前Li皿x系統(tǒng)中的套件管理方式而言,往往復雜且不易使用,并且亦耗費大量磁盤空間,也因此通常需要系統(tǒng)管理權(quán)限才能操作。而許多額外的解決方案亦普遍存在以下困擾需要重新編譯、缺乏套件維護意愿、內(nèi)存用量增加、以及不易整合至既有系統(tǒng)。
發(fā)明內(nèi)容有鑒于此,本發(fā)明提供一種制作套件的方法,能夠直接制作而無需編譯。另外,本發(fā)明提供一種安裝套件的方法,能夠在不影響操作系統(tǒng)中原始的文件,安裝另一套件至操作系統(tǒng)中。本發(fā)明提出一種安裝套件的方法。首先,制作套件的映像文件。之后,掛載套件的映像文件至操作系統(tǒng)底下,上述套件包括可擦寫的第一文件以及只讀的第二文件。接著,分別將第一文件與第二文件新增至操作系統(tǒng)的第一路徑與第二路徑之下。倘若第一路徑中已存在第一文件,則比較兩個第一文件差異的內(nèi)容,以將差異的內(nèi)容至整合第一路徑的第一文件中。在本發(fā)明的一實施例中,上述制作套件的映像文件的步驟,首先更新套件清單,套件清單中包括多個子套件。接著,新增快照目錄至操作系統(tǒng)之下。然后,安裝這些子套件至快照目錄。最后,將這些子套件壓縮為映像文件(例如為壓縮只讀文件系統(tǒng)的格式)。在本發(fā)明的一實施例中,上述在安裝這些子套件至快照目錄的步驟,先比對快照目錄的第一文件與操作系統(tǒng)的第一文件。之后,再依據(jù)兩者差異的內(nèi)容為新增或刪除,給予對應(yīng)的一記號給上述內(nèi)容,以將上述內(nèi)容儲存至套件的第一文件中。在本發(fā)明的一實施例中,安裝套件的方法還包括將操作系統(tǒng)加載至存儲單元中,以建立安裝目錄、只讀目錄以及可擦寫目錄。其中,只讀目錄對應(yīng)第二路徑,可擦寫目錄對應(yīng)第一路徑。4在本發(fā)明的一實施例中,上述掛載套件的映像文件至操作系統(tǒng)底下的步驟,是將套件的映像文件掛載至安裝目錄下。而上述將第一文件與第二文件分別新增至對應(yīng)的目錄之下的步驟,則是將第一文件新增至可擦寫目錄底下,將第二文件以只讀模式加入至只讀目錄之下。在本發(fā)明的一實施例中,上述操作系統(tǒng)例如為Linux操作系統(tǒng)。本發(fā)明提出一種制作套件映像文件的方法。首先,在操作系統(tǒng)中,更新套件清單,套件清單包括多個子套件。接著,新增快照目錄至操作系統(tǒng)之下。之后,安裝這些子套件至快照目錄。然后,比對快照目錄的文件與操作系統(tǒng)中相同的文件,以將兩者差異的內(nèi)容儲存至快照目錄的文件中。最后,將這些子套件壓縮為一映像文件。在本發(fā)明的一實施例中,上述在安裝子套件至快照目錄的步驟之后,還可在操作系統(tǒng)的暫存目錄下,新增只讀目錄與可擦寫目錄。并且,將快照目錄下的主系統(tǒng)文件復制到只讀目錄,以及將快照目錄下的設(shè)定文件復制到可擦寫目錄。最后,便可將暫存目錄下的文件壓縮為映像文件。在本發(fā)明的一實施例中,上述在安裝子套件至快照目錄的步驟之后,還可依據(jù)差異的內(nèi)容為新增或刪除,給予對應(yīng)的一記號給內(nèi)容,以儲存至可擦寫目錄的文件中。綜上所述,本發(fā)明在安裝套件時,倘若存儲單元中已經(jīng)存在同樣的文件時,則判斷兩者之間的差別,而將差異的內(nèi)容儲存至存儲單元中而不覆蓋原有的文件。另外,更能夠在套件制作時,即比對套件中與操作系統(tǒng)重復的文件,以將兩者的差異記錄于套件中。因此,能夠在不影響操作系統(tǒng)中原始的文件,將套件安裝至操作系統(tǒng)中。為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合附圖,作詳細說明如下。圖1是依照本發(fā)明一實施例所繪示的安裝套件的方法流程圖。圖2是依照本發(fā)明一實施例所繪示的制作套件的方法流程圖。具體實施例方式為了使本發(fā)明的內(nèi)容更為明了,以下特舉實施例作為本發(fā)明確實能夠據(jù)以實施的范例。圖1是依照本發(fā)明一實施例所繪示的安裝套件的方法流程圖。在本實施例中,是以Li皿x操作系統(tǒng)的即用光盤(LiveCD)為例,并且,此Li皿x操作系統(tǒng)具有將多個目錄合并在一起的機制(例如,合眾文件系統(tǒng),UnionFS)。請參照圖l,首先,在步驟S100中,制作套件的映像文件。例如,接著,在步驟S105中,將套件的映像文件掛載至Li皿x操作系統(tǒng)底下。套件包括可擦寫的第一文件(設(shè)定文件)以及只讀的第二文件(主系統(tǒng)文件)。舉例來說,當LiveCD放入光驅(qū)時,LiveCD中的Linux操作系統(tǒng)的映像文件將被解壓縮至存儲單元。進一步地說,在使用LiveCD開機時,計算機系統(tǒng)的一部份存儲單元會被虛擬成磁盤,也就是隨機存取存儲磁盤(RAMdisk)。而Linux操作系統(tǒng)的映像文件將被解壓縮到至RAMdisk中,也就是Li皿x操作系統(tǒng)會被加載至存儲單元中,并在存儲單元中建立安裝目錄、只讀目錄以及可擦寫目錄等目錄架構(gòu)。其中,安裝目錄例如為opt目錄,是用來安裝外掛的套件。只讀目錄例如為rofs目錄,是用來存放套件的主系統(tǒng)文件(即第二文件)??刹翆懩夸浝鐬閏ow目錄,是用來存放套件中的設(shè)定文件(即第一文件)。當欲外掛套件時,套件必須存在于Li皿x操作系統(tǒng)的目錄架構(gòu)中,才能利用目錄架構(gòu)來存取此一套件。據(jù)此,將外掛的套件掛載至opt目錄之下。例如,利用mount指令將套件的映像文件掛載至opt目錄?!愣?,外掛在0pt目錄的套件是利用核心的回路(loopback)機制(位于/dev/loop/底下)來進行掛載。在舊有的Linux核心,回路設(shè)備(loopbackdevice)的數(shù)量是有限制的。一般預設(shè)為8個套件,最多僅可增加至256個套件。在本實施例中,可利用一個修補程序(patch)將此部份修正為以"maxJoop"參數(shù)動態(tài)指定,因此將可以忽略原本的限制,而安裝任意數(shù)量的套件。接著,在步驟S110中,分別將第一文件與第二文件新增至Li皿x操作系統(tǒng)的第一路徑與第二路徑之下。也就是將opt目錄下的設(shè)定文件新增至cow目錄底下,并將opt目錄下的主系統(tǒng)文件以只讀模式加入至rofs目錄底下。之后,在步驟S115中,當?shù)谝宦窂街幸汛嬖诘谝晃募r,比較兩個第一文件差異的內(nèi)容,以將差異的內(nèi)容至整合第一路徑的第一文件中。換言之,當可擦寫目錄中已經(jīng)存在相同的設(shè)定文件時,則比對兩個設(shè)定文件的差異內(nèi)容,而將差異內(nèi)容整合至可擦寫目錄中已經(jīng)存在的設(shè)定文件中,而非直接進行覆蓋。據(jù)此,Linux操作系統(tǒng)中原本存在的設(shè)定文件才不會被覆蓋掉,導致影響到Li皿x操作系統(tǒng)的運作情況。舉例來說,依據(jù)cow目錄的文件A的內(nèi)容為新增或刪除,而給予對應(yīng)的記號,以記錄至的cow目錄的文件A中。當外掛的文件A比起cow目錄的文件A中為新增一內(nèi)容時,給予此內(nèi)容對應(yīng)的記號為"++",而當外掛的文件八比起cow目錄的文件A中為刪除一內(nèi)容時,給予此內(nèi)容對應(yīng)的記號為"一",如表1所示。因此,可將差異的內(nèi)容整合至原本的文件A中,例如僅將"ccc"新增于文件A中。<table>tableseeoriginaldocumentpage6</column></row><table>值得一提的是,還可以在制作套件的時候,即先比對原本Li皿x操作系統(tǒng)中重復的設(shè)定文件,以將差異的內(nèi)容儲存至套件中。以下再舉一實施例來說明制作套件的方法。圖2是依照本發(fā)明一實施例所繪示的安裝套件的方法流程圖。請參照圖2,在步驟S205中,更新一套件清單內(nèi)的子套件。以高級套件工具(AdvancedPackageTool,APT)而言,即是利用"即t-getupdate"指令來更新套件清單。接著,在步驟S210中,建立一快照目錄,并以只讀模式將快照目錄新增至rofs目錄之下。之后,在步驟S215中,再通過APT將套件清單中的子套件安裝至快照目錄下,也就是利用"apt-getinstall"指令。并且,將不需要的目錄清除。然后,在步驟S220中,比對快照目錄的設(shè)定文件與Li皿x操作系統(tǒng)中重復的設(shè)定文件,以將差異內(nèi)容儲存至快照目錄下的設(shè)定文件中。詳細地說,依據(jù)兩者差異的內(nèi)容為新增或刪除,給予對應(yīng)的記號,例如"++"以及"一"。之后,再將差異的內(nèi)容儲存至快照目錄的文件中,如表1所示。最后,如步驟S225所示,便可將這些子套件壓縮為壓縮只讀文件系統(tǒng)(compressedread-onlyfilesystem)的格式。舉例來說,可先在暫存目錄(/tmp)下建立兩個子目錄,以分別將快照目錄中的設(shè)定文件與主系統(tǒng)文件移至暫存目錄的子目錄之下。之后,再利用SquashFS將暫存目錄下的文件壓縮為映像文件。據(jù)此,在安裝此一套件時,可以只將"ccc"這行內(nèi)容新增至文件A當中。如此作法將保有和原系統(tǒng)的差異內(nèi)容,在安裝與移除都將不影響原本系統(tǒng)的運作。原本文件A中的"aaa"也不會因為安裝外掛后被覆蓋消失。另外,此領(lǐng)域具有通常知識者可以計算機程序的形式實現(xiàn)上述諸實施例,并利用計算機可讀取儲存媒體儲存此一計算機程序,以利計算機系統(tǒng)執(zhí)行之,以電子自動化的方式完成上述安裝套件的方法。綜上所述,在上述實施例中,由于舍棄覆蓋而采取整合套件中與操作系統(tǒng)相同文件的方式,使得掛載的套件不會影響到操作系統(tǒng)中重復的文件。并且,由于最終只需儲存"和原本系統(tǒng)有差異的內(nèi)容",僅將此部份復制到存儲單元當中,因此文件的大小在使用套件管理系統(tǒng)的情況下差距會非常明顯,甚至可達到數(shù)十兆位(megabyte)左右。據(jù)此,得以節(jié)省下存儲單元的使用空間。此外,更可直接制作套件而無需編譯,且多個子套件得以壓縮在同一套件上,在使用上更將方便。雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明,任何所屬
技術(shù)領(lǐng)域:
中具有通常知識者,在不脫離本發(fā)明的精神和范圍內(nèi),當可作些許更動與潤飾,因此本發(fā)明的保護范圍當以權(quán)利要求所界定的為準。權(quán)利要求一種安裝套件的方法,包括制作一套件的映像文件;掛載該套件的映像文件至一操作系統(tǒng)底下,其中該套件包括可擦寫的一第一文件以及只讀的一第二文件;分別將該第一文件與該第二文件新增至該操作系統(tǒng)的一第一路徑與一第二路徑;以及當該第一路徑中已存在該第一文件時,比較上述兩個第一文件差異的一內(nèi)容,以整合該內(nèi)容至該第一路徑的該第一文件中。2.如權(quán)利要求1所述的安裝套件的方法,其特征在于,制作該套件的映像文件的步驟,包括在該操作系統(tǒng)中,更新一套件清單,該套件清單包括多個子套件;新增一快照目錄至該操作系統(tǒng)之下;安裝該些子套件至該快照目錄;以及壓縮該些子套件為映像文件。3.如權(quán)利要求2所述的套件安裝的方法,其特征在于,在安裝該些子套件至該快照目錄的步驟之后,還包括比對該快照目錄的該第一文件與該操作系統(tǒng)的該第一文件,以將兩者差異的一內(nèi)容儲存至該套件的該第一文件中。4.如權(quán)利要求1所述的安裝套件的方法,其特征在于,還包括將該操作系統(tǒng)加載至一存儲單元中,以建立一安裝目錄、一只讀目錄以及一可擦寫目錄,其中該只讀目錄對應(yīng)該第二路徑,該可擦寫目錄對應(yīng)該第一路徑。5.如權(quán)利要求4所述的安裝套件的方法,其特征在于,掛載該套件的映像文件至該操作系統(tǒng)底下的步驟,包括掛載該套件的映像文件至該安裝目錄下。6.如權(quán)利要求4所述的安裝套件的方法,其特征在于,分別將該第一文件與該第二文件新增至該操作系統(tǒng)的該第一路徑與該第二路徑的步驟,更包括將該第一文件新增至該可擦寫目錄底下;以及將該第二文件以只讀模式加入至該只讀目錄之下。7.如權(quán)利要求1所述的套件安裝的方法,其特征在于,該操作系統(tǒng)為Linux操作系統(tǒng)。8.如權(quán)利要求1所述的套件安裝的方法,其特征在于,還包括修改該操作系統(tǒng)的外掛數(shù)量。9.一種制作套件映像文件的方法,包括在一操作系統(tǒng)中,更新一套件清單,該套件清單包括多個子套件;新增一快照目錄至該操作系統(tǒng)之下;安裝該些子套件至該快照目錄;比對該快照目錄的一文件與該操作系統(tǒng)中相同的該文件,以將兩者差異的內(nèi)容儲存至該快照目錄的該文件中;以及壓縮該些子套件為一映像文件。10.如權(quán)利要求9所述的制作套件映像文件的方法,其特征在于,在安裝該些子套件至該快照目錄的步驟之后,還包括在該操作系統(tǒng)的一暫存目錄下,新增一只讀目錄與一可擦寫目錄;將該快照目錄下的主系統(tǒng)文件復制到該只讀目錄;以及將該快照目錄下的設(shè)定文件復制到該可擦寫目錄。11.如權(quán)利要求io所述的制作套件映像文件的方法,其特征在于,在安裝該些子套件至該快照目錄的步驟之后,還包括依據(jù)差異的該內(nèi)容為新增或刪除,給予對應(yīng)的一記號給該內(nèi)容,以儲存至該可擦寫目錄的該文件中。12.如權(quán)利要求9所述的制作套件映像文件的方法,其特征在于,該映像文件為壓縮只讀文件系統(tǒng)的格式。全文摘要本發(fā)明公開了一種安裝套件的方法及制作套件映像文件的方法。在本發(fā)明中,在制作套件時,先比對套件中與操作系統(tǒng)重復的文件,以將差異的內(nèi)容儲存至套件的文件中。之后,將套件的映像文件掛載至操作系統(tǒng)底下。當操作系統(tǒng)中已存在與套件相同的文件時,則將差異的內(nèi)容至整合操作系統(tǒng)的文件中。文檔編號G06F9/44GK101714089SQ20081016617公開日2010年5月26日申請日期2008年10月7日優(yōu)先權(quán)日2008年10月7日發(fā)明者陳品勛申請人:英業(yè)達股份有限公司