『學了就忘』Linux軟件包管理 — 40、Linux系統軟件包介紹


1、Linux系統軟件包分類

Linux系統下的軟件包只有源碼包二進制包,就這兩種包。

Tips:

  • Windows系統中的軟件和Linux系統的軟件是不通用的。
  • Windows系統中的軟件是經過編譯后的.exe文件和.msi

2、源碼包說明

(1)什么是源碼包

以前我們一直在說,Linux系統飛速發展的一個根本原因就是開源。所謂的源碼包,就是直接給你一個開放的源程序。也就是說作者寫的時候是什么樣,寫完就直接給你,這就是源碼包。

Linux系統中最早的程序都是這樣的源碼包。

(2)源碼包的優點

  • 開源,如果有足夠的能力,可以修改源代碼(有利於學習,有利於推廣)。
  • 可以自由選擇所需的功能。
  • 軟件是編譯安裝(編譯:把abcd翻譯成0101的過程),所以更加適合自己的系統,更加穩定也效率更高(之前有一個大概的估算,如果使用源碼包安裝軟件,要比使用同版本同樣性能的二進制包,軟件的效能要高5個百分點)。
  • 卸載方便(直接把安裝目錄刪除就可以了,基本上沒有殘余文件)。

(3)源碼包的缺點

  • 安裝過程步驟較多,尤其安裝較大的軟件集合時(如LAMP環境搭建),容易出現拼寫錯誤。
  • 編譯過程時間較長,安裝比二進制安裝時間長。
  • 因為是編譯安裝,編譯安裝過程容易報錯,一旦報錯新手很難解決。

3、二進制包說明

類似於Windows系統的.exe文件。二進制包安裝較源碼包安裝更為方便,但是二進制包就不在是開源的了,因為二進制包中是已經編譯好的文件。

二進制包分類:

  • DPKG包:是由Debian Linux所開發出來的包管理機制。通過DPKG包,Debian Linux就可以進行軟件包管理。主要應用在Debian和Unbuntu中。(也經常叫deb包)
  • RPM包:是由Red Hat公司所開發的包管理系統。功能強大,安裝、升級、查詢和卸載都非常簡單和方便。目前很多Linux都在使用這種包管理方式,包括Fedora、CentoS、SuSE等。我們將要學習RPM包管理系統。

提示:

  • DPKG包和RPM包,這兩種包系統是不通用的。這也是兩個系統最大的區別。
  • 但是Red Hat中的安裝過程和Debian中軟件的安裝是一一對應的。如果以后用到Debian系統,查閱一下與之對應的命令即可。

4、RPM包的優缺點

(1)RPM包的優點:

  • 包管理系統操作簡單,只通過幾個命令就可以實現包的安裝、升級、查詢和卸載。(編輯過程基本不會報錯了,因為廠商已經提前編譯好了)
  • 安裝速度比源碼包安裝快的多。

(2)RPM包的缺點:

  • 經過編譯,不再可以看到源代碼。
  • 功能選擇不如源碼包靈活。
  • 依賴性。有時我們會發現需要安裝軟件包a時需要先安裝軟件bc,而安裝b軟件時需要安裝軟件de。這時需要先安裝de,再安裝bc,最后才能安裝a包。所以通過RPM包安裝軟件,如果軟件有依賴性的話,軟件則是有一定的安裝順序的。如果依賴性非常強的話,會非常的繁瑣。(Linux系統中絕大多數軟件包都會有依賴的軟件包)

(3)注意

注意:這里多強調一下上邊的依賴性。

依賴性分為:

  • 樹形依賴 a —> b —> c
    a包依賴b包,b包依賴c包。所以需要先安裝c包,在安裝b包,最后在安裝c包。
  • 環形依賴a —> b —> c —> a
    這種環形的依賴關系,按照上邊樹形依賴的解釋,是無法安裝的。但是這種依賴關系解決起來很簡單,就是把abc包同時安裝,就是用一條命令同時安裝三個包就能解決。
  • 模塊依賴(函數庫依賴)
    最煩麻煩就是這種模塊依賴關系,我們舉一個例子,嘗試安裝以下文件:
[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是一個文件的名字,並不是一個包名,你要把這個文件所在的包安裝上,這個文件就存在了。

發現報錯,需要安裝libodbc.so.2函數庫文件,這時會發現在光盤中根本找不到這個文件。那是因為這個函數庫沒有單獨成包,是包含在某一個軟件包中的。而如果要知道該文件在哪個軟件包中,需要查詢網站http://www.rpmfind.net/(很方便)。

如下圖:

image

點擊搜索之后,會顯示在不同的Linux版本中,安裝哪個包,如下圖:

image

這是個網站的原理,是通過查詢一個RPM包依賴管理的數據庫,來解決這個問題的。

4、RPM包的兩種安裝方法

  • 手動(手工命令安裝):就是通過rpm命令手動進行安裝,自己解決包之間的依賴性。
  • yum在線安裝:yum命令會自動連接到Red Hat的官方服務器上的包依賴數據庫,不管何種依賴關系,需要的包都會自動的下載到本地,然后在自動進行安裝。

注意:

  • 如果是正版的Red Hat系列的Linux系統,會收費,但是CentOS里的yum是免費的。
  • 還有要注意一點Linux系統中,二進制包、RPM包、默認安裝包都指的是二進制包。yum只是源碼包和二進制包的在線安裝方式。

5、總結

軟件既有源碼包版本,又有RPM包版本,如何選擇?

建議:

  • 源碼包:如果服務是給大量客戶端提供訪問的,建議使用源碼包,使用源碼包安裝效率更高(如搭建LAMP環境)。
  • RPM包:如果程序是給少量用戶訪問,或者本地使用的,建議RPM包,因為RPM管理方便。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM