linux rpm命令詳解

 RPM 大全    RPM 有五種基本的操做方式(不包括建立 軟件 包): 安裝, 卸載, 升級, 查詢,和驗證。     下面咱們就來逐一的講解吧。  1、 安裝RPM包    RPM 軟件 包一般具備相似foo-1.0-1.i386.rpm 的文件名。    其中包括 軟件 包的名稱(foo),版本號(1.0),發行號(1), 和 硬件平臺(i386)。    安裝一個 軟件 包只需簡單的鍵入如下命令: $ rpm -ivh foo-1.0-1.i386.rpm foo #################################### RPM安裝完畢後會打印出 軟件 包的名字(並不必定與文件名相同), 然後打印一連串的#號以表示安裝進度。     雖然 軟件 包的安裝被設計的儘可能簡單易行, 但仍是可能會發生以下的錯誤:    一、 軟件 包已被安裝 若是您的 軟件 包已被安裝, 將會出現如下信息: $ 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將忽略該錯誤信息強行安裝。    二、文件衝突 若是您要安裝的 軟件 包中有一個文件已在安裝其它 軟件 包時安裝,會出現如下錯誤信息: # 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 命令行選項。    三、未解決依賴關係 RPM 軟件 包可能依賴於其它 軟件 包,也就是說要求在安裝了特定的 軟件 包以後才能安裝該 軟件 包。若是在您安裝某個 軟件 包時存在這種未解決的依賴關係。會產生如下信息: $ rpm -ivh bar-1.0-1.i386.rpm failed dependencies: foo is needed by bar-1.0-1 您必須安裝完所依賴的 軟件 包,才能解決這個問題。若是您想強制安裝(這是個壞主意, 由於安裝後的 軟件 包未必能正常運行), 請使用--nodeps 命令行選項。     2、卸載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 命令行選項。     3、升級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 命令選項就能夠了。     4、 查詢已安裝的軟件包     使用命令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 格式的輸出。     5、 驗證軟件包    驗證軟件包是經過比較已安裝的文件和 軟件 包中的原始文件信息來進行的。驗證主要是比較文件的尺寸,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 (包括權限和文件類型) 若是有錯誤信息輸出, 您應當認真加以考慮,是經過刪除仍是從新安裝來解決出現的問題。      6、教你一招    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包管理功能。
相關文章
相關標籤/搜索