天天看點

Linux ---rpm軟體包

Linux ---rpm軟體包

rpm 大全

rpm 有五種基本的操作方式(不包括建立 軟體 包): 安裝, 解除安裝, 更新, 查詢,和驗證。

下面我們就來逐一的講解吧。

(首先本人用上課時截的圖檔和筆記作為rpm的常識):

=======================================================

Linux ---rpm軟體包
Linux ---rpm軟體包
Linux ---rpm軟體包

注意:

=============================================

通過安裝軟體可得到相應的指令:

[root@teacher lianxi]# rpm -qf /usr/bin/tree  檢視tree指令是通過那個軟體安裝過來的

tree-1.5.3-2.el6.i686

================================================================================================================================================================================================================================================================================================================================

一、 安裝rpm包

rpm 軟體 包通常具有類似foo-1.0-1.i386.rpm 的檔案名。

 其中包括 軟體 包的名稱(foo),版本号(1.0),發行号(1), 和 硬體平台(i386)。

 安裝一個 軟體 包隻需簡單的鍵入以下指令: $ rpm -ivh foo-1.0-1.i386.rpm foo #################################### rpm安裝完畢後會列印出 軟體 包的名字(并不一定與檔案名相同), 而後列印一連串的#号以表示安裝進度。

  雖然 軟體 包的安裝被設計的盡量簡單易行, 但還是可能會發生如下的錯誤:

 1、 軟體 包已被安裝 如果您的 軟體 包已被安裝, 将會出現以下資訊: $ rpm -ivh foo-1.0-1.i386.rpm foo package foo-1.0-1 is already installed error: foo-1.0-1.i386.rpm cannot be installed 如果您仍舊要安裝該 軟體 包,可以在指令行上使用--replacepkgs 選項,rpm将忽略該錯誤資訊強行安裝。

 2、檔案沖突 如果您要安裝的 軟體 包中有一個檔案已在安裝其它 軟體 包時安裝,會出現以下錯誤資訊: # rpm -ivh foo-1.0-1.i386.rpm foo /usr/bin/foo conflicts with file from bar-1.0-1 error: foo-1.0-1.i386.rpm cannot be installed 要想讓rpm 忽略該錯誤資訊, 請使用--replacefiles 指令行選項。

 3、未解決依賴關系 rpm 軟體 包可能依賴于其它 軟體 包,也就是說要求在安裝了特定的 軟體 包之後才能安裝該 軟體 包。如果在您安裝某個 軟體 包時存在這種未解決的依賴關系。會産生以下資訊: $ rpm -ivh bar-1.0-1.i386.rpm failed dependencies: foo is needed by bar-1.0-1 您必須安裝完所依賴的 軟體 包,才能解決這個問題。如果您想強制安裝(這是個壞主意, 因為安裝後的 軟體 包未必能正常運作), 請使用--nodeps 指令行選項。  

二、解除安裝rpm包

解除安裝 軟體 包就象安裝 軟體 包時一樣簡單: $ rpm -e foo 注意這裡使用 軟體 包的名字name ``foo, 而不是 軟體 封包件的名字file ``foo-1.0-1.i386.rpm。如果其它 軟體 包依賴于您要解除安裝的 軟體 包,解除安裝時則會産生錯誤資訊。

 如: $ rpm -e foo removing these packages would break dependencies:foo is needed by bar-1.0-1 若讓rpm忽略這個錯誤繼續解除安裝(這可不是一個好主意,因為依賴于該 軟體 包的程式可能無法運作),請使用--nodeps 指令行選項。

三、更新rpm包

更新 軟體 包和安裝 軟體 包十分類似:. $ rpm -uvh foo-2.0-1.i386.rpm foo #################################### rpm将自動解除安裝已安裝的老闆本的foo 軟體 包,您不會看到有關資訊。事實上您可能總是使用 -u 來安裝 軟體 包,因為即便以往未安裝過該 軟體 包,也能正常運作。

 因為rpm 執行智能化的 軟體 包更新, 自動處理配置檔案,您将會看到如下資訊: saving /etc/foo.conf as /etc/foo.conf.rpmsave 這表示您對配置檔案的修改不一定能向上相容。

 是以,rpm 會先備份老檔案再安裝新檔案。您應當盡快解決這兩個配置檔案的不同之處,以使系統能持續正常運作。

 因為更新實際包括 軟體 包的解除安裝與安裝兩個過程,是以您可能會碰到由這兩個操作引起的錯誤。

 另一個你可能碰到的問題是:當您使用舊版本的 軟體 包來更新新版本的 軟體 時,rpm會産生以下錯誤資訊: $ rpm -uvh foo-1.0-1.i386.rpm foo package foo-2.0-1 (which is newer) is already installed error: foo-1.0-1.i386.rpm cannot be installed 如果你确有需要将該 軟體 包”降級,加入 --oldpackage 指令選項就可以了。

四、 查詢已安裝的軟體包

使用指令rpm -q來查詢已安裝 軟體 包的 資料庫 。

  簡單的使用指令 rpm -q foo 會列印出foo 軟體 包 的包名 , 版本号,和發行号: $ rpm -q foo foo-2.0-1 除了指定 軟體 包名以外,您還可以使用以下選項來指明要查詢哪些 軟體 包的信 息。

這些選項被稱之為“ 軟體 包指定選項“。

· -a 查詢所有已安裝的 軟體 包

· -f 将查詢包含有檔案. 的 軟體 包

· -p 查詢 軟體 封包件名為的 軟體 包 還可以指定查詢 軟體 包時所顯示的資訊。它們被稱作資訊選擇選項:

· -i 顯示 軟體 包資訊,如描述, 發行号, 尺寸, 建構日期, 安裝日期, 平台, 以及其它一些各類資訊。

· -l 顯示 軟體 包中的檔案清單。

· -s 顯示 軟體 包中所有檔案的狀态。

· -d 顯示被标注為文檔的檔案清單(man 手冊, info 手冊, readmes, etc)。

· -c 顯示被标注為配置檔案的檔案清單。這些是您要在安裝完畢以後加以定制的檔案(sendmail.cf, passwd, inittab, etc)。

對于那些要顯示檔案清單的檔案, 您可以增加-v 指令行選項以獲得如同 ls -l 格式的輸出。

五、 驗證軟體包

 驗證軟體包是通過比較已安裝的檔案和 軟體 包中的原始檔案資訊來進行的。驗證主要是比較檔案的尺寸,md5 校驗碼, 檔案權限, 類型, 屬主和使用者組等。

 rpm-v指令用來驗證一個 軟體 包。您可以使用任何包選擇選項來查詢您要驗證的軟體包。

 指令rpm -v foo 将用來驗證foo 軟體包。

又如:

· 驗證包含特定檔案的 軟體 包: rpm -vf /bin/vi

· 驗證所有已安裝的 軟體 包: rpm -va

· 根據一個rpm包來驗證: rpm -vp foo-1.0-1.i386.rpm

  如果您擔心你的rpm 資料庫 已被破壞,就可以使用這種方式。 如果一切均校驗正常将不會産生任何輸出。如果有不一緻的地方,就會顯示出來。 輸出格式是8位長字元 串, ``c 用以指配置檔案, 接着是檔案名. 8位字元的每一個 用以表示檔案與rpm 資料庫 中一種屬性的比較 結果 。``. (點) 表示測試通過。.

 下面的字元表示對rpm 軟體 包進行的某種測試失敗:

 顯示字元 錯誤源 5 md5

 校驗碼

s 檔案尺寸

l 符号連接配接

t 檔案修改日期

d 裝置

u 使用者

g 使用者組

m 模式e (包括權限和檔案類型) 如果有錯誤資訊輸出, 您應當認真加以考慮,是通過删除還是重新安裝來解決出現的問題。  

六、教你一招

rpm不僅是安裝/解除安裝程式的工具,它還是系統維護和診斷的一把好手。

 看過下面幾個例子你就會領教它的 厲害了。

· 如果您誤删了一些檔案, 但您不能肯定到底都删除了那些檔案,怎麼辦?

您可以鍵入: rpm -va rpm會在螢幕上顯示出檔案删除的情況。若你發現一些檔案丢失了或已被損壞, 您就可以重新安裝或先解除安裝 再安裝該 軟體 包。

· 如果您碰到了一個自己不認識的檔案,要想查處它屬于哪個 軟體 包,您可以輸入以下指令 rpm -qf /usr/x11r6/bin/xjewel 輸出的結果會是: xjewel-1.6-1

· 如果發生綜合以上兩個例子的情況,如檔案/usr/bin/paste出了問題。您想知道哪個 軟體 包中包含該文 件,您這時可以簡單的鍵入: rpm -vf /usr/bin/paste

· 如果您想了解正在使用的程式的詳細資訊, 您可以鍵入如下指令來獲得 軟體 包中關于該程式的文檔資訊: rpm -qdf /usr/bin/ispell 輸出結果為: /usr/man/man4/ispell.4 /usr/man/man4/english.4 /usr/man/man1/unsq.1 /usr/man/man1/tryaffix.1 /usr/man/man1/sq.1 /usr/man/man1/munchlist.1 /usr/man/man1/ispell.1 /usr/man/man1/findaffix.1 /usr/man/man1/buildhash.1 /usr/info/ispell.info.gz /usr/doc/ispell-3.1.18-1/readme

· 您發現了一個新的koules rpm,但您不知道它是做什麼的,您可以鍵入如下指令: rpm -qip koules-1.2-2.i386.rpm

· 現在您想了解koules的 rpm包在系統裡安裝了哪些檔案, 您可以鍵入: rpm -qlp koules-1.2-2.i386.rpm輸出結果為: /usr/man/man6/koules.6 /usr/lib/games/kouleslib/start.raw /usr/lib/games/kouleslib/end.raw /usr/lib/games/kouleslib/destroy2.raw /usr/lib/games/kouleslib/destroy1.raw /usr/lib/games/kouleslib/creator2.raw /usr/lib/games/kouleslib/creator1.raw /usr/lib/games/kouleslib/colize.raw /usr/lib/games/kouleslib /usr/games/koules 以上隻是幾個常見例子。随着您進一步的使用rpm,您會發現它的各種功能選項組合可以實作更為強大的rpm包管理功能。      

------------------------指導老師(湖南雙星科技發展有限公司副總經理)馮德勇

-------------------------網址:http://www.sxkeji.com.cn

                                ------------電話:15874996921

              ------------qq :695811769

                                                               -------參考資料:http://linux.chinaitlab.com/command/397799.html

Linux ---rpm軟體包