在Linux系統(tǒng)中,軟件包的依賴關(guān)系讓人很是頭疼。如在安裝Linux系統(tǒng)時,不是選擇安裝所有的軟件包。在安裝完Linux系統(tǒng)后,若再進行軟件安裝的話,就可能會遇到一些依賴關(guān)系的問題,如在安裝PHP軟件包時,系統(tǒng)就可能會提示一些錯誤信息。說需要其他的一些軟件包的支持。其實類似的情況在Windows中也會遇到。如有時候安裝一些應(yīng)用軟件可能對瀏覽器的版本會有要求或者要求操作系統(tǒng)的補丁達到SP2以上等等。不過在微軟操作系統(tǒng)上這種軟件依賴關(guān)系要比在Linux系統(tǒng)中少見的多,而且處理起來也方便一些。
那么Linux操作系統(tǒng)中如果遇到這種軟件包依賴關(guān)系的話,該如何處理呢?在談這個具體的解決措施之前,我先跟大家說說在哪些情況下容易出現(xiàn)軟件包的依賴關(guān)系問題。
一是在操作系統(tǒng)安裝的時候,沒有選擇全部的軟件包。大部分時候出于安全或者其他方面的原因,Linux系統(tǒng)管理員往往不會選擇安裝全部的軟件包。而只是安裝一些運行相關(guān)服務(wù)所必要的軟件包。但是有時候系統(tǒng)管理員可能并不清楚哪些軟件包是必須要裝的,否則后續(xù)的一些服務(wù)將無法啟動;而那些軟件包則是可選的。由于在系統(tǒng)安裝的時候很難一下子弄清楚這些內(nèi)容,故在Linux系統(tǒng)安裝完畢后,再部署其他一些軟件包的時候,就容易出現(xiàn)這個問題。
二是在Linux服務(wù)器上追加其他的一些應(yīng)用服務(wù)時,容易出現(xiàn)類似的問題。如有一次企業(yè)需要使用一個Oracle數(shù)據(jù)庫,我就在原先的文件服務(wù)器上安裝Oracle數(shù)據(jù)庫。但是在Linux操作系統(tǒng)上安裝Oracle服務(wù)器是一個很頭疼的問題,需要安裝不少的軟件包。而我一開始部署Linux文件服務(wù)器的時候又不知道后來需要安裝Oracle數(shù)據(jù)庫,故不少的軟件包都沒有裝。而且后來發(fā)現(xiàn),不少的軟件包其實在Linux安裝盤中還沒有,需要自己到網(wǎng)上去下。所以,如果要在原先已經(jīng)部署好的Linux服務(wù)器中追加一些應(yīng)用服務(wù)時,很容易出現(xiàn)這個軟件包的依賴問題。
其實解決這個軟件包的依賴問題說簡單也不簡單,說復(fù)雜也不復(fù)雜。我下面總結(jié)了幾個方法,各位若有需要的話可以借鑒一下。
一、根據(jù)錯誤提示信息在安裝光盤中尋找。
在安裝軟件包時如果遇到軟件依賴關(guān)系問題時,通常情況下系統(tǒng)都會提示相關(guān)的信息。如提示“l(fā)ibgd.so.1.8 is needey by php-4.2.2-17”等等。這就表示安裝PHP程序時,需要先安裝libgd.so軟件包。當(dāng)遇到這個問題時,我建議系統(tǒng)管理員可以根據(jù)這個提示信息,先從Linux系統(tǒng)的安裝盤中查找一下是否有這個軟件包。
如上圖所示,在Linux安裝盤中的RPMS目錄下面就存放著大量的軟件包。通常情況下,像上面的libgd.so等常見的軟件包都可以從這個光盤中找到。所以系統(tǒng)管理員根據(jù)系統(tǒng)的錯誤提示信息,就可以了解到安裝某個軟件之前先要安裝那個軟件包。然后從系統(tǒng)光盤中找到這個軟件包,并進行安裝即可。另外需要說明的是,向RedHat操作系統(tǒng),如果采用的是CD安裝盤,則其可能有很多張光盤。而這些軟件包往往不是存儲在一張CD光盤中的。不過可以肯定的是,每張光盤下都會有RPMS這個目錄。當(dāng)系統(tǒng)管理員不知道某個軟件包存儲在哪個盤中的話,則可以一張張的找過去。雖然比較麻煩一點,但是大部分情況下都會有收獲的。
不過如果采用這個方法有一個限制。像安裝Oracle這種大型的應(yīng)用軟件就不怎么適用。因為安裝這種大型的軟件本身就比較花費時間。如果等到安裝失敗之后再根據(jù)錯誤提示來安裝軟件包的話,則重復(fù)來重復(fù)去會浪費很多的時間,而且也會讓系統(tǒng)產(chǎn)生很多的垃圾文件。為此除非是一些小型的軟件包,否則的話,還是根據(jù)下面我要介紹的方法來做,以節(jié)省軟件安裝的時間。
二、參考官方的文檔。
通常情況下,一些軟件的官方文檔會說明安裝它們的軟件需要哪些軟件包。如在安裝Oracle數(shù)據(jù)庫時,就必須需要安裝不少的軟件包。到底需要安裝哪些軟件包,在Oracle的官方網(wǎng)站上都會有詳細的說明。我在安裝Oracle數(shù)據(jù)庫時,就先安裝這個說明,一一來驗證Linux系統(tǒng)中是否安裝了這些軟件包。如果沒有安裝的話,就馬上裝上去。此時各位Linux系統(tǒng)管理員不要抱著僥幸心理,已經(jīng)不安裝不會有大問題,這是大錯特錯了。對于Oracle 公司官方網(wǎng)站建議的軟件包在Oracle數(shù)據(jù)庫系統(tǒng)安裝之前必須一五一十的安裝上去。否則的話輕則導(dǎo)致數(shù)據(jù)庫安裝失敗,重者的話會導(dǎo)致后續(xù)數(shù)據(jù)庫運行不穩(wěn)定。
其實不光是Oracle數(shù)據(jù)庫系統(tǒng),其他的一些應(yīng)用軟件對Linux系統(tǒng)都會有類似的要求。它們要求在安裝它們的應(yīng)用軟件之前,Linux系統(tǒng)必須安裝有某些軟件包,否則的話安裝就會失敗。所以我建議各位Linux系統(tǒng)管理員,在安裝這些軟件之前,先到官方網(wǎng)站上去尋找類似的文檔,然后對照文檔的內(nèi)容去驗證Linux系統(tǒng)是否安裝了這些軟件包。如此的話就可以避免軟件包依賴關(guān)系的問題。另外,在網(wǎng)絡(luò)上也可以尋找到很多有用的價值。有些安裝過這個軟件的Linux系統(tǒng)管理員,會把自己安裝過程中系統(tǒng)遇到的軟件包依賴關(guān)系列舉出來,會一一說明需要先安裝哪些軟件包。這些網(wǎng)絡(luò)上的文檔雖然其專業(yè)性可能沒有官方提供的文檔那么專業(yè)。但是對我們來說也具有很大的參考價值。
那么Linux操作系統(tǒng)中如果遇到這種軟件包依賴關(guān)系的話,該如何處理呢?在談這個具體的解決措施之前,我先跟大家說說在哪些情況下容易出現(xiàn)軟件包的依賴關(guān)系問題。
一是在操作系統(tǒng)安裝的時候,沒有選擇全部的軟件包。大部分時候出于安全或者其他方面的原因,Linux系統(tǒng)管理員往往不會選擇安裝全部的軟件包。而只是安裝一些運行相關(guān)服務(wù)所必要的軟件包。但是有時候系統(tǒng)管理員可能并不清楚哪些軟件包是必須要裝的,否則后續(xù)的一些服務(wù)將無法啟動;而那些軟件包則是可選的。由于在系統(tǒng)安裝的時候很難一下子弄清楚這些內(nèi)容,故在Linux系統(tǒng)安裝完畢后,再部署其他一些軟件包的時候,就容易出現(xiàn)這個問題。
二是在Linux服務(wù)器上追加其他的一些應(yīng)用服務(wù)時,容易出現(xiàn)類似的問題。如有一次企業(yè)需要使用一個Oracle數(shù)據(jù)庫,我就在原先的文件服務(wù)器上安裝Oracle數(shù)據(jù)庫。但是在Linux操作系統(tǒng)上安裝Oracle服務(wù)器是一個很頭疼的問題,需要安裝不少的軟件包。而我一開始部署Linux文件服務(wù)器的時候又不知道后來需要安裝Oracle數(shù)據(jù)庫,故不少的軟件包都沒有裝。而且后來發(fā)現(xiàn),不少的軟件包其實在Linux安裝盤中還沒有,需要自己到網(wǎng)上去下。所以,如果要在原先已經(jīng)部署好的Linux服務(wù)器中追加一些應(yīng)用服務(wù)時,很容易出現(xiàn)這個軟件包的依賴問題。
其實解決這個軟件包的依賴問題說簡單也不簡單,說復(fù)雜也不復(fù)雜。我下面總結(jié)了幾個方法,各位若有需要的話可以借鑒一下。
一、根據(jù)錯誤提示信息在安裝光盤中尋找。
在安裝軟件包時如果遇到軟件依賴關(guān)系問題時,通常情況下系統(tǒng)都會提示相關(guān)的信息。如提示“l(fā)ibgd.so.1.8 is needey by php-4.2.2-17”等等。這就表示安裝PHP程序時,需要先安裝libgd.so軟件包。當(dāng)遇到這個問題時,我建議系統(tǒng)管理員可以根據(jù)這個提示信息,先從Linux系統(tǒng)的安裝盤中查找一下是否有這個軟件包。
如上圖所示,在Linux安裝盤中的RPMS目錄下面就存放著大量的軟件包。通常情況下,像上面的libgd.so等常見的軟件包都可以從這個光盤中找到。所以系統(tǒng)管理員根據(jù)系統(tǒng)的錯誤提示信息,就可以了解到安裝某個軟件之前先要安裝那個軟件包。然后從系統(tǒng)光盤中找到這個軟件包,并進行安裝即可。另外需要說明的是,向RedHat操作系統(tǒng),如果采用的是CD安裝盤,則其可能有很多張光盤。而這些軟件包往往不是存儲在一張CD光盤中的。不過可以肯定的是,每張光盤下都會有RPMS這個目錄。當(dāng)系統(tǒng)管理員不知道某個軟件包存儲在哪個盤中的話,則可以一張張的找過去。雖然比較麻煩一點,但是大部分情況下都會有收獲的。
不過如果采用這個方法有一個限制。像安裝Oracle這種大型的應(yīng)用軟件就不怎么適用。因為安裝這種大型的軟件本身就比較花費時間。如果等到安裝失敗之后再根據(jù)錯誤提示來安裝軟件包的話,則重復(fù)來重復(fù)去會浪費很多的時間,而且也會讓系統(tǒng)產(chǎn)生很多的垃圾文件。為此除非是一些小型的軟件包,否則的話,還是根據(jù)下面我要介紹的方法來做,以節(jié)省軟件安裝的時間。
二、參考官方的文檔。
通常情況下,一些軟件的官方文檔會說明安裝它們的軟件需要哪些軟件包。如在安裝Oracle數(shù)據(jù)庫時,就必須需要安裝不少的軟件包。到底需要安裝哪些軟件包,在Oracle的官方網(wǎng)站上都會有詳細的說明。我在安裝Oracle數(shù)據(jù)庫時,就先安裝這個說明,一一來驗證Linux系統(tǒng)中是否安裝了這些軟件包。如果沒有安裝的話,就馬上裝上去。此時各位Linux系統(tǒng)管理員不要抱著僥幸心理,已經(jīng)不安裝不會有大問題,這是大錯特錯了。對于Oracle 公司官方網(wǎng)站建議的軟件包在Oracle數(shù)據(jù)庫系統(tǒng)安裝之前必須一五一十的安裝上去。否則的話輕則導(dǎo)致數(shù)據(jù)庫安裝失敗,重者的話會導(dǎo)致后續(xù)數(shù)據(jù)庫運行不穩(wěn)定。
其實不光是Oracle數(shù)據(jù)庫系統(tǒng),其他的一些應(yīng)用軟件對Linux系統(tǒng)都會有類似的要求。它們要求在安裝它們的應(yīng)用軟件之前,Linux系統(tǒng)必須安裝有某些軟件包,否則的話安裝就會失敗。所以我建議各位Linux系統(tǒng)管理員,在安裝這些軟件之前,先到官方網(wǎng)站上去尋找類似的文檔,然后對照文檔的內(nèi)容去驗證Linux系統(tǒng)是否安裝了這些軟件包。如此的話就可以避免軟件包依賴關(guān)系的問題。另外,在網(wǎng)絡(luò)上也可以尋找到很多有用的價值。有些安裝過這個軟件的Linux系統(tǒng)管理員,會把自己安裝過程中系統(tǒng)遇到的軟件包依賴關(guān)系列舉出來,會一一說明需要先安裝哪些軟件包。這些網(wǎng)絡(luò)上的文檔雖然其專業(yè)性可能沒有官方提供的文檔那么專業(yè)。但是對我們來說也具有很大的參考價值。