1. 程式人生 > 實用技巧 >如何安裝及管理Linux中的應用程式

如何安裝及管理Linux中的應用程式

一、Linux應用程式基礎

1、Linux命令與應用程式的關係

在Linux系統中,一直以來命令和應用程式並沒有特別明確的區別,從長期使用習慣來看,可以通過下表的描述來對兩者進行區別。

164841273.jpg

2、Linux應用程式的組成

安裝完一個軟體包後,可能會向系統中複製大量的資料檔案,並進行相關設定。在Linux系統中,典型應用程式的目錄結構如下表:

165210505.jpg

3、軟體包的封裝型別

對於各種應用程式的軟體包,在封裝時可以採用各種不同的型別,因此在Linux系統中的安裝方法也各部相同。常見的軟體包封裝型別及說明如下表:

165510981.jpg

二、使用RPM包管理工具

RPM包是Linux的各發行版中應用最廣泛的軟體包格式之一。RPM包以其強大的功能和廣泛的相容性而得到多數Linux發行版本的支援和廣大Linux使用者的擁護。

1、RPM概述

RPM軟體包管理機制最早由RedHat公司提出,後來隨著版本的升級逐漸融入了更多的優秀特性,成為眾多Linux發行版中公認的軟體包管理標準。在其官方站點http://www.rpm.org中,可以瞭解到關於RPM包管理機制的詳細資料。

PPM包管理器通過建立統一的檔案資料庫,對在Linux系統中安裝、解除安裝、升級的各種rpm軟體包進行詳細的記錄,並能夠自動分析軟體包之間的依賴關係,保持各種應用程式在一個協調、有序的整體環境中執行。

使用rpm機制封裝的軟體包檔案擁有約定俗成的命名格式,一般使用“軟體名-軟體版本-釋出次數.硬體平臺型別.rpm”的檔名形式,如“bash-3.1-16.1.i386.rpm”。其中硬體平臺通常為“i386”、“i586”、“i686”或“noarch”(不區分硬體架構)等。

2、主要功能

a、查詢rpm軟體、包檔案的相關資訊

b、安裝、升級、解除安裝rpm軟體包

c、維護rpm資料庫資訊

3、查詢RPM軟體包資訊

使用rpm命令的查詢功能可以檢查某個軟體包是否已經安裝、瞭解軟體包的用途、軟體包複製到系統中的檔案等各種相關資訊,以便更好地管理Linux系統中的應用程式。

rpm命令的查詢功能主要通過“-q”選項實現,主要針對當前系統中已經安裝的軟體包;通過“-qp”選項可以針對尚未安裝的rpm包檔案進行查詢。根據所需查詢的具體專案不同,還可以為這兩個選項指定相關的子選項。

【查詢已安裝的rpm軟體包資訊】:

-qa:顯示當前系統中以rpm方式安裝的所有軟體列表。

-qi:檢視指定軟體包的名稱、版本、許可協議、用途描述等詳細資訊。

-ql:顯示指定的軟體包在當前系統中安裝的所有目錄、檔案列表。

-qf:檢視指定的檔案或目錄是由哪個軟體包所安裝的。

-qc:顯示指定軟體包在當前系統中安裝的配置檔案列表。

-qd:顯示指定軟體包在當前系統中安裝的文件檔案列表。

【查詢RPM包檔案中的相關資訊】

-qpi:檢視指定軟體包的名稱、版本、許可協議、用途描述等詳細資訊。

-qpl:檢視該軟體包準備要安裝的所有目標目錄、檔案列表。

-qpc:檢視該軟體包準備要安裝的配置檔案列表。

-qpd:檢視該軟體包準備要安裝的文件檔案列表。

4、安裝、升級、解除安裝RPM軟體

在日常系統管理工作中,安裝、升級及解除安裝軟體包是管理應用程式最基本的工作內容。使用rpm命令實現這些操作時,基本的命令選項如下所述:

-i:在當前系統中安裝一個新的RPM軟體包。

-e:解除安裝指定名稱的軟體包。

-U:檢查並升級系統中的某個軟體包,若該軟體包原來並未安裝,則等同於“-i”選項。

-F:檢查並更新系統中的某個軟體包,若該軟體包原來並未安裝,則放棄安裝。

還有幾個相關的命令選項,可以用於輔助安裝、解除安裝軟體包的過程。

-force:強制安裝某個軟體包。

-nodeps:在安裝或升級、解除安裝一個軟體包時,不檢查與其他軟體包的依賴關係。

-h:在安裝或升級軟體包的過程中,以“#”號顯示安裝進度。

-v:顯示軟體安裝過程中的詳細資訊。

使用rpm命令安裝軟體包時,需要指定完整的包檔名作為引數(可以有多個);而解除安裝軟體包時,只需要指定軟體名即可。需要同時安裝多個rpm軟體包時,可以採用萬用字元“*”,這種方式在安裝存在相互依賴關係的多個軟體包時特別有用,系統會自動檢查依賴性並決定安裝順序,而無需管理員去判斷應該先裝哪一個包。

5、維護RPM資料庫

RPM資料庫用於記錄在Linux系統中安裝、解除安裝、升級應用程式的相關資訊,由RPM包管理系統自動完成維護,一般不需要使用者干預。當RPM資料庫發生損壞,Linux系統無法自動完成修復時,可能將導致無法正常安裝、解除安裝RPM軟體包,這時可以使用rpm命令的“--rebuilddb”或“--initdb”功能重建RPM資料庫。

rpm--rebuilddb

三、從原始碼編譯安裝程式

在Linux平臺中搭建各種應用系統時經常會需要對軟體包進行編譯安裝,其實最早的Linux作業系統整體上都是編譯安裝而成的。

1、原始碼編譯概述

Linux作業系統之所以能夠在十餘年的時間裡發展壯大以致風靡全球,其開放原始碼的特性是很重要的原因之一,即Linux作業系統中包括核心在內的所有軟體都可以獲得原始碼,並且可以經過定製修改後編譯安裝。

現在的Linux發行版本通常使用包管理機制對軟體進行打包安裝,這樣省去了軟體的編譯安裝過程,大大簡化了Linux系統的安裝和使用難度。但是在有些情況下,仍然需要使用原始碼編譯的方式為系統安裝新的應用程式,例如以下幾種情況。

a、安裝較新版本的應用程式時。

b、當前安裝的程式無法滿足應用需求時。

c、為應用程式新增新的功能時。

編譯原始碼需要有相應的開發環境,對於自由軟體來說,gcc編譯器是最佳選擇。gcc是有GNU專案所貢獻的功能強大的C/C++語言編譯器,在全世界的自由軟體開發者中廣受歡迎。gcc相關編譯工具的依賴性較多,因此建議在安裝Linux作業系統時一併安裝。在RHEL5系統中,預設使用的gcc工具版本為4.1.1,主要由gcc-4.1.1-52.e15和gcc-c++-4.1.1-52.e15軟體包提供。

2、從原始碼編譯安裝程式的基本過程

獲得所需安裝的軟體原始碼以後,安裝的基本過程包括解包、配置、編譯及安裝這幾個通用步驟,大多數開源軟體的安裝都遵循這些過程。當然,這4個步驟並不是一成不變的,具體安裝時應參考軟體包中提供的相關文件(如install、readme等)。

對於從網際網路下載的軟體包,建議使用md5sum命令工具檢查MD5校驗和。例如,執行“md5sumaxel-l.0.tar.gz”操作後可計算出axel-1.0a.tar.gz軟體包檔案的MD5校驗和為“2d94c0b36b374834567f1fcec5f89119”,將其與軟體官方提供的校驗值進行比較,如果相同則說明該軟體包在網路傳輸過程中沒有被非法改動。對於校驗和不一致的軟體包,應儘量不要使用,以免帶來病毒、***等不安全因素。

原始碼編譯安裝的基本過程如下表:

185234913.jpg

配置過程一般需要一定的時間,期間會在螢幕中顯示大量的輸出資訊,這些資訊可以幫助管理員瞭解程式配置的過程。配置結果將儲存到原始碼目錄中的Makefile檔案中。如果配置過程出現錯誤,通常是缺少相關的依賴軟體包所致,一般只要根據提示安裝對應的軟體即可。

典型的配置選項:--prefix=軟體安裝目錄

編譯的過程主要是根據Makefile檔案中的配置資訊,將原始碼檔案編譯、連結成二進位制的模組檔案、執行程式等。配置完成後,在原始碼目錄中執行“make”命令可以完成編譯工作,一般需要比配置步驟更長的時間,期間同樣會顯示大量的編譯過程資訊。

在上述過程中,有時候為了簡單起見,也可以將編譯、安裝的步驟寫成一行命令執行,中間使用“&&”符號分隔即可。

轉載於:https://blog.51cto.com/343308530/1247664