RPM包的安裝
RPM軟件包的一個例子:
foo-1.0-1.i386.rpm
其中包括軟件包的名稱(foo),版本號(1.0),發行號(1),和硬件平臺(i386)。
(1)安裝
# rpm -ivh foo-1.0-1.i386.rpm
foo
#######################
A. 軟件包已被安裝
# 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 選項,這將忽略該錯誤信息。
B. 文件衝突
若是要安裝的軟件包中有一個文件已在安裝其它軟件包時安裝,會出現如下錯誤信息:
# 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 命令行選項
C.未解決依賴關係
RPM軟件包可能依賴於其它軟件包, 在安裝了特定的軟件包以後才能安裝該軟件包。
# rpm -ivh bar-1.0-1.i386.rpm
failed dependencies:
foo is needed by bar-1.0-1
你必須安裝完所依賴的軟件包,才能解決這個問題。若是想強制安裝 (可是,這樣安裝後的軟件包未必能正常運行),請使用-nodeps 命令行選項。
(2) 卸載
# rpm -e foo
注意:這裏使用軟件包的名字foo,而不是軟件包文件的名字「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 命令行選項。
(3)升級
# rpm -Uvh foo-2.0-1.i386.rpm
foo
###############################
當使用舊版本的軟件包來升級新版本的軟件時,會產生如下錯誤信息:
# 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
要使RPM 堅持這樣「升級」,可以使用--oldpackage 命令行參數。
(4)查詢
# rpm -q foo
foo-2.0-1
軟件包指定選項:
-a 查詢全部已安裝的軟件包.
-f <file>; 將查詢包含有文件<file>;的軟件包
-p <packagefile>;
查詢軟件包文件名爲<packagefile>;的軟件包
信息選擇選項:
-i 顯示軟件包信息,如描述, 發行號, 尺寸, 構建日期, 安裝日期, 平臺, 以及其它各種信息。
-l 顯示軟件包中的文件列表。
-s 顯示軟件包中全部文件的狀態。
-d 顯示被標註爲文檔的文件列表(man 手冊, info 手冊, README's, etc).
-c 顯示被標註爲配置文件的文件列表。這些是要在安裝完畢之後加以定製的文件(sendmail.cf, passwd, inittab, etc)。
對於那些要顯示文件列表的文件,能夠增長-v 命令行選項以得到如同 ls -l 格式的輸出。
(5)驗證
驗證軟件包是經過比較軟件包中安裝的文件和軟件包中的原始文件信息來進行的。除了其它一些東西,驗證主要是比較文件的尺寸, MD5 校驗碼, 文件權限, 類型, 屬主和用戶組等。
rpm -V命令用來驗證一個軟件包,如
rpm -V foo
驗證包含特定文件的軟件包:
rpm -Vf /bin/vi
驗證全部已安裝的軟件包:
rpm -Va
根據一個RPM來驗證某個軟件包:
rpm -Vp foo-1.0-1.i386.rpm
若是你擔憂RPM數據庫已被破壞,就可使用這種方式。若是一切校驗均正常將不會產生任何輸出。若是有不一致的地方,就會顯示出來。
輸出格式是8位長字符串,c 用以指配置文件,接着是文件名. 8位字符的每個用以表示文件與RPM數據庫中一種屬性的比較結果。「.」 (點)表示測試經過。
如下字符表示某種測試的失敗:
5 MD5 校驗碼
S 文件尺寸
L 符號鏈接
T 文件修改日期
D 設備
U 用戶
G 用戶組
M 模式e (包括權限和文件類型)
若是有信息輸出,應當認真加以考慮,是刪除,從新安裝,仍是修正出現的問題。
(6)RPM應用的幾個例子
A. 如你誤刪了一些文件, 可是不能確定到底刪除了哪些文件。若是你想驗證一下整個系統看看都丟失了哪些文件的話,能夠鍵入:
rpm –Va
B.如果一些文件丟失了或已被損壞, 就能夠從新安裝或先卸載再安裝該軟件包。若是碰到了一個本身不認識的文件,要想查處它屬於哪一個軟件包,能夠輸入如下命令:
rpm -qf /usr/X11R6/bin/xjewel
而輸出的結果會是:
xjewel-1.6-1
C. 若是發生綜合以上兩個例子的狀況,如文/usr/bin/paste出了問題。你想驗證一下擁有該文件的軟件包,可又不知道軟件包的名字,這時能夠簡單的鍵入:
rpm -Vf /usr/bin/paste
這樣相應的軟件包就會被驗證。
D. 若是你想了解一個正在使用的程序的詳細信息,能夠鍵入以下命令來得到擁有該程序的軟件包中的文檔信息:
rpm -qdf /usr/bin/ispell
輸出結果爲:
/usr/man/man4/ispell.4
/usr/man/man4/english.4
…………………………………………………………
E. 若是你發現了一個新的koules RPM,可是不知道它是什麼東西,能夠鍵入以下命令:
rpm -qip koules-1.2-2.i386.rpm
F. 如今你想了解koules RPM 所安裝的文件。能夠鍵入:
rpm -qlp koules-1.2-2.i386.rpm
圖形管理工具:kpackagenode