一、簡介
在Linux平臺下扒最,軟件包的類型可以劃分為兩類:源碼包告嘲、二進制包错维。
源碼包:即程序軟件的源代碼(一般也叫Tarball,即將軟件的源碼以tar打包后再壓縮的資源包)橄唬。
二進制包:如 Red Hat發(fā)行版的.rpm包赋焕,Debian發(fā)行版的.deb包。
我將會分三章節(jié)來講解linux中軟件的安裝與管理仰楚,分別是:
- 源碼安裝(源碼包)
- RPM與YUM(rpm包:如CentOS系統(tǒng))
- dpkg與apt-*(deb包:如Unbuntu系統(tǒng))
如果你明確自己要用的是哪種安裝方式隆判,那你也可以只看相關的那一章節(jié)就行。
這一章將要介紹的是Linux平臺下的源碼安裝僧界,關于二進制包的安裝可以查看我接下來的兩篇文章:
-- Linux深入探索07-軟件管理與安裝(RPM與YUM)
-- Linux深入探索08-軟件管理與安裝(dpkg與apt-*)
二侨嘀、源碼安裝
源碼包的安裝主要分為三個步驟,如圖:
1捂襟、最簡單的例子
為了能夠更好的理解源碼包的安裝過程咬腕,這里舉一個最簡單的例子來加以說明。
1)獲取源代碼文件
這里使用C語言來編寫一個最簡單的程序葬荷,輸出“Hello World涨共!”,
首先宠漩,使用命令vim hello.c
創(chuàng)建一個C源文件举反,內(nèi)容如下:
#include <stdio.h>
int main(void){
printf("Hello World!\n");
}
2)編譯
編譯的命令為gcc hello.c
執(zhí)行了上面的命令后則可以發(fā)現(xiàn)當前目錄下多了一個a.out扒吁,該文件即為編譯后生成的二進制文件火鼻。
3)測試結果
運行命令./a.out
,則可以得到如下結果。
舉上面這個例子只是為了能夠更加好的理解軟件在Linux中安裝的原理魁索,在實際中可以說是不會有這么簡單的一個程序來讓你安裝的融撞。一般情況,一個軟件是由一系列的程序文件來組成蛾默,所以現(xiàn)實中的源碼包安裝方法并沒有像上面那個例子那么簡單懦铺,那下面就來介紹一般情況下的源碼包安裝方法捉貌。
2支鸡、源碼包安裝詳解
現(xiàn)實中,使用一個源碼包來安裝程序時趁窃,基本步驟如:
在上圖第二步中的--prefix
后面接的路徑表示這個軟件將要安裝到哪個目錄去牧挣,如果沒有指定--prefix=/path
這個參數(shù),通常默認為/usr/local
醒陆。本人推薦安裝位置為 /usr/local/XXX
瀑构,XXX
為自己的實際目錄,這樣會方便以后的管理刨摩。
源碼包安裝方式的man文件默認保存在/usr/local/man
或/usr/local/share/man
中寺晌,如果你的安裝路徑自定義為如/usr/local/XXX,則man文件則一般是在/usr/local/XXX/share/man
中澡刹。此時如果你想要通過man來查看你所安裝軟件的man手冊呻征,則需要自行修改man的路徑配置文件(可能是man.config
或者manpath.config
)。需要在相應位置添加如下一行:
MANPATH /usr/local/XXX/share/man
3罢浇、卸載
通過源碼包安裝的軟件陆赋,當你想要卸載的時候,只需要把整個安裝路徑刪除掉就行了嚷闭,100%卸載攒岛,不會像windows那樣經(jīng)常會殘留那多注冊表之類的垃圾。
根據(jù)你的安裝時候選擇的安裝路徑胞锰,源碼包的卸載又分為兩種情況:
1)如果你安裝時候指定的路徑為: --prefix=/usr/local/XXX灾锯,那么卸載的時候只需要把XXX這個文件夾刪除即可,因為該軟件安裝的所有文件都是放置在XXX這個文件夾嗅榕。
2)但如果你進行源碼包安裝的時候沒有指定位置(默認值一般為/usr/local/)挠进,或指定的位置為--prefix=/usr/local,則這時候你安裝軟件生成的文件將分別存儲在/usr/local/里面的bin誊册、lib或ect等目錄中领突,這時候卸載起來就相對麻煩一點了。
4案怯、源碼包安裝與二進制包的區(qū)別
- 源碼包的優(yōu)點:
① 開源君旦,如果有能力可以修改源代碼
② 可以自由選擇所需的功能
③ 軟件是編譯安裝,所以更加適合自己的系統(tǒng),更加穩(wěn)定也效率更高
④ 卸載方便 - 源碼包的缺點:
① 安裝過程步驟較多金砍,尤其安裝較大的軟件集合時(如LAMP環(huán)境搭建)局蚀,容易出現(xiàn)拼寫錯誤等
② 編譯過程時間較長,安裝比二進制安裝時間長
③ 因為是編譯安裝恕稠,安裝過程中一旦報錯新手不好解決 - 二進制包的優(yōu)點:
① 包管理系統(tǒng)簡單琅绅,只通過幾個命令就可以實現(xiàn)包的安裝、升級鹅巍、查詢和卸載
② 安裝速度比源碼快得多 - 二進制包的缺點:
① 經(jīng)過編譯千扶,不可以再看到源碼
② 功能選擇不如源碼包靈活
③ 依賴性
參考
書籍:
《鳥哥的Linux私房菜——基礎學習篇》鳥哥
《The Linux Command Line》William E. Shotts, Jr.