天天看點

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

一、linux應用程式基礎

1、linux指令與應用程式的關系

    在linux系統中,一直以來指令和應用程式并沒有特别明确的差別,從長期使用習慣來看,可以通過下表的描述來對兩者進行差別。

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

2、linux應用程式的組成

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

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

3、軟體包的封裝類型

    對于各種應用程式的軟體包,在封裝時可以采用各種不同的類型,是以在linux系統中的安裝方法也各部相同。常見的軟體包封裝類型及說明如下表:

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

二、使用rpm包管理工具

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

1、rpm概述

    rpm軟體包管理機制最早由red hat公司提出,後來随着版本的更新逐漸融入了更多的優秀特性,成為衆多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校驗和。例如,執行“md5sum axel-l.0.tar.gz”操作後可計算出axel-1.0a.tar.gz軟體封包件的md5校驗和為“2d94c0b36b374834567f1fcec5f89119”,将其與軟體官方提供的校驗值進行比較,如果相同則說明該軟體包在網絡傳輸過程中沒有被非法改動。對于校驗和不一緻的軟體包,應盡量不要使用,以免帶來病毒、木馬等不安全因素。

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

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

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

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

     編譯的過程主要是根據makefile檔案中的配置資訊,将源代碼檔案編譯、連結成二進制的子產品檔案、執行程式等。配置完成後,在源碼目錄中執行“make”指令可以完成編譯工作,一般需要比配置步驟更長的時間,期間同樣會顯示大量的編譯過程資訊。

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