2010-05-11 966 views
5

我的Perl代碼以root身份安裝了幾個(4)rpm文件。在安裝新版本之前,下一次安裝將刪除它們(rpm -e)。其中一個不會刪除,rpm -e會給出未安裝的錯誤。但是,稍後安裝更新的文件時,會顯示消息已經安裝。Linux rpm安裝但不能擦除。爲什麼?

手動嘗試刪除給出相同的結果。我的問題是如何強制從rpm數據庫中刪除某些東西,以及爲什麼存在這種矛盾(不是從rpm -e安裝的,並且已經從rpm -Uvhrpm -ivh安裝)?

+4

刪除它也許最好在superuser.com上發佈此問題?!另外,請嘗試:rpm -e --nodeps {package_name} – mosg 2010-05-11 13:26:21

回答

11
  1. 安裝完成後,使用軟件包名稱,而不是軟件包文件名。
  2. 在升級之前,您不需要刪除軟件包。這樣做意味着一個或兩個包裝都損壞了。
1

rpm -e --force停止它來檢查其他依賴強制刪除軟件包,rpm -e --nodeps

這可能是您的RPM數據庫處於彎曲某種方式變了形,你不妨試試的rpm --rebuilddb

+1

強制以這種方式刪除rpm不再適用於CentOS 6.4。試圖強制返回響應:rpm:只有安裝,升級,rmsource和rmspec可能會被強制 – Magellan 2014-09-08 23:07:34

6

它也不會消失可能是因爲小腳本的一個失敗的原因。手動操作並觀察錯誤。如果它提到一個失敗的scriptlet,請嘗試用rpm -e --noscripts

+0

謝謝 - 這解決了我用我自己構建的包的問題,​​它在預刪除scriptlet中有錯誤。 – RCross 2015-02-16 17:53:23

相關問題