很建议学习的Linux软件包管理— 软件包分类
一、Linux系統軟件包分類
Linux系統下只有源碼包、二進制包,就這兩種包。
Tips:
windows系統中的軟件和Linux系統的軟件是不通用的。
windows系統中的軟件是經過編譯后的.exe文件和.msi。
二、源碼包
1、什么是源碼包
以前我們一直在說,Linux系統飛速發展的一個根本原因就是開源。所謂的源碼包,就是直接給你一個開放的源程序。作者寫的時候是什么樣,寫完就直接給你,這就是源碼包。
Linux系統中最早的程序都是這樣的源碼包。
2、源碼包的優點
- 開源,如果有足夠的能力,可以修改源代碼(有利于學習,有利于推廣)。
- 可以自由選擇所需的功能。
- 軟件是編譯安裝(編譯:把abcd翻譯成0101的過程),所以更加適合自己的系統,更加穩定也效率更高(之前有一個大概的估算,如果使用源碼包安裝軟件,要比使用同版本同樣性能的二進制包,軟件的效能要高5個百分點)。
- 卸載方便(直接把安裝目錄刪除就可以了,基本上沒有殘余文件)。
3、源碼包的缺點
- 安裝過程步驟較多,尤其安裝較大的軟件集合時(如LAMP環境搭建),容易出現拼寫錯誤。
- 編譯過程時間較長,安裝比二進制安裝時間長。
- 因為是編譯安裝,編譯安裝過程容易報錯,一旦報錯新手很難解決。
三、二進制包
類似于windows系統的exe文件。二進制包安裝較源碼包安裝更為方便,但是二進制包就不在是開源的了,因為二進制包中是已經編譯好的文件。
1、二進制包分類
- DPKG包:是由Debian Linux所開發出來的包管理機制,通過DPKG包Debian Linux就可以進行軟件包管理。主要應用在Debian和unbuntu中。(也經常叫deb包)
- RPM包:是由Red Hat公司所開發的包管理系統。功能強大,安裝、升級、查詢和卸載都非常簡單和方便。目前很多Linux都在使用這種包管理方式,包括Fedora、CentoS、SuSE等。我們將要學習RPM包管理系統。
提示:
DPKG包和RPM包,這兩種包系統是不通用的。這也是兩個系統最大的區別。
但是Red Hat中的安裝過程和Debian中軟件的安裝是一一對應的。如果以后用到Debian系統,查閱一下與之對應的命令即可。
2、RPM包的優點:
- 包管理系統操作簡單,只通過幾個命令就可以實現包的安裝、升級、查詢和卸載。(編輯過程基本不會報錯了,因為廠商已經提前編譯好了)
- 安裝速度比源碼包安裝快的多。
3、RPM包的缺點:
- 經過編譯,不再可以看到源代碼。
- 功能選擇不如源碼包靈活。
- 依賴性。有時我們會發現需要安裝軟件包a時需要先安裝軟件b和c,而安裝b軟件時需要安裝軟件d和e。這時需要先安裝d和e,再安裝b和c,最后才能安裝a包。所以通過RPM包安裝軟件,如果軟件有依賴性的話,軟件則是有一定的安裝順序的。如果依賴性非常強的話,會非常的繁瑣。(Linux系統中絕大多數軟件包都會有依賴的軟件包)
注意:這里多強調一下上邊的依賴性
依賴性分為:
- 樹形依賴 a-->b--->c
a包依賴b包,b包依賴c包。所以需要先安裝c包,在安裝b包,最后在安裝c包。 - 環形依賴a--->b--->c--->a
這種環形的依賴關系,按照上邊樹形依賴的解釋,是無法安裝的。但是這種依賴關系解決起來很簡單,就是把a、b、c包同時安裝,就是用一條命令同時安裝三個包就能解決。 - 模塊依賴(函數庫依賴)
最煩麻煩就是這種模塊依賴關系,我們舉一個例子,嘗試安裝以下文件:
發現報錯,需要安裝“libodbc.so.2”函數庫文件,這時會發現在光盤中根本找不到這個文件。那是因為這個函數庫沒有單獨成包,是包含在某一個軟件包中的。而如果要知道該文件在哪個軟件包中,需要查詢網站http://www.rpmfind.net/
(很方便),如圖:
點擊搜索之后,會顯示在不同的Linux版本中,安裝哪個包,如下圖
這是個網站的原理,是通過查詢一個RPM包依賴管理的數據庫,來解決這個問題的。
四、RPM包的兩種安裝方法
- 手動(手工命令安裝):就是通過rpm命令手動進行安裝,自己解決包之間的依賴性。
- yum在線安裝:yum命令會自動連接到Red Hat的官方服務器上的包依賴數據庫,不管何種依賴關系,需要的包都會自動的下載到本地,然后在自動進行安裝。
注意:如果是正版的Red Hat系列的Linux系統,會收費。但是CentOS里的yum是免費的。
還有要注意一點Linux系統中,二進制包、rpm包、默認安裝包都指的是二進制包。yum只是源碼包和二進制包的在線安裝方式。
五、小結
軟件既有源碼包版本,又有RPM包版本,如何選擇?
建議:
- 源碼包:如果服務是給大量客戶端提供訪問的,建議使用源碼包,源碼包效率更高(如搭建LAMP環境)。
- RPM包:如果程序是給少量用戶訪問,或者本地使用的,建議RPM包,因為RPM管理方便。
重點:配套學習資料和視頻教學
那么在這里我也精心準備了上述大綱的詳細資料在下方鏈接如下
總結
以上是生活随笔為你收集整理的很建议学习的Linux软件包管理— 软件包分类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【考研英语语法】复杂句的逻辑
- 下一篇: 举个栗子!Tableau 技巧(4):如