一般而言,安裝 RPM 歸檔很簡單︰rpm -i package
.rpm。使用此指令可安裝套件,但是必須滿足套件的相依性,而且套件不可與其他套件衝突。如果 rpm 要求要安裝的套件必須符合相依性要求,會顯示錯誤訊息。RPM 資料庫會在背景中確認沒有產生衝突 — 特定的檔案僅可屬於一個套件。藉由選擇不同選項,您可以強迫 rpm 忽略這些預設,但只有進階使用者才可以這樣做。否則,會有危害系統完整性的風險,而且可能會危害更新系統的能力。
選項 -U
或 --upgrade
和 -F
或 --freshen
可用來更新套件,例如,rpm -F package
.rpm。此指令會移除舊版的檔案,並立刻安裝新檔案。兩個版本之間的不同在於 -U
會安裝先前系統中沒有的套件,而 -F
僅更新先前安裝的套件。在更新時,rpm 會使用下列策略小心地更新組態檔:
如果系統管理員未變更組態檔,rpm 會安裝新版本的相應檔案。系統管理員不需要做任何動作。
如果系統管理員在更新之前變更了組態檔,rpm 會將變更的檔案以副檔名 .rpmorig
或 .rpmsave
(備份檔案) 儲存,並安裝新套件的版本,但此操作僅在原始安裝的檔案與新版本不同時才會發生。在這種情況下,請比較備份檔案 (.rpmorig
或 .rpmsave
) 與新安裝的檔案,然後再對新檔案做一次變更。之後,請確定刪除所有 .rpmorig
和 .rpmsave
檔案以避免未來更新的問題。
如果組態檔已存在,且如果在 .spec
檔案中指定了 noreplace
標籤,便會出現 .rpmnew
檔案。
在更新之後,應該在比較完 .rpmsave
和 .rpmnew
之後將它們移除,才不會妨礙未來的更新。如果 RPM 資料庫之前無法辨識檔案,會指定 .rpmorig
副檔名。
否則,會使用 .rpmsave
。換言之,.rpmorig
是在將外來格式更新為 RPM 後產生的。.rpmsave
是在將舊版 RPM 更新為新版 RPM 後產生的。.rpmnew
不會透露任何關於系統管理員是否曾對組態檔做過任何變更的資訊。可在 /var/adm/rpmconfigcheck
找到這些檔案的清單。部分組態檔 (如 /etc/httpd/httpd.conf
) 不會覆寫以允許後續操作。
-U
切換參數的功能不不完全等同於使用 -e
選項進行解除安裝以及使用 -i
選項進行安裝。如果可能,請使用 -U
。
若要移除套件,請輸入 rpm -e package
。如果沒有無法解析的相依性,rpm 僅會刪除套件。只要其他應用程式還需要它,理論上無法刪除 Tcl/Tk,。即使是這種情況下,RPM 還是可從資料庫呼叫以得到協助。如果此種刪除是 (不論出於何種原因或處於不尋常的狀況下) 不可行的 — 即使不存在額外的相依性,使用選項 --rebuilddb
來重建 RPM 資料庫可能有幫助。