欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種軟件包管理方法及系統(tǒng)與流程

文檔序號(hào):12040697閱讀:365來源:國(guó)知局
一種軟件包管理方法及系統(tǒng)與流程
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種軟件包管理方法及系統(tǒng)。

背景技術(shù):
在使用Linux系統(tǒng)時(shí),首先要安裝一些必要的軟件。目前各種Linux系統(tǒng)的發(fā)行版(其中,Linux發(fā)行版是基于Linux內(nèi)核的類Unix操作系統(tǒng))都有各自的軟件包管理系統(tǒng)(Linux系統(tǒng)上管理系統(tǒng)內(nèi)所有軟件的系統(tǒng)),這些軟件包管理系統(tǒng)能夠使用戶方便地進(jìn)行軟件管理。Linux系統(tǒng)中很多軟件是協(xié)同工作的,比如軟件A運(yùn)行時(shí)會(huì)使用軟件B,一般稱為軟件A依賴軟件B,這種依賴在所有Linux系統(tǒng)都是很常見的。而各個(gè)軟件是在不斷升級(jí)的,不斷形成新的版本,可能出現(xiàn)軟件A的版本1依賴于軟件B的版本2的情況。當(dāng)前大部分Linux發(fā)行版的軟件包管理系統(tǒng)只允許當(dāng)前系統(tǒng)擁有同一軟件的同一版本,這是符合大部分情況的。但是,當(dāng)軟件A依賴于軟件B的版本2、軟件C卻又依賴于軟件B的版本3時(shí),如果軟件B的版本2和版本3之間發(fā)生了大的變化,這時(shí)在系統(tǒng)中無法同時(shí)安裝軟件B的版本2和版本3,就會(huì)導(dǎo)致軟件A和軟件C無法同時(shí)在系統(tǒng)中使用。目前Linux的一個(gè)叫做gentoo的發(fā)行版的軟件包管理系統(tǒng)portage實(shí)現(xiàn)了同一軟件不同版本共存于一個(gè)系統(tǒng)并能同時(shí)使用的功能。Portage中的每一款軟件的每個(gè)版本都可以是一個(gè)slot,portage管理這些slot,從而使同一軟件的不同版本能共存于同一系統(tǒng)中。在實(shí)際使用時(shí)通過建立軟連接來切換版本,從而達(dá)到同一軟件的不同版本共存的目標(biāo)。但ponage軟件包管理系統(tǒng)只適用在gentoo系統(tǒng),其他Linux發(fā)行版有各自的軟件包管理系統(tǒng),不可能都去使用portage軟件包管理系統(tǒng);另外,portage使用軟連接的方式切換同一軟件的不同版本,使得不能同時(shí)使用同一軟件的不同版本。

技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)上述問題,提出了一種軟件包管理方法及系統(tǒng),通過設(shè)置臨時(shí)環(huán)境變量,使同一軟件的不同版本能夠共存于系統(tǒng)中,并能被同時(shí)使用。在一個(gè)方面,本發(fā)明提供了一種軟件包管理方法,主要技術(shù)方案如下:啟動(dòng)命令解析器shell,加載配置文件;接收用戶發(fā)送的對(duì)軟件進(jìn)行操作的命令,根據(jù)所述配置文件判斷該軟件是否與其他軟件存在依賴關(guān)系;所述其他軟件包括輔助軟件和非輔助軟件;當(dāng)該軟件依賴于輔助軟件時(shí),為所述輔助軟件設(shè)置臨時(shí)環(huán)境變量;加載所述輔助軟件,執(zhí)行所述用戶發(fā)送的命令;所述輔助軟件為與原有軟件包管理系統(tǒng)中已有軟件版本不同的軟件。所述軟件包括程序文件和共享庫文件。所述配置文件包括多條記錄,記錄每個(gè)軟件在運(yùn)行時(shí)所依賴的其他軟件的位置。所述根據(jù)配置文件判斷該軟件是否與其他軟件存在依賴關(guān)系,具體為:判斷該軟件是否依賴于輔助軟件,或者判斷是否存在其他軟件依賴于該軟件。如果存在其他軟件依賴于該軟件,則向用戶發(fā)送提示信息,根據(jù)用戶的反饋判斷是否執(zhí)行所述用戶發(fā)送的命令。在執(zhí)行完所述命令后,還包括:修改所述配置文件。在另一個(gè)方面,本發(fā)明提供了一種軟件包管理系統(tǒng),包括多個(gè)軟件和:接收單元,用于接收用戶發(fā)送的對(duì)軟件進(jìn)行操作的命令;配置文件,用于記錄所述軟件在運(yùn)行時(shí)所依賴的其他軟件的位置;判斷單元,用于根據(jù)所述配置文件判斷該軟件是否與其他軟件存在依賴關(guān)系;所述其他軟件包括輔助軟件和非輔助軟件;所述輔助軟件為與原有軟件包管理系統(tǒng)中已有軟件版本不同的軟件;命令解析器shell,用于當(dāng)該軟件依賴于輔助軟件時(shí),為所述輔助軟件設(shè)置臨時(shí)環(huán)境變量;加載所述輔助軟件,執(zhí)行所述用戶發(fā)送的命令。所述接收單元具體用于接收用戶對(duì)程序文件或共享庫文件進(jìn)行操作的命令。所述判斷單元具體用于根據(jù)配置文件判斷該軟件是否依賴于輔助軟件,或者判斷是否存在其他軟件依賴于該軟件。所述命令解析器shell還用于,當(dāng)存在其他軟件依賴于該軟件時(shí),向用戶發(fā)送提示信息,并根據(jù)用戶的反饋執(zhí)行相應(yīng)操作。還包括配置文件修改單元,用于在執(zhí)行完所述命令后,還包括:修改所述配置文件。本發(fā)明還提供了一種兼容多版本的軟件包管理系統(tǒng),包括上述軟件包管理系統(tǒng)以及原有軟件包管理系統(tǒng)。本發(fā)明通過設(shè)置臨時(shí)環(huán)境變量的方式,使得同一軟件的不同版本共存以及被同時(shí)依賴使用,而且本發(fā)明所提供的軟件包管理系統(tǒng)可以兼容各種Linux發(fā)行版之前的軟件包管理系統(tǒng),提高了操作系統(tǒng)的軟件靈活性。附圖說明下面將參照附圖描述本發(fā)明的具體實(shí)施例,其中:圖1為本發(fā)明實(shí)施例安裝軟件的流程圖;圖2為本發(fā)明實(shí)施例軟件包管理方法的流程圖。具體實(shí)施方式為了使本發(fā)明的技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖對(duì)本發(fā)明的示例性實(shí)施例進(jìn)行進(jìn)一步詳細(xì)的說明,顯然,所描述的實(shí)施例僅是本發(fā)明的一部分實(shí)施例,而不是所有實(shí)施例的窮舉。Linux系統(tǒng)下大部分軟件都是依賴別的軟件包的,正常情況下Linux系統(tǒng)的軟件包管理系統(tǒng)(下面稱之為原有軟件包管理系統(tǒng))會(huì)維護(hù)一套相對(duì)于用戶的使用來說較為完整的相互依賴的軟件體系。本發(fā)明在此基礎(chǔ)上添加了一套輔助軟件包管理系統(tǒng),在原有的軟件包管理系統(tǒng)正常工作的基礎(chǔ)上進(jìn)行工作,既可以單獨(dú)運(yùn)行,又可以將原有軟件包管理系統(tǒng)封裝到本發(fā)明的輔助軟件包管理系統(tǒng)中進(jìn)行統(tǒng)一操作。本發(fā)明所稱的軟件可以是程序文件(或者稱為應(yīng)用軟件),也可以是共享庫文件。本發(fā)明實(shí)施例提供了一種軟件包管理系統(tǒng),可以單獨(dú)使用,也就是獨(dú)立存在于Linux系統(tǒng)中。但這種情況就需要該軟件包管理系統(tǒng)包含所有系統(tǒng)所需軟件,而對(duì)于一些底層軟件的安裝設(shè)置可能存在一定的不穩(wěn)定性,而原有軟件包管理系統(tǒng)已安裝并維護(hù)有穩(wěn)定的軟件包,因此,本發(fā)明實(shí)施例也可以直接利用原有軟件包管理系統(tǒng)所擁有的軟件作為基礎(chǔ),也就是將本發(fā)明實(shí)施例所說的軟件包管理系統(tǒng)作為原有軟件包管理系統(tǒng)的輔助軟件包管理系統(tǒng)。本發(fā)明實(shí)施例中的軟件包管理系統(tǒng)(也稱輔助軟件包管理系統(tǒng))具體包括以下三個(gè)部分:1)輔助軟件。所述輔助軟件指的是是獨(dú)立于原有軟件包管理系統(tǒng)的軟件,不被原有軟件包管理系統(tǒng)所管理,是可以被輔助軟件包管理系統(tǒng)管理的軟件。具體來說,這些輔助軟件是與原有軟件包管理系統(tǒng)中已安裝的軟件的版本號(hào)不同的軟件。這些輔助軟件可以存儲(chǔ)在本發(fā)明實(shí)施例的輔助軟件包管理系統(tǒng)的任何位置,一般存儲(chǔ)于/opt/relysoft目錄下。一般情況下,某一款軟件在原有軟件包管理系統(tǒng)中安裝的都是該軟件的最新版,以使用新版的軟件帶來的各種優(yōu)勢(shì)。當(dāng)用戶需要使用該軟件的某一老版本時(shí),則可以直接將該軟件老版本(也即輔助軟件)解壓到opt/relysoft目錄下,這樣就可以直接使用該老版本軟件。例如,當(dāng)軟件A依賴軟件B的低版本,而原有軟件包管理系統(tǒng)上已經(jīng)安裝了軟件B的高版本時(shí),解壓軟件B的低版本到輔助軟件包管理系統(tǒng)的opt/relysoft目錄下,然后修改下面所描述的配置文件中即可。2、配置文件。配置文件中記錄每個(gè)軟件在運(yùn)行時(shí)所依賴的其他軟件的位置,如果所依賴的其他軟件是與原有軟件包管理系統(tǒng)中已有軟件版本不同的軟件,也就是該軟件文件依賴于輔助軟件,本發(fā)明實(shí)施例將這種依賴關(guān)系稱為特殊依賴。其中,軟件文件可以是程序文件(應(yīng)用軟件),也可以是共享庫文件。配置文件中的每條記錄就是記錄了一個(gè)程序文件或者共享庫文件在運(yùn)行時(shí)所特殊依賴的程序文件或共享庫文件的位置。本發(fā)明實(shí)施例所說的輔助軟件指的是那些與原有軟件包管理系統(tǒng)所安裝的軟件版本號(hào)不同的軟件。比如原有軟件包管理系統(tǒng)中已安裝有軟件B的高版本,但軟件A需要依賴軟件B的低版本,那么軟件B的低版本即稱為輔助軟件。這些輔助軟件不在正常的環(huán)境中,所謂正常的環(huán)境也就是原有軟件包管理系統(tǒng)所管理的環(huán)境。也就是說,這些與原有軟件包管理系統(tǒng)中的軟件版本不同的軟件是受本發(fā)明實(shí)施例的輔助軟件包管理系統(tǒng)所管理的,不屬于原有軟件包管理系統(tǒng)所管理的范圍。配置文件的每一條記錄為key:value的形式,每條記錄單獨(dú)存在,互相不關(guān)聯(lián)。其中key為一個(gè)文件的全路徑(也即表示該文件的位置),該文件可以是一個(gè)程序,也可以是一個(gè)共享庫文件;而value則是key所依賴的輔助軟件目錄的全路徑,多個(gè)路徑以逗號(hào)分割。該配置文件可以是/etc/relysoft.conf,本發(fā)明實(shí)施例的配置文件可以采用文本文件的方式,管理員可以直接修改配置文件,還可以采用二進(jìn)制的方式,使得配置文件的內(nèi)容快速加載。3、可使用輔助軟件包管理系統(tǒng)的命令解析器shell。正常情況下,Linux程序在運(yùn)行時(shí)可能需要調(diào)用別的命令或者是共享庫,shell會(huì)在PATH環(huán)境變量?jī)?nèi)查找該命令,在LD_LIBRARY_PATH環(huán)境變量和/etc/ld.so.cache文件列表中搜索共享庫。這個(gè)shell在調(diào)用到一個(gè)命令或者是找到一個(gè)共享庫文件以后,可以根據(jù)上述配置文件,查到是否需要為該文件配置臨時(shí)的環(huán)境,并在需要時(shí)創(chuàng)建臨時(shí)的環(huán)境,并加載該文件。其中,判斷是否需要為該文件配置臨時(shí)的環(huán)境,是要看該軟件是否存在特殊依賴,也就是說,該軟件是否依賴于輔助軟件,也即,是否依賴于除原有軟件包管理系統(tǒng)中軟件版本外的其他軟件版本。Shell運(yùn)行某命令時(shí)的流程,具體說明如下:首先啟動(dòng)shell,加載/etc/relysoft.conf配置文件到哈希表relysofthash中。用戶輸入命令后,該命令一般是指對(duì)軟件進(jìn)行操作的命令,比如安裝軟件、卸載軟件、更新軟件等等。其中,此處所針對(duì)的軟件可以是原有軟件包管理系統(tǒng)或輔助軟件包管理系統(tǒng)中已有的軟件,也可以是原有軟件包管理系統(tǒng)或輔助軟件包管理系統(tǒng)中均未安裝的新款軟件。系統(tǒng)在PATH環(huán)境變量中查找該軟件,根據(jù)查找到的該軟件的全路徑,在哈希表relysofthash中查找該軟件是否與其他程序文件存在依賴關(guān)系,其他程序文件包括輔助程序文件和非輔助程序文件。其中,依賴關(guān)系包括該軟件依賴于輔助程序文件,或者存在其他程序文件依賴于該軟件,所謂輔助程序文件也就是指那些與原有軟件包管理系統(tǒng)中程序文件版本不同的程序文件。當(dāng)該軟件依賴于輔助程序文件時(shí),為那些輔助程序文件設(shè)置臨時(shí)環(huán)境變量:T_RATH和T_LD_LIBRARY_PATH,加載安裝這些輔助程序文件。進(jìn)一步判斷該軟件是否還特殊依賴某共享庫文件,則先后在T_PATH和T_LD_LIBRARY_PATH這兩個(gè)環(huán)境變量包含的路徑下尋找該共享庫文件;找到該共享庫文件以后,加載該共享庫文件。最終運(yùn)行用戶發(fā)送的操作命令。當(dāng)存在其他程序文件或其他共享庫文件依賴于該軟件時(shí),向用戶發(fā)送提示信息,并根據(jù)用戶的反饋執(zhí)行相應(yīng)操作,如果用戶確定繼續(xù)執(zhí)行該命令則執(zhí)行該命令,否則,不執(zhí)行該命令,結(jié)束流程。本發(fā)明實(shí)施例的軟件包管理系統(tǒng)還包括配置文件修改單元,用于在執(zhí)行完該命令后,修改配置文件,也即在配置文件中添加相應(yīng)記錄?;谕话l(fā)明構(gòu)思,本發(fā)明還提供了一種兼容多版本的軟件包管理系統(tǒng),包括上述輔助軟件包管理系統(tǒng)以及原有軟件包管理系統(tǒng)。當(dāng)原有的軟件包管理系統(tǒng)封裝到本發(fā)明實(shí)施例的輔助軟件包管理系統(tǒng)中時(shí),則封裝后形成一套兼容多版本的軟件包管理系統(tǒng)。該兼容多版本的軟件包管理系統(tǒng)還包括一組管理命令,包含以下基本功能:1、安裝軟件,安裝軟件前先要查找該軟件依賴的軟件包和輔助軟件包,如果該軟件只依賴原有軟件包管理系統(tǒng)或輔助軟件包管理系統(tǒng)已有版本的軟件,也可以稱這種依賴關(guān)系為普通依賴,那么就可以直接安裝所要安裝的軟件;如果該軟件依賴的是輔助軟件,或者不僅依賴原有軟件包管理系統(tǒng)已有版本的軟件還依賴輔助軟件,那么則需要首先安裝輔助軟件包,安裝完成以后,再加載安裝該所要安裝的軟件,并修改相應(yīng)的配置文件;所說的輔助軟件包中所包含的輔助軟件指的是與原有軟件包管理系統(tǒng)中軟件版本號(hào)不同的軟件。以安裝軟件A的版本2為例,如圖1所示:首先查找到軟件A的版本2依賴于軟件包B的版本3,如果檢測(cè)到系統(tǒng)已經(jīng)安裝了軟件B的版本4,則在/opt/relysoft下安裝軟件B的版本3;安裝完軟件B的版本3以后再安裝軟件A的版本2;在配置文件/etc/relysoft.conf中添加記錄,即軟件A的各個(gè)程序文件和共享庫文件依賴于軟件B的版本3,安裝流程結(jié)束。2、升級(jí)軟件,在升級(jí)軟件時(shí)查找有沒有軟件依賴于此軟件的老版本,如果有,在升級(jí)軟件以后,在/opt/relysoft下安裝該軟件的老版本,并由配置文件修改單元修改/etc/relysoft配置文件;3、卸載軟件,卸載軟件又分為卸載普通軟件和卸載輔助軟件。卸載普通軟件即卸載原有軟件包管理系統(tǒng)管理的軟件,而卸載輔助軟件即卸載/opt/relysoft下的軟件,這就要先在/etc/relysoft.conf配置文件中查找是否有其他軟件依賴于此軟件,如果有,則需要提示用戶是否繼續(xù)卸載,根據(jù)用戶的反饋再確定是否執(zhí)行卸載命令;如果沒有,方可卸載;4、更新系統(tǒng)軟件,這是指更新所有原有軟件包管理系統(tǒng)管理的軟件,而不更新/opt/relysoft文件夾下的軟件?;谕话l(fā)明構(gòu)思,本發(fā)明還提供了一種軟件包管理方法,如圖2所示,具體包括以下步驟:S101、首先啟動(dòng)命令解析器shell,加載配置文件到哈希表中,配置文件中記錄有每個(gè)軟件(程序文件或者共享庫文件)在運(yùn)行時(shí)所依賴的其他軟件的位置。S102、用戶發(fā)送對(duì)軟件進(jìn)行操作的命令,該軟件可以是原有軟件包管理系統(tǒng)或輔助軟件包管理系統(tǒng)已安裝的軟件,也可以是原有軟件包管理系統(tǒng)或輔助軟件包管理系統(tǒng)均未安裝的軟件;也就是說,該命令可以是對(duì)已安裝軟件的卸載或更新操作命令,還可以是安裝一款新軟件的安裝操作命令。S103、接受用戶發(fā)送的命令,在上述配置文件中查找該軟件是否依賴與其他軟件存在依賴關(guān)系,其中,其他軟件包括輔助軟件和非輔助軟件;所說的依賴關(guān)系包括兩個(gè)方面,一個(gè)方面可以是該軟件依賴于輔助軟件,另一方面是存在其他軟件依賴于該軟件。如果存在依賴關(guān)系,則執(zhí)行步驟S104;否則,直接執(zhí)行該命令。所謂輔助軟件,是指與原有軟件包管理系統(tǒng)中軟件版本不同的其他版本的軟件。S104、判斷該依賴關(guān)系具體為何種依賴,如果是該軟件依賴于輔助軟件,則執(zhí)行步驟S105;否則(也就是其他軟件依賴于該軟件的情況),執(zhí)行步驟S106;S105、為輔助軟件設(shè)置臨時(shí)環(huán)境變量。設(shè)置完臨時(shí)環(huán)境變量以后,加載上面所說的輔助軟件,執(zhí)行用戶發(fā)送的命令。執(zhí)行完命令以后修改配置文件。S106、當(dāng)存在其他軟件依賴于該軟件時(shí),則向用戶發(fā)送提示信息。根據(jù)用戶的反饋再?zèng)Q定是否執(zhí)行該命令,如果用戶的反饋為繼續(xù)執(zhí)行該操作命令,則執(zhí)行該命令;否則,不執(zhí)行該命令,結(jié)束流程。本發(fā)明在原有軟件包管理系統(tǒng)的基礎(chǔ)上,建立了一套輔助軟件包管理系統(tǒng),在系統(tǒng)中實(shí)現(xiàn)同時(shí)擁有同一軟件的不同版本且這些版本都可以被同時(shí)使用,同時(shí)被其他軟件所依賴。本發(fā)明兼容各種Linux發(fā)行版之前的軟件包管理系統(tǒng),實(shí)現(xiàn)同一軟件的不同版本共存及被同時(shí)依賴使用,提高了操作系統(tǒng)的軟件靈活性。以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其進(jìn)行限制。因此,在不背離本發(fā)明的精神及其實(shí)質(zhì)的情況下,本領(lǐng)域技術(shù)人員可作出各種改變、替換和變型。很顯然,但這些改變、替換和變型都應(yīng)涵蓋于本發(fā)明權(quán)利要求的保護(hù)范圍之內(nèi)。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
盐池县| 长寿区| 阳朔县| 弋阳县| 修水县| 中阳县| 扬中市| 府谷县| 邢台市| 桓仁| 河间市| 德昌县| 邢台县| 巫山县| 大关县| 城固县| 阳山县| 邹平县| 万安县| 长春市| 邵阳市| 娱乐| 崇明县| 贺州市| 宝应县| 固安县| 宁武县| 修水县| 阳城县| 西乌珠穆沁旗| 奉化市| 清徐县| 阿鲁科尔沁旗| 海晏县| 巴南区| 斗六市| 河东区| 新竹市| 江津市| 利辛县| 濉溪县|