歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

RedHat Linux 9軟件包管理

Red Hat Linux 系統上的所有軟件都被分成可被安裝、升級、或刪除的 RPM 軟件包。這個部分描述了如何使用圖形化和命令行工具來管理 Red Hat Linux 系統上的 RPM 軟件包。

32. 使用 RPM 來管理軟件包

RPM 軟件包管理器(RPM)是開放打包系統,任何人都可以使用。它在 Red Hat Linux,以及其它 Linux 和 UNIX 系統上運行。Red Hat, Inc. 鼓勵其它銷售商在他們自己的產品上使用 RPM 技術。RPM 按照 GPL 條款被發行。

對於終端用戶來說,RPM 簡化了系統更新。安裝、刪除安裝、升級 RPM 軟件包可以使用簡短的命令就可完成。RPM 維護一個已安裝軟件包和它們的文件的數據庫,因此,你可以在系統上使用功能強大的查詢和校驗。如果你更喜歡圖形化界面,你可以使用 軟件包管理工具 來執行許多 RPM 命令。詳情請參閱 第33章 。

在升級中,RPM 處理配置文件時非常謹慎,因此你決不會丟失你定制的配置 — 這是你用普通的 .tar.gz 文件所無法達到的。

對於開發者來說,RPM允許你把軟件編碼和程序打包,然後提供給終端用戶。這個進程非常簡單,它能從你創建的單個文件或補丁中驅動。這種對你的“純淨”源碼、補丁和建構指令的清晰描述減輕了發行軟件新版本所帶來的維護負擔。

注記:因為 RPM 要對你的系統做適當改變,你必須是根用戶才能安裝、刪除、或升級某個 RPM 軟件包。

32.1. RPM 的設計目標

為了理解如何使用 RPM,我們應該先來了解 RPM 的設計目標:

可升級性

使用 RPM,你可以不必全盤重裝就可以在系統上升級個別組件。當你得到一個基於 RPM 的操作系統的新發行版本(如 Red Hat Linux),你不必重新安裝你的系統(基於其它打包系統的操作系統需要重裝)。RPM 允許智能化、自動化地就地升級你的系統。軟件包中的配置文件在升級中被保留,因此你不會丟失定制的設置。你不需要特殊的升級文件來升級某軟件包,因為在系統上安裝和升級軟件包使用同樣的 RPM 文件。

強大的查詢功能

RPM 被設計來提供強大的查詢功能。你可以在整個數據庫中搜索軟件包或某些特定文件。你還可以輕易地了解到哪個文件屬於哪個軟件包,軟件包來自哪裡。RPM 軟件包的文件包括在被壓縮的歸檔中,其中有定制的二進制檔頭,該檔頭內包含關於軟件包及其內容的信息,允許你快速簡捷地查詢個體軟件包。

系統校驗

另一項強大的功能是軟件包校驗。如果你擔心你可能刪除了某軟件包上的一個重要文件,只需校驗該軟件包即可。任何異常情況都會向你通知。到時,你可以在必要時重裝該軟件包。你修改過的配置文件在重裝中會被保留。

純淨源碼

一個重要的設計目標是允許使用與軟件的原創者所發行源碼一致的“純淨”軟件源碼。使用 RPM,你會有純淨源碼、使用過的補丁、以及完整的建構指令。這是一個重要的優越性。首先,如果程序的新版本被推出,你不必從頭開始編譯。你可以看一看補丁來判定你 可能 需要做什麼。使用這種技術,所有內編譯的默認值,以及為正確建構軟件而進行的任何改變都一目了然。

保持源碼純淨的目的似乎只對開發者來說是重要的,但是它也會給終端用戶帶來高質量的軟件。我們想在此感謝 BOGUS 的發行人員,感謝他們最先開創了純淨源碼這一概念。

32.2. 使用 RPM

RPM 有五種基本操作模式(不包括軟件包建構):安裝、刪除安裝、升級、查詢和校驗。本章節包括對每一模式的總覽。想了解完整的選項和細節,請使用 rpm --help 命令,或閱讀 第 32.5 節 中關於 RPM 的信息。

32.2.1. 尋找 RPM 軟件包

在使用 RPM 之前,你必須知道要到哪裡去尋找它們。在互聯網上搜索會返回許多 RPM 倉庫,但是如果你要找的是由 Red Hat 建構的 RPM 軟件包,你可以在下面幾個地方找到它們:




Red Hat Linux 光盤

Red Hat 勘誤網頁: http://www.redhat.com/apps/support/errata/

Red Hat FTP 鏡像網站: http://www.redhat.com/download/mirror.Html

Red Hat 網絡 — 關於 Red Hat 網絡的詳情,請參閱第34章。

32.2.2.安裝

典型的 RPM 軟件包名稱類似於 foo-1.0-1.i386.rpm 。該文件名包括軟件包名稱( foo )、版本( 1.0 )、發行版本( 1 )、以及體系( i386 )。安裝軟件包簡單之極,登錄為根用戶,然後在 shell 提示下鍵入下面的命令:

rpm -Uvh foo-1.0-1.i386.rpm

如果安裝成功,你會看到如下所示的輸出:

Preparing... ########################################### [100%] 1:foo ########################################### [100%]

如上面所示,RPM 顯示軟件包的名稱,然後在軟件包被安裝時在屏幕上打印井號來顯示安裝進度。

從 RPM 版本 4.1 開始,在安裝或升級軟件包時會檢查軟件包的簽名。如果簽名校驗失敗,你就會看到如下所示的錯誤消息:

error: V3 DSA signature: BAD, key ID 0352860f

如果它是新的、只針對文件頭的簽名,你會看到如下所示的錯誤消息:

error: Header V3 DSA signature: BAD, key ID 0352860f

如果你沒有安裝合適的鑰匙來校驗簽名,消息中就會包含 NOKEY ,如:

warning: V3 DSA signature: NOKEY, key ID 0352860f

關於校驗軟件包簽名的詳細信息,請參閱第 32.3 節。

注記:如果你要安裝內核軟件包,你應該使用 rpm -ivh 。詳情請參閱第30章。

雖然安裝軟件包旨在簡單易行,但是你有時也會看到錯誤。

32.2.2.1.軟件包已安裝

如果某軟件包的同一版本已經安裝,你就會看到:

Preparing... ########################################### [100%] package foo-1.0-1 is already installed

如果你在軟件包已安裝的情況下仍打算安裝同一版本的軟件包,你可以使用 --replacepkgs 選項,它告訴 RPM 來忽略這個錯誤:

rpm -ivh --replacepkgs foo-1.0-1.i386.rpm



如果從 RPM 安裝的文件被刪除了,或者你想安裝 RPM 中的最初配置文件,該選項就會很有用。

32.2.2.2.文件沖突

如果你試圖安裝的軟件包中包含已被另一個軟件包或同一軟件包的早期版本安裝了的文件,你會看到:

Preparing... ########################################### [100%] file /usr/bin/foo from install of foo-1.0-1 conflicts with file from package bar-2.0.20

要使 RPM 忽略這個錯誤,使用 --replacefiles 選項:

rpm -ivh --replacefiles foo-1.0-1.i386.rpm 32.2.2.3.未解決的依賴關系

RPM 軟件包可能“依賴”於其它軟件包,這意味著它們需要安裝其它軟件包才能正確運行。如果你試圖安裝具有未解決依賴關系的軟件包,你會看到:

Preparing... ##################################



要使 RPM 忽略這個錯誤,使用 --replacefiles 選項:

rpm -ivh --replacefiles foo-1.0-1.i386.rpm 32.2.2.3.未解決的依賴關系

RPM 軟件包可能“依賴”於其它軟件包,這意味著它們需要安裝其它軟件包才能正確運行。如果你試圖安裝具有未解決依賴關系的軟件包,你會看到:

Preparing... ##################################



Copyright © Linux教程網 All Rights Reserved