<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-49  評論-67  文章-27  trackbacks-0

    RPM 有五種基本的操作方式(不包括創(chuàng)建軟件包):安裝,卸載,升級,查詢和驗證。 下面我們就來逐一的講解吧。

    1 安裝RPM

    RPM 軟件包通常具有類似foo-1.0-1.i386.rpm的文件名。其中包括軟件包的名稱(foo)、版本號(1.0)、發(fā)行號(1)和硬件平臺(i386)。安裝一個軟件包只需簡單的鍵入以下命令:

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

    foo ####################################

    RPM安裝完畢后會打印出軟件包的名字(并不一定與文件名相同),而后打印一連串的#號以表示安裝進度。雖然軟件包的安裝被設計的盡量簡單易行,但還是可能會發(fā)生如下的錯誤:

    1 軟件包已被安裝

    如果您的軟件包已被安裝 將會出現(xiàn)以下信息:

    $ 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、文件沖突

    如果您要安裝的軟件包中有一個文件已在安裝其它軟件包時安裝,會出現(xiàn)以下錯誤信息:

    # 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軟件包可能依賴于其它軟件包,也就是說要求在安裝了特定的軟件包之后才能安裝該軟件包。如果在您安裝某個軟件包時存在這種未解決的依賴關系。會產(chǎn)生以下信息:

    $ rpm -ivh bar-1.0-1.i386.rpm

    failed dependencies: foo is needed by bar-1.0-1

    您必須安裝完所依賴的軟件包,才能解決這個問題。如果您想強制安裝(這是個壞主意,因為安裝后的軟件包未必能正常運行),請使用--nodeps 命令行選項。

    2 卸載RPM

    卸載軟件包就像安裝軟件包時一樣簡單:

    $ rpm -e foo

    注意這里使用軟件包的名字foo,而不是軟件包文件的名字foo-1.0-1.i386.rpm。如果其它軟件包依賴于您要卸載的軟件包,卸載時則會產(chǎn)生錯誤信息。如:

    $ rpm -e foo

    removing these packages would break dependencies:foo is needed by bar-1.0-1

    若讓RPM忽略這個錯誤繼續(xù)卸載(這可不是一個好主意,因為依賴于該軟件包的程序可能無法運行),請使用--nodeps 命令行選項。

    3 RPM

    升級軟件包和安裝軟件包十分類似:

    $ rpm -Uvh foo-2.0-1.i386.rpm

    foo ####################################

    RPM將自動卸載已安裝的老板本的foo 軟件包,您不會看到有關信息。事實上您可能總是使用 -U 來安裝軟件包,因為即便以往未安裝過該軟件包,也能正常運行。因為RPM 執(zhí)行智能化的軟件包升級,自動處理配置文件,您將會看到如下信息:

    saving /etc/foo.conf as /etc/foo.conf.rpmsave

    這表示您對配置文件的修改不一定能向上兼容。 因此,RPM 會先備份老文件再安裝新文件。您應當盡快解決這兩個配置文件的不同之處,以使系統(tǒng)能持續(xù)正常運行。

    因為升級實際包括軟件包的卸載與安裝兩個過程,所以您可能會碰到由這兩個操作引起的錯誤。另一個你可能碰到的問題是:當您使用舊版本的軟件包來升級新版本的軟件時,RPM會產(chǎn)生以下錯誤信息:

    $ 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來查詢已安裝軟件包的數(shù)據(jù)庫。簡單的使用命令 rpm -q foo 會打印出foo軟件包 的包名、版本號和發(fā)行號:

    $ rpm -q foo

    foo-2.0-1

    除了指定軟件包名以外,您還可以使用以下選項來指明要查詢哪些軟件包的信息。這些選項被稱之為“軟件包指定選項”。

    l           -a 查詢所有已安裝的軟件包

    l           -f 將查詢包含有文件XXX的軟件包

    l           -p 查詢軟件包文件名為XXX的軟件包

    還可以指定查詢軟件包時所顯示的信息。它們被稱作信息選擇選項:

    l           -i 顯示軟件包信息,如描述, 發(fā)行號, 尺寸, 構建日期, 安裝日期, 平臺, 以及其它一些各類信息。

    l           -l 顯示軟件包中的文件列表。

    l           -s 顯示軟件包中所有文件的狀態(tài)。

    l           -d 顯示被標注為文檔的文件列表(man 手冊, info 手冊, READMEs etc)。

    l           -c 顯示被標注為配置文件的文件列表。這些是您要在安裝完畢以后加以定制的文件(sendmail.cfpasswd inittab etc)。

    對于那些要顯示文件列表的文件,您可以增加-v命令行選項以獲得如同ls -l 格式的輸出。

    5 驗證軟件包

    驗證軟件包是通過比較已安裝的文件和軟件包中的原始文件信息來進行的。驗證主要是比較文件的尺寸、MD5 校驗碼、文件權限、類型、屬主和用戶組等。

    rpm -V命令用來驗證一個軟件包。您可以使用任何包選擇選項來查詢您要驗證的軟件包。 命令rpm -V foo將用來驗證foo軟件包。又如:

    l           驗證包含特定文件的軟件包:

    rpm -Vf /bin/vi

    l           驗證所有已安裝的軟件包:

    rpm -Va

    l           根據(jù)一個RPM包來驗證:

    rpm -Vp foo-1.0-1.i386.rpm

    如果您擔心你的RPM數(shù)據(jù)庫已被破壞,就可以使用這種方式。

    如果一切均校驗正常,將不會產(chǎn)生任何輸出。如果有不一致的地方,就會顯示出來。 輸出格式是8位長字符串,c 用以指配置文件,接著是文件名。8位字符的每一個用以表示文件與RPM數(shù)據(jù)庫中一種屬性的比較結果 。“.(點)”表示測試通過。

    下面的字符表示對RPM軟件包進行的某種測試失敗:

    顯示字符錯誤源

    l           5 MD5 校驗碼

    l           S 文件尺寸

    l           L 符號連接

    l           T 文件修改日期

    l           D 設備

    l           U 用戶

    l           G 用戶組

    l           M 模式e (包括權限和文件類型)

    如果有錯誤信息輸出,您應當認真加以考慮,是通過刪除還是重新安裝來解決出現(xiàn)的問題。

    6 教你一招

    RPM不僅是安裝/卸載程序的工具,它還是系統(tǒng)維護和診斷的一把好手。看過下面幾個例子你就會領教它的厲害了。

    l           如果您誤刪了一些文件,但您不能肯定到底都刪除了那些文件,怎么辦?您可以鍵入:

    rpm -Va

    rpm會在屏幕上顯示出文件刪除的情況。若你發(fā)現(xiàn)一些文件丟失了或已被損壞, 您就可以重新安裝或先卸載再安裝該軟件包。

    l           如果您碰到了一個自己不認識的文件,要想查處它屬于哪個軟件包,您可以輸入以下命令

    rpm -qf /usr/X11R6/bin/xjewel

    輸出的結果會是:

    xjewel-1.6-1

    l           如果發(fā)生綜合以上兩個例子的情況,如文件/usr/bin/paste出了問題。您想知道哪個軟件包中包含該文件,您這時可以簡單的鍵入:

    rpm -Vf /usr/bin/paste

    l           如果您想了解正在使用的程序的詳細信息, 您可以鍵入如下命令來獲得軟件包中關于該程序的文檔信息:

    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

    l           您發(fā)現(xiàn)了一個新的koules RPM但您不知道它是做什么的您可以鍵入如下命令

    rpm -qip koules-1.2-2.i386.rpm

    l           現(xiàn)在您想了解koulesRPM包在系統(tǒng)里安裝了哪些文件您可以鍵入

    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,您會發(fā)現(xiàn)它的各種功能選項組合可以實現(xiàn)更為強大的RPM包管理功能。

    posted on 2005-10-01 09:42 思考 閱讀(270) 評論(0)  編輯  收藏 所屬分類: Linux技術
    主站蜘蛛池模板: 亚洲午夜电影在线观看高清| 亚洲AV无码一区二区三区DV | 野花高清在线电影观看免费视频 | 一级女人18毛片免费| 国产在线国偷精品产拍免费| 免费看无码自慰一区二区| 亚洲国产精品成人久久蜜臀 | 四虎在线播放免费永久视频 | 亚洲精品偷拍视频免费观看 | 亚洲av中文无码乱人伦在线播放 | 亚洲成AV人片在线观看无码 | 亚洲免费网站在线观看| 亚洲精品国产首次亮相| 国产日韩精品无码区免费专区国产| 国产精品99久久免费观看| 免费毛片在线播放| 曰韩亚洲av人人夜夜澡人人爽| 亚洲婷婷在线视频| 羞羞网站在线免费观看| 91精品手机国产免费| 国产极品美女高潮抽搐免费网站| 亚洲五月综合缴情在线观看| 亚洲av无码电影网| 国产在线观看免费av站| 免费国产作爱视频网站| 久久亚洲中文字幕精品一区| 亚洲成人动漫在线观看| 牛牛在线精品观看免费正| 亚洲成人免费电影| 亚洲中文字幕视频国产| 亚洲国产成a人v在线| 国产精品综合专区中文字幕免费播放| 免费成人福利视频| 久久精品亚洲乱码伦伦中文| 亚洲喷奶水中文字幕电影 | 日韩精品免费在线视频| 日本一线a视频免费观看| 亚洲嫩模在线观看| 免费大片黄在线观看| 波多野结衣中文字幕免费视频| 亚洲日韩在线中文字幕第一页|