當(dāng)我們使用Linux一段時(shí)間以后,自然不會(huì)滿(mǎn)足總是在沒(méi)有任何變化的系統(tǒng)中工作,而是渴望能象在Windows系統(tǒng)中一樣,不斷對(duì)自己的Linux進(jìn)行升級(jí)。另一方面,Linux本身就是一個(gè)開(kāi)放的系統(tǒng),每天都會(huì)有新的軟件出現(xiàn),Linux發(fā)行套件和內(nèi)核也在不斷更新。在這樣的情況下,學(xué)會(huì)對(duì)Linux(包括系統(tǒng)本身和各種軟件)進(jìn)行升級(jí)就顯得非常迫切了。
1.升級(jí)一般軟件
一般來(lái)說(shuō),升級(jí)應(yīng)用軟件是比較簡(jiǎn)單的,因?yàn)槟悴挥锰谝馍?jí)后對(duì)其他軟件的影響(如果是升級(jí)系統(tǒng),情況就不一樣了)。首先,你必須找到希望升級(jí)的新版本。你可以在Linux的專(zhuān)門(mén)站點(diǎn)上尋找自己中意的軟件。然后就是使用各種下載工具將軟件下載到指定目錄中。下載的軟件大部分是以tar打包的gzip壓縮文件。
在處理這些軟件之前最好使用tar tvf 或 tar ztvf 命令看看下載下來(lái)的文件中包含了一些什么文件。因?yàn)榈玫降能浖赡苁嵌M(jìn)制文件也可能是源碼,使用上述的命令可以看看究竟是哪一種文件。
如果是二進(jìn)制文件,一般可以直接將包打開(kāi),然后刪除相應(yīng)的老文件就可以了。
如果是源文件則要留心包里面是否有幫助和安裝文件(readme / install / help)等等。然后將軟件打開(kāi)到指定的目錄中去,仔細(xì)看看幫助和安裝文件中的提示和安裝約定,再進(jìn)行安裝工作。這時(shí),安裝工作意味著要對(duì)源代碼進(jìn)行編譯。首先要對(duì)Makefile文件進(jìn)行修改,修改的內(nèi)容和修改的方法在軟件包中的相關(guān)文件中往往可以找到,另外有的時(shí)候軟件包里會(huì)包含一個(gè)shell程序configure,執(zhí)行它可以省不少時(shí)間。對(duì)makefile處理完以后,就可以使用make命令來(lái)編譯指定的文件。最后用make install命令將軟件安裝到自己的計(jì)算機(jī)上。
2.升級(jí)編譯器
我們可以先用"gcc -v"命令看看自己當(dāng)前的gcc版本,然后決定是否要進(jìn)行升級(jí)。當(dāng)我們需要對(duì)自己的gcc、連接器、匯編器以及各種頭文件和函數(shù)庫(kù)進(jìn)行升級(jí)的時(shí)候,我們就可以到相關(guān)站點(diǎn)上獲得對(duì)應(yīng)的軟件包,然后在指定目錄下開(kāi)打,同時(shí)刪除(覆蓋)原來(lái)的老文件就可以了。
3.升級(jí)函數(shù)庫(kù)
因?yàn)樯?jí)后要重新指定庫(kù)的連接,所以函數(shù)庫(kù)是比較麻煩的。我們知道,Linux系統(tǒng)的庫(kù)文件分為檔案庫(kù)和共享庫(kù)兩種類(lèi)型。檔案庫(kù)的文件一般是libx.a,而共享庫(kù)的文件一般是libx.so.version,升級(jí)函數(shù)庫(kù)時(shí)必須使用新的版本的。a和。so.version文件替換老版本的對(duì)應(yīng)文件。對(duì)。a文件來(lái)說(shuō)非常容易,只要將新文件拷進(jìn)指定的目錄,覆蓋原來(lái)的文件就可以了。但是我們對(duì)共享庫(kù)進(jìn)行操作的時(shí)候就要特別小心了。絕不能簡(jiǎn)單地將新文件拷到一個(gè)目錄下,然后刪除舊的文件。因?yàn)橛锌赡芘f的函數(shù)庫(kù)正在為某個(gè)程序所使用。我們必須保證每個(gè)程序都能夠正確地找到共享庫(kù)。簡(jiǎn)單的將,當(dāng)我們將新版本的共享庫(kù)文件放到指定目錄下以后,使用ln命令來(lái)完成:
ln –sf /usr/lib/libdb.so.new("new"指新的版本號(hào))
/usr/lib/libdb.so.old("old"是原有的文件) ;
比如: /usr/lib/libdb.so.2原來(lái)指向的文件是/usr/llib/libdb.so.2.0.1,現(xiàn)在有一個(gè)新文件 /usr/lib/libdb.so.2.78.1,我們可以這樣處理:ln –sf /usr/lib/libdb.so.2.78.1 /usr/lib/libdb.so.2 ;然后,我們才能將/usr/lib/libdb.so.2.0.1文件進(jìn)行刪除。
4.系統(tǒng)升級(jí)
最簡(jiǎn)單的升級(jí)方法當(dāng)然是……一張cd-rom里就可以將整個(gè)系統(tǒng)完全包括了。當(dāng)然,這樣的升級(jí)方法比較費(fèi)事,同時(shí),每一次升級(jí)都意味著原來(lái)的文件有可能丟失,因此,完全沒(méi)有必要總是將系統(tǒng)重新安裝一次。每一個(gè)Linux發(fā)行套件其實(shí)都是記錄升級(jí)情況的文件。比如slackware中有一個(gè)changelog.txt文件,按時(shí)間順序記錄了slackware的更新?tīng)顩r。而在RedHat中則是/redhat-4.2/updates/00readme.errata.我們可以從這些文件中看出是不是需要進(jìn)行升級(jí)。然后找到相應(yīng)部分的軟件包,使用installpkg filename或者rpm –U filename來(lái)將軟件包安裝在計(jì)算機(jī)上。
以上分享了linux系統(tǒng)下一般軟件,編譯器,系統(tǒng)內(nèi)核以及系統(tǒng)本身升級(jí)技巧,希望真正的可以幫助到大家更好升級(jí)linux系統(tǒng)。