Linux軟體安裝——軟體包 摘要:本文主要學習了Linux下軟體安裝的相關知識。 軟體包 簡介 Linux下的軟體包眾多,且幾乎都是經GPL授權、免費開源(無償公開源代碼)的。這意味著如果你具備修改軟體源代碼的能力,只要你願意,可以隨意修改。 GPL,全稱General Public Licens ...
Linux軟體安裝——軟體包
摘要:本文主要學習了Linux下軟體安裝的相關知識。
軟體包
簡介
Linux下的軟體包眾多,且幾乎都是經GPL授權、免費開源(無償公開源代碼)的。這意味著如果你具備修改軟體源代碼的能力,只要你願意,可以隨意修改。
GPL,全稱General Public License,中文名稱“通用性公開許可證”,簡單理解GPL就是一個保護軟體自由的一個協議,經GPL協議授權的軟體必須開源。
Linux下的軟體包可細分為兩種,分別是源碼包和二進位包。
Linux源碼包
實際上,源碼包就是一大堆源代碼程式,是由程式員按照特定的格式和語法編寫出來的。
我們都知道,電腦只能識別機器語言,也就是二進位語言,所以源碼包的安裝需要一名“翻譯官”將“abcd”翻譯成二進位語言,這名“翻譯官”通常被稱為編譯器。“編譯”指的是從源代碼到直接被電腦(或虛擬機)執行的目標代碼的翻譯過程,編譯器的功能就是把源代碼翻譯為二進位代碼,讓電腦識別並運行。
另外,由於源碼包的安裝需要把源代碼編譯為二進位代碼,因此安裝時間較長。
為瞭解決使用源碼包安裝方式的這些問題,Linux軟體包的安裝出現了使用二進位包的安裝方式。
Linux二進位包
二進位包,也就是源碼包經過成功編譯之後產生的包。由於二進位包在發佈之前就已經完成了編譯的工作,因此用戶安裝軟體的速度較快,且安裝過程報錯幾率大大減小。
二進位包是Linux下預設的軟體安裝包,因此二進位包又被稱為預設安裝軟體包。目前主要有以下兩大主流的二進位包管理系統:
1)RPM包管理系統:功能強大,安裝、升級、査詢和卸載非常簡單方便,因此很多Linux發行版都預設使用此機製作為軟體安裝的管理方式,例如:Fedora、CentOS、SuSE等。
2)DPKG包管理系統:由Debian Linux所開發的包管理機制,通過DPKG包,Debian Linux就可以進行軟體包管理,主要應用在Debian和Ubuntu中。
線上升級
不論DPKG還是RPM,這些機制或多或少都會有軟體依賴的問題,每個軟體都有對依賴的檢查,目前新的Linux開發商都有提供這樣的線上升級機制,通過這個機制,在安裝時只要有網路,就能夠取得開發商所提供的任何軟體。
在DPKG管理機制上就開發出APT的線上升級機制。
在RPM上則根據開發商的不同,有Red Hat系統的YUM(Yellow dog Updater, Modified),SuSE系統的YOU(Yast Online Update)等。
RPM包管理系統
RPM包說明
RPM全名是“RedHat Package Manager”,顧名思義,當初這個軟體管理的機制是由Red Hat這家公司發展出來的。RPM是以一種資料庫記錄的方式來將你所需要的軟體安裝到你的Linux系統的一套管理機制。
RPM最大的特點就是將你要安裝的軟體先進行編譯,然後打包成為RPM機制的文件,在安裝時,RPM會先依照軟體里的數據查詢相依賴的軟體是否滿足,如果滿足則進行安裝,如果不滿足則不安裝。安裝的時候會將該軟體的信息寫入RPM的資料庫中,以便未來的查詢、驗證與反安裝。
在使用RPM進行安裝時也會遇到一些問題,軟體安裝的環境必須與打包時的環境需求一致或相當,並且在安裝時需要滿足某些軟體的依賴,而且在卸載時需要特別小心,最底層的軟體不可先移除,否則可能造成整個系統的問題。
為瞭解決不同廠商提供的軟體不能在其他Linux版本上安裝運行的問題,在安裝軟體時可以使用SRPM這個東西。
SRPM包說明
SRPM是Source RPM的意思,也就是這個RPM文件裡面含有原始碼,這個SRPM所提供的軟體內容並沒有經過編譯。
通常SRPM的擴展名是以“***.src.rpm”這種格式來命名的。雖然SRPM的內容是原始碼,但是仍然含有該軟體所需要的相關軟體依賴、以及所有RPM文件所提供的數據。同時,與RPM不同的是,SRPM也提供了參數配置檔。所以,如果我們下載的是SRPM,那麼要安裝該軟體時,你就必須要:
1)先將該軟體以RPM管理的方式編譯,此時SRPM會被編譯成為RPM文件。
2)然後將編譯完成的RPM文件安裝到Linux系統中。
通常一個軟體在發佈的時候,都會同時發佈該軟體的RPM與SRPM。RPM文件必須要在相同的Linux環境下才能夠安裝,可以通過修改SRPM內的參數配置,然後重新編譯產生能適合Linux環境的RPM文件,如此一來,就可以將該軟體安裝到新系統中。
命名規範
通過文件名可以知道這個軟體的版本、適用的平臺、編譯釋出的次數。例如rp-pppoe-3.11-5.el7.x86_64.rpm這的檔案的意義為:
1)rp-pppoe:軟體名稱。
2)3.11:軟體的版本資訊。
3)5:釋出的次數。
4).el7.x86_64:適合的硬體平臺。
5).rpm:文件類型名。
預設安裝路徑
通常情況下,RPM包採用系統預設的安裝路徑,所有安裝文件會按照類別分散安裝到如下目錄:
1 /etc/:配置文件安裝目錄。 2 /usr/bin/:可執行的命令安裝目錄。 3 /usr/lib/:程式所使用的函數庫保存位置。 4 /usr/share/doc/:基本的軟體使用手冊保存位置。 5 /usr/share/man/:幫助文件保存位置。
RPM包的預設安裝路徑是可以通過命令查詢的。
除此之外,RPM包也支持手動指定安裝路徑,但此方式並不推薦。因為一旦手動指定安裝路徑,所有的安裝文件會集中安裝到指定位置,且系統中用來查詢安裝路徑的命令也無法使用(需要進行手工配置才能被系統識別),得不償失。
與RPM包不同,SRPM源碼包的安裝通常採用手動指定安裝路徑(習慣安裝到/usr/local/中)的方式。既然安裝路徑不同,同一apache程式的源碼包和RPM包就可以安裝到一臺Linux伺服器上(但同一時間只能開啟一個,因為它們需要占用同一個80埠)。
實際情況中,一臺伺服器幾乎不會同時包含兩個apache程式,管理員不好管理,還會占用過多的伺服器磁碟空間。
YUM包管理系統
說明
YUM的全稱是“Yellow dog Updater, Modified”,是一個專門為瞭解決包的依賴關係而存在的軟體包管理器,是改進型的RPM軟體管理器,它很好的解決了RPM所面臨的軟體包依賴問題。
YUM在伺服器端存有所有的RPM包,並將各個包之間的依賴關係記錄在文件中,當管理員使用YUM安裝RPM包時,YUM會先從伺服器端下載包的依賴性文件,通過分析此文件從伺服器端一次性下載所有相關的RPM包併進行安裝。
源
使用YUM安裝軟體包之前,需指定好YUM下載RPM包的位置,此位置稱為YUM源。換句話說,YUM源指的就是軟體安裝包的來源。
使用YUM安裝軟體時至少需要一個YUM源。YUM源既可以使用網路YUM源,也可以將本地光碟作為YUM源。
1)網路YUM源
一般情況下,只要你的主機網路正常,可以直接使用網路YUM源,不需要對配置文件做任何修改。
網路YUM源配置文件位於/etc/yum.repos.d/目錄下,只要擴展名為“*.repo”的文件都是YUM源的配置文件,通常情況下CentOS-Base.repo文件生效。
2)本地YUM源
在無法聯網的情況下,YUM可以考慮用本地光碟(或安裝映像文件)作為YUM源。
Linux系統安裝映像文件中就含有常用的RPM包,我們可以使用壓縮文件打開映像文件(iso文件),進入其Packages子目錄,該子目錄下含有幾乎所有常用的RPM包,因此使用系統安裝映像作為本地YUM源沒有任何問題。
在/etc/yum.repos.d/目錄下有一個CentOS-Media.repo文件,此文件就是以本地光碟作為YUM源的模板文件,只需進行簡單的修改即可。