RPM詳細課程

來源:互聯網
上載者:User

安裝軟體包:

rpm  -i 包全名

刪除:

rpm -e name(不是包名)

參數:

-ivh 獲得一個詳細的安裝進程--nodeps 忽略依賴關係--force 強制安裝-U 包名:升級安裝-F 更新不管是什麼直接覆蓋--replacepkgs這樣 RPM 將忽略該錯誤資訊 -vih --replacepkgs-q name :查詢-qa查詢所有已安裝的RPM-qi name 查詢這個軟體詳細資料-ql 顯示列表-qf path  :查詢一個檔案屬於哪個包-qp 包名 :查檔案是什麼-qpl 包名 :針對一個沒裝過的包rpm -qc 設定檔

效驗:

rpm  -Varpm  -Vf /bin/lsrpm  -Vp 包名5 -- MD5 校正和S -- 檔案長度L -- 符號連結T -- 檔案修改日期D -- 裝置U -- 使用者G -- 使用者組M -- 模式 (包含許可和檔案類型)? -- 不可讀檔案
RPM詳細課程
使用 RPMRPM 有五個基本的操作 模式(不包括包的編譯): 安裝,卸載,升級,查詢,校正。本節將對它們一一介紹。要瞭解完整的細節和選項,可以使用rpm --help, 或轉到 the section called 其它 RPM 資源 得到更多關於 RPM 的資訊。
1.安裝
典型的 RPM 有著類似 foo-1.0-1.i386.rpm這樣的名稱, 其中指明了包名 (foo), 版本號碼 (1.0), 發行號 (1), 和硬體平台 (i386)。安裝一個軟體包只需簡單的鍵入以下命令:# rpm -ivh foo-1.0-1.i386.rpmfoo                      #####################################正如您所看到的, RPM 將會列印出軟體包的名字 ( 並不一定要與檔案名稱相同, 可能是 1.rpm), 而後列印出一連串的 # 號以表示安裝進度。請注意  儘管通常是使用 rpm -ivh foo-1.0-1.i386.rpm 來安裝包, 但也可以用 rpm -Uvhfoo-1.0-1.i386.rpm 來替代。 -U 是包升級參數, 也可以用來安裝新包。參看 升級 有關RPM 中 -U 參數的詳細使用方式。軟體包的安裝設計非常簡單, 但還是有可能發生以下錯誤:軟體包已被安裝如果軟體包已被安裝, 會出現以下資訊:# rpm -ivh foo-1.0-1.i386.rpmfoo                    package foo-1.0-1 is already installederror: foo-1.0-1.i386.rpm cannot be installed#如果仍要安裝該包, 可以在命令列中使用 --replacepkgs 選項, 這樣 RPM 將忽略該錯誤資訊:# rpm -ivh --replacepkgs foo-1.0-1.i386.rpmfoo                      #####################################檔案衝突如果要安裝的軟體包中有一個檔案已在安裝其它包時被安裝,會顯示以下資訊:# rpm -ivh foo-1.0-1.i386.rpmfoo          /usr/bin/foo conflicts with file from bar-1.0-1error: foo-1.0-1.i386.rpm cannot be installed#要想讓RPM 忽略該錯誤資訊, 請使用 --replacefiles 命令列選項:# rpm -ivh --replacefiles foo-1.0-1.i386.rpmfoo                      #####################################未解決依賴關係一個 RPM 包可能會 "依賴" 其它軟體包, 也就是說要求在安裝了特定的軟體包之後才能安裝該軟體包。 如果在安裝這個軟體包時未解決這種存在的依賴關係, 會看到:# rpm -ivh bar-1.0-1.i386.rpmfailed dependencies:       foo is needed by bar-1.0-1#只有先安裝完所依賴的軟體包,才能解決這個問題。 如果想強制安裝 (這不是個好辦法,因為安裝後的軟體包未必能正常運行), 可以使用 --nodeps 命令列選項。
2.卸載
卸載軟體包就象安裝軟體包時一樣簡單:# rpm -e foo#請注意  注意這裡使用軟體包的 名字 "foo" , 而不是原始軟體包的 檔案名稱 "foo-1.0-1.i386.rpm"。卸載軟體包時, 需要用原始包的實際檔案名稱替換 foo 包名。在卸載某個軟體包時,可能會發生依賴關係錯誤,這說明其它包與此包之間有安裝依賴關係。例如:# rpm -e fooremoving these packages would break dependencies:       foo is needed by bar-1.0-1#要使 RPM 在卸載此包時忽略該錯誤 (這不是個好辦法,因為卸載後,與它有依賴關係的軟體包未必能正常運行), 使用 --nodeps 命令列選項。
3.升級
升級軟體包和安裝軟體包十分類似。# rpm -Uvh foo-2.0-1.i386.rpmfoo                      #####################################RPM 將自動卸載已安裝的老版本的 foo 軟體包,使用者無法看到有關資訊。事實上使用者可能總是使用 -U 來安裝軟體包, 因為即便以往未安裝過該軟體包,也能正常運行。因為 RPM 執行智能化的軟體包升級,自動處理設定檔,會顯示如下資訊:saving /etc/foo.conf as /etc/foo.conf.rpmsave這表示使用者對設定檔的修改,不一定能 "向上相容" 該軟體包中的設定檔。 因此,RPM 會備份原始的檔案,再安裝新檔案。使用者應當儘快解決這兩個設定檔的不同之處,以便系統能持續正常運行。因為升級其實就是軟體包的卸載與安裝的綜合,也可能會遇見那些操作中所可能發生的錯誤。 再有就是: 在使用 舊 版本的 RPM 軟體包來升級新版本的軟體時,會產生以下資訊:# rpm -Uvh foo-1.0-1.i386.rpmfoo   package foo-2.0-1 (which is newer) is already installederror: foo-1.0-1.i386.rpm cannot be installed#要使用 RPM 強行 "升級" , 請使用 --oldpackage 命令列參數:# rpm -Uvh --oldpackage foo-1.0-1.i386.rpmfoo                      #####################################
4.更新
包的更新與包升級相似:# rpm -Fvh foo-1.2-1.i386.rpmfoo                      #####################################RPM 更新選項,是檢查命令列中指明的包版本與安裝在系統中的包版本是否一致。 當 RPM更新選項處理完已安裝包的新版本時,該包會升級到新版本。 但是,RPM 更新選項無法安裝系統目前沒有的軟體包。 這與 RPM升級不同,升級選項能夠 安裝軟體包,無論舊版本的包是否已安裝。RPM 更新選項可以很好的更新一個軟體包或一組軟體包。 如果使用者下載了大量的軟體包,但只想升級系統中已有的包時,RPM 更新選項會非常有用。 使用 RPM 更新選項意味著你無需從下載的包中挑揀選揀,也不用事先刪除不要的包。這種情況下, 只需簡單的鍵入:# rpm -Fvh *.rpmRPM 工具會自動升級那些已經安裝好的包。
5.查詢
使用命令 rpm -q來查詢已安裝軟體包的資料庫。簡單的使用命令 rpm -q foo 會列印出foo軟體包的包名、版本號碼和發行號:# rpm -q foofoo-2.0-1#除了指定包名以外,使用者還可以使用以下選項與 -q 連用,來指明要查詢哪些軟體包的資訊。這些選項被稱之為 軟體包指定選項 。-a 查詢所有已安裝的軟體包。-f  將查詢包含有檔案 的軟體包。-p  查詢軟體包檔案名稱為 的包。有幾種方式來指定查詢軟體包時所顯示的資訊。 以下選項可以出選擇感興趣的資訊,加以顯示。這樣的選項被稱作 資訊選擇選項 。-i 顯示軟體包資訊,如描述、發行號、大小、編譯日期、安裝日期、硬體平台、以及其它一些各類資訊。-l 列出軟體包中包含的檔案。-s 顯示軟體包中所有檔案的狀態。-d 列出被標註為文檔的檔案 (如,man 手冊、 info 資訊、README,等等) 。-c 列出被標註為設定檔的檔案。這些檔案是需要在安裝完畢後加以定製的,如 (sendmail.cf, passwd, inittab, 等) 。如果要在執行上述選項的同時,顯示檔案清單, 可以同時使用 -v 命令列選項,就能得出與 ls -l 格式類似的輸出。
6. 校正
包校正是比較自軟體包中安裝的檔案資訊和軟體包中的原始檔案的相同資訊。 與其它校正相同,包校正將比較檔案的長度、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資料庫中記錄的屬性相比較的結果。"." (點) 表示測試通過。下面的字元代表某測試的失敗:5 -- MD5 校正和S -- 檔案長度L -- 符號連結T -- 檔案修改日期D -- 裝置U -- 使用者G -- 使用者組M -- 模式 (包含許可和檔案類型)? -- 不可讀檔案如果有資訊輸出, 使用者應當認真加以考慮,是該刪除、重新安裝、還是修正出現的問題。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.