作對應的節(jié)點及各所述節(jié)點的調(diào)用關系;所述節(jié)點包括與所述RPM操作對應的RPM命令;
[0047]所述生成模塊202,具體用于根據(jù)所述節(jié)點及各所述節(jié)點的調(diào)用關系,生成所述RPM操作的Makefile ;所述RPM操作的Makefile,用于記錄所述節(jié)點及各所述節(jié)點的調(diào)用關系;
[0048]所述執(zhí)行模塊203,具體用于根據(jù)各所述RPM命令的調(diào)用關系,調(diào)用各所述節(jié)點。
[0049]本發(fā)明實施例提供的基于RPM的軟件管理系統(tǒng),將與該RPM操作相關的一系列RPM命令及調(diào)用關系封裝到Makefile,使用Makefile對該RPM操作進行管理;在需要執(zhí)行對軟件的該RPM操作時,只需運行生成(make)命令,采用Makefile完成對軟件的該RPM操作,實現(xiàn)自動化管理,降低了源碼管理復雜度,提高了工作效率。
[0050]圖3為本發(fā)明實施例提供的基于RPM的軟件管理系統(tǒng)的原理示意圖。如圖3所示,本發(fā)明實施例提供的基于RPM的軟件管理系統(tǒng)300,可以包括如下節(jié)點:
[0051]rpmO節(jié)點301:源碼輸入,例如需要操作的源碼名稱。
[0052]srcspecl節(jié)點302:解壓縮源碼包,及保存解壓時的源碼狀態(tài)作為記憶,以便后續(xù)操作使用。
[0053]rpmsl節(jié)點303:編譯源碼,最終生成二進制包(Binary),該節(jié)點運行過程中如果保存有原有修改信息,可以根據(jù)需要恢復到初始狀態(tài)。
[0054]bb節(jié)點304:編譯后打包生成二進制包。
[0055]預編譯(build)節(jié)點305:預編譯源碼,該節(jié)點運行過程中如果保存有原有修改信息,可以根據(jù)需要恢復到初始狀態(tài)。
[0056]sv節(jié)點306:系統(tǒng)緩存,放置臨時源碼。
[0057]保存(save)節(jié)點307:存放目標源碼目錄。
[0058]getchg節(jié)點308:記錄對源碼的修改,并可以更改文件名,自動保存。
[0059]補丁(patch)節(jié)點309:根據(jù)getchg保留中間狀態(tài),對源碼打補丁。
[0060]ptmp節(jié)點310:從getchg節(jié)點308獲得,重構(gòu)中間數(shù)據(jù)以便打包的一個臨時目錄。
[0061]srcspec2節(jié)點311:將源碼編譯并打包,最終生成二進制包和源碼包。
[0062]ba節(jié)點312:編譯后打包生成二進制包和源碼包。
[0063]srmpsl節(jié)點313:編譯源碼,最終生成源碼包,該節(jié)點運行過程中如果保存有原有修改信息,可以根據(jù)需要恢復到初始狀態(tài)。
[0064]bs節(jié)點314:編譯后打包生成源碼包。
[0065]編譯(make)節(jié)點315:編譯源碼。
[0066]install節(jié)點316:編譯源碼并進行安裝,該節(jié)點運行過程中如果保存有原有修改信息,可以根據(jù)需要恢復到初始狀態(tài)。
[0067]ph節(jié)點317:可選的,獨立一些的源碼包。
[0068]上述節(jié)點均可以預先定義的,每個節(jié)點封裝有一個或多個RPM命令,用以完成相應的步驟或任務;在生成某個RPM操作的Makefile時,先獲取與該RPM操作對應的節(jié)點及各所述節(jié)點的調(diào)用關系(順序),再按照順序生成一個Makefile。以RPM操作為軟件安裝為例:完成軟件安裝可能需要調(diào)用節(jié)點301、302、305、315和316,在獲取該些節(jié)點和該些節(jié)點之間的調(diào)用關系后,生成軟件安裝的Makefile ;在執(zhí)行時,根據(jù)軟件安裝的Makefile調(diào)用該些節(jié)點。圖3示出了各節(jié)點的調(diào)用原理。其中,每個節(jié)點完成RPM操作的特定流程或步驟,各節(jié)點之間是有流動的方向的。每個節(jié)點將特定流程步驟用程序來實現(xiàn),節(jié)省了人力,提高了工作效率。
[0069]在本發(fā)明所提供的幾個實施例中,應該理解到,所揭露的裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0070]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0071]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能單元的形式實現(xiàn)。
[0072]上述以軟件功能單元的形式實現(xiàn)的集成的單元,可以存儲在一個計算機可讀取存儲介質(zhì)中。上述軟件功能單元存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)或處理器(processor)執(zhí)行本發(fā)明各個實施例所述方法的部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(Read-Only Memory, ROM)、隨機存取存儲器(Random Access Memory, RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0073]本領域技術人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的裝置的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
[0074]最后應說明的是:以上各實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質(zhì)脫離本發(fā)明各實施例技術方案的范圍。
【主權(quán)項】
1.一種基于紅帽軟件包管理器RPM的軟件管理方法,其特征在于,包括: 獲取與RPM操作對應的RPM命令及各所述RPM命令的調(diào)用關系; 根據(jù)所述RPM命令及各所述RPM命令的調(diào)用關系,生成所述RPM操作的生成文件Makefile ;所述RPM操作的Makefile,用于記錄所述RPM命令及各所述RPM命令的調(diào)用關系;使用所述RPM操作的Makefile,執(zhí)行針對軟件的所述RPM操作。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述RPM操作為軟件補丁生成操作,則所述使用所述RPM操作的Makefile,執(zhí)行針對軟件的所述RPM操作,包括: 使用所述RPM操作的Makefile,對所述軟件的修改內(nèi)容進行記錄,并生成補丁文件。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述RPM操作為以下至少一種:軟件安裝,軟件卸載,軟件升級,軟件查詢,軟件驗證和軟件編譯。4.根據(jù)權(quán)利要求1-3任一所述的方法,其特征在于,所述獲取與RPM操作對應的RPM命令及各所述RPM命令的調(diào)用關系,包括:獲取與RPM操作對應的節(jié)點及各所述節(jié)點的調(diào)用關系;所述節(jié)點包括與所述RPM操作對應的RPM命令; 所述根據(jù)所述RPM命令及各所述RPM命令的調(diào)用關系,生成所述RPM操作的生成文件Makefile ;所述RPM操作的Makefile,用于記錄所述RPM命令及各所述RPM命令的調(diào)用關系,包括:根據(jù)所述節(jié)點及各所述節(jié)點的調(diào)用關系,生成所述RPM操作的Makefile ;所述RPM操作的Makefile,用于記錄所述節(jié)點及各所述節(jié)點的調(diào)用關系; 所述使用所述RPM操作的Makefile,執(zhí)行針對軟件的所述RPM操作,包括:根據(jù)各所述RPM命令的調(diào)用關系,調(diào)用各所述節(jié)點。5.一種基于紅帽軟件包管理器RPM的軟件管理系統(tǒng),其特征在于,所述系統(tǒng)包括: 獲取模塊,用于獲取與RPM操作對應的RPM命令及各所述RPM命令的調(diào)用關系; 生成模塊,用于根據(jù)所述RPM命令及各所述RPM命令的調(diào)用關系,生成所述RPM操作的生成文件Makefile ;所述RPM操作的Makefile,用于記錄所述RPM命令及各所述RPM命令的調(diào)用關系; 執(zhí)行模塊,用于使用所述RPM操作的Makefile,執(zhí)行針對軟件的所述RPM操作。6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述RPM操作為軟件補丁生成操作,則所述執(zhí)行模塊具體用于使用所述RPM操作的Makefile,對所述軟件的修改內(nèi)容進行記錄,并生成補丁文件。7.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述RPM操作為以下至少一種:軟件安裝,軟件卸載,軟件升級,軟件查詢,軟件驗證和軟件編譯。8.根據(jù)權(quán)利要求5-7任一所述的系統(tǒng),其特征在于, 所述獲取模塊,具體用于獲取與RPM操作對應的節(jié)點及各所述節(jié)點的調(diào)用關系;所述節(jié)點包括與所述RPM操作對應的RPM命令; 所述生成模塊,具體用于根據(jù)所述節(jié)點及各所述節(jié)點的調(diào)用關系,生成所述RPM操作的Makefile ;所述RPM操作的Makefile,用于記錄所述節(jié)點及各所述節(jié)點的調(diào)用關系; 所述執(zhí)行模塊,具體用于根據(jù)各所述RPM命令的調(diào)用關系,調(diào)用各所述節(jié)點。
【專利摘要】本發(fā)明實施例提供一種基于紅帽軟件包管理器的軟件管理方法及系統(tǒng)。其中,所述方法包括:獲取與紅帽軟件包管理器RPM操作對應的RPM命令及各所述RPM命令的調(diào)用關系;根據(jù)所述RPM命令及各所述RPM命令的調(diào)用關系,生成所述RPM操作的生成文件Makefile;所述RPM操作的Makefile,用于記錄所述RPM命令及各所述RPM命令的調(diào)用關系;使用所述RPM操作的Makefile,執(zhí)行針對軟件的所述RPM操作。本發(fā)明實施例提供的基于紅帽軟件包管理器的軟件管理方法及系統(tǒng),降低了源碼管理復雜度,提高了工作效率。
【IPC分類】G06F9/44
【公開號】CN105446718
【申請?zhí)枴緾N201410409156
【發(fā)明人】劉屹松, 蔣闖, 宗耀堂
【申請人】龍芯中科技術有限公司
【公開日】2016年3月30日
【申請日】2014年8月19日