[轉]rpm出現"error: %preun( ) scriptlet failed, exit status 1問題


from http://blog.sina.com.cn/s/blog_49451df101000969.html

在linux里安裝程序有兩種方法,一種是源程序安裝,按照安裝包里的readme或者install文件指示,一步步地進行,通常是configure,
make, install三部曲。另一種就是rpm包,這個類似windows里常見的安裝程序,既可在xwin里雙擊運行,也可以在終端里輸入
rpm -ivh packagename開始安裝。

卸裝時,用源程序安裝的運行make uninstall, 用rpm安裝的則仍是使用rpm。

對於接觸linux不久的我來說,總感覺這些過程挺麻煩的,時不時會遇到點問題。

今天安裝wine的時候,就出了一點岔子,記錄下來以為后鑒。

第一次裝的wine 版本過高,而且下載的時候一不小心當了for Federa Core的,
結果安裝失敗。隨后重新下載了一個版本低一些的,而再執行安裝時由於與前一個安裝包的文件沖突,報出許多如下的出錯信息。
"file /usr/lib/wine/shdocvw.dll.so from install of
wine-20040716-1rh9winehq conflicts with file from package
wine-20050310-1fc1winehq"

這時,只能用rpm先卸載原先安裝的wine。
$rpm -e wine-20050310-1fc1winehq

不料又出現錯誤:
"error: %preun(wine-20050310-1fc1winehq) scriptlet failed, exit status 1"

經搜索,其解決方法為加 --noscripts 標記來刪除RPM。 --noscripts 相當於 --nopre --nopost
--nopreun --nopostun。

即卸載命令變為:
$rpm -e --noscripts wine-20050310-1fc1winehq

若要查看與RPM關聯的scripts,使用--script查詢RPM包。
$rpm -q --scripts package

卸載時,若系統里有同一程序的多個安裝版本要一起刪除,可使用--allmatches標記,如
$ rpm -e --noscripts --allmatches wine


卸載成功后,重新安裝新的wine包
$rpm -ivh wine-20040716-1rh9winehq.i386.rpm
現在,通過wine可以在linux里運行for windows的程序了。
 
 
 
 
 
 
 
 
 
 
 
 

 

 刪除rpm包報錯
[root@vm-10-152-4-47 ~]# rpm -e flume
Failed to stop zabbix_agentd.service: Unit zabbix_agentd.service not loaded.
error: %preun(flume-3.0.3-1.el7.centos.x86_64) scriptlet failed, exit status 5
error: flume-3.0.3-1.el7.centos.x86_64: erase failed
 
解決方法:
rpm -e --noscripts flume 添加參數 --noscripts
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM