一辉阶、Linux系統(tǒng)軟件包分類
Linux系統(tǒng)下只有源碼包先壕、二進制包,就這兩種包谆甜。
Tips:
windows系統(tǒng)中的軟件和Linux系統(tǒng)的軟件是不通用的垃僚。
windows系統(tǒng)中的軟件是經(jīng)過編譯后的.exe文件和.msi。
二规辱、源碼包
1谆棺、什么是源碼包
以前我們一直在說,Linux系統(tǒng)飛速發(fā)展的一個根本原因就是開源罕袋。所謂的源碼包改淑,就是直接給你一個開放的源程序。作者寫的時候是什么樣浴讯,寫完就直接給你溅固,這就是源碼包。
Linux系統(tǒng)中最早的程序都是這樣的源碼包兰珍。
2、源碼包的優(yōu)點
- 開源询吴,如果有足夠的能力掠河,可以修改源代碼(有利于學(xué)習(xí),有利于推廣)猛计。
- 可以自由選擇所需的功能唠摹。
- 軟件是編譯安裝(編譯:把abcd翻譯成0101的過程),所以更加適合自己的系統(tǒng)奉瘤,更加穩(wěn)定也效率更高(之前有一個大概的估算勾拉,如果使用源碼包安裝軟件,要比使用同版本同樣性能的二進制包盗温,軟件的效能要高5個百分點)藕赞。
- 卸載方便(直接把安裝目錄刪除就可以了,基本上沒有殘余文件)卖局。
3斧蜕、源碼包的缺點
- 安裝過程步驟較多,尤其安裝較大的軟件集合時(如LAMP環(huán)境搭建)砚偶,容易出現(xiàn)拼寫錯誤批销。
- 編譯過程時間較長洒闸,安裝比二進制安裝時間長。
- 因為是編譯安裝均芽,編譯安裝過程容易報錯丘逸,一旦報錯新手很難解決。
三掀宋、二進制包
類似于windows系統(tǒng)的exe文件深纲。二進制包安裝較源碼包安裝更為方便,但是二進制包就不在是開源的了布朦,因為二進制包中是已經(jīng)編譯好的文件囤萤。
1、二進制包分類
DPKG包:是由Debian Linux所開發(fā)出來的包管理機制是趴,通過DPKG包Debian Linux就可以進行軟件包管理涛舍。主要應(yīng)用在Debian和unbuntu中。(也經(jīng)常叫deb包)
RPM包:是由Red Hat公司所開發(fā)的包管理系統(tǒng)唆途。功能強大富雅,安裝、升級肛搬、查詢和卸載都非常簡單和方便没佑。目前很多Linux都在使用這種包管理方式,包括Fedora温赔、CentoS蛤奢、SuSE等。我們將要學(xué)習(xí)RPM包管理系統(tǒng)陶贼。
提示:
DPKG包和RPM包啤贩,這兩種包系統(tǒng)是不通用的。這也是兩個系統(tǒng)最大的區(qū)別拜秧。
但是Red Hat中的安裝過程和Debian中軟件的安裝是一一對應(yīng)的痹屹。如果以后用到Debian系統(tǒng),查閱一下與之對應(yīng)的命令即可枉氮。
2志衍、RPM包的優(yōu)點:
- 包管理系統(tǒng)操作簡單,只通過幾個命令就可以實現(xiàn)包的安裝聊替、升級楼肪、查詢和卸載。(編輯過程基本不會報錯了惹悄,因為廠商已經(jīng)提前編譯好了)
- 安裝速度比源碼包安裝快的多淹辞。
3、RPM包的缺點:
- 經(jīng)過編譯,不再可以看到源代碼象缀。
- 功能選擇不如源碼包靈活蔬将。
- 依賴性。有時我們會發(fā)現(xiàn)需要安裝軟件包a時需要先安裝軟件b和c央星,而安裝b軟件時需要安裝軟件d和e霞怀。這時需要先安裝d和e,再安裝b和c莉给,最后才能安裝a包毙石。所以通過RPM包安裝軟件,如果軟件有依賴性的話颓遏,軟件則是有一定的安裝順序的徐矩。如果依賴性非常強的話,會非常的繁瑣叁幢。(Linux系統(tǒng)中絕大多數(shù)軟件包都會有依賴的軟件包)
注意:這里多強調(diào)一下上邊的依賴性
依賴性分為:
- 樹形依賴 a-->b--->c
a包依賴b包滤灯,b包依賴c包。所以需要先安裝c包曼玩,在安裝b包鳞骤,最后在安裝c包。- 環(huán)形依賴a--->b--->c--->a
這種環(huán)形的依賴關(guān)系黍判,按照上邊樹形依賴的解釋豫尽,是無法安裝的。但是這種依賴關(guān)系解決起來很簡單顷帖,就是把a美旧、b、c包同時安裝贬墩,就是用一條命令同時安裝三個包就能解決榴嗅。- 模塊依賴(函數(shù)庫依賴)
最煩麻煩就是這種模塊依賴關(guān)系,我們舉一個例子震糖,嘗試安裝以下文件:[root@localhost Packages]# rpm -ivh mysql-connector-odbc-5.2.5-7.e17.x86_64.rpm 錯誤:依賴檢測失敗: libodbc.so.2()(64bit)被mysql-connector-odbc-5.2.5-7.e17.x86_64需要 libodbcinst.so.2()(64bit)被mysql-connector-odbc-5.2.5-7.el7.x86_64需要 注意: libodbc.so.2是一個文件的名字趴腋,并不是一個包名吊说,你要把這個文件所在的包安裝上,這個文件就存在了优炬。
發(fā)現(xiàn)報錯颁井,需要安裝“l(fā)ibodbc.so.2”函數(shù)庫文件,這時會發(fā)現(xiàn)在光盤中根本找不到這個文件蠢护。那是因為這個函數(shù)庫沒有單獨成包雅宾,是包含在某一個軟件包中的。而如果要知道該文件在哪個軟件包中葵硕,需要查詢網(wǎng)站http://www.rpmfind.net/
(很方便)眉抬,如圖:
點擊搜索之后贯吓,會顯示在不同的Linux版本中,安裝哪個包蜀变,如下圖
這是個網(wǎng)站的原理悄谐,是通過查詢一個RPM包依賴管理的數(shù)據(jù)庫,來解決這個問題的库北。
四爬舰、RPM包的兩種安裝方法
- 手動(手工命令安裝):就是通過rpm命令手動進行安裝,自己解決包之間的依賴性寒瓦。
- yum在線安裝:yum命令會自動連接到Red Hat的官方服務(wù)器上的包依賴數(shù)據(jù)庫情屹,不管何種依賴關(guān)系,需要的包都會自動的下載到本地杂腰,然后在自動進行安裝垃你。
注意:如果是正版的Red Hat系列的Linux系統(tǒng),會收費颈墅。但是CentOS里的yum是免費的蜡镶。
還有要注意一點Linux系統(tǒng)中,二進制包恤筛、rpm包官还、默認安裝包都指的是二進制包。yum只是源碼包和二進制包的在線安裝方式毒坛。
五望伦、小結(jié)
軟件既有源碼包版本,又有RPM包版本煎殷,如何選擇屯伞?
建議:
- 源碼包:如果服務(wù)是給大量客戶端提供訪問的,建議使用源碼包豪直,源碼包效率更高(如搭建LAMP環(huán)境)劣摇。
- RPM包:如果程序是給少量用戶訪問,或者本地使用的弓乙,建議RPM包末融,因為RPM管理方便。