Fedora
如何修復交易錯誤?
我在
nodejs-0.10.33-1nodesource.fc20.x86_64
和之間有事務檢查錯誤nodejs-semver-2.1.0-1.fc20.noarch
。要點完全錯誤 :8998690a05100b1f6085當我執行 yum list nodejs 我得到:
Installed Packages nodejs.x86_64 0.10.32-1.fc20 @updates Available Packages nodejs.i686 0.10.32-1.fc20 updates nodejs.x86_64
如果我只安裝了一個軟體包,我怎麼會發生衝突?而且,我該怎麼辦?
從我所看到的來看,這並不是真正的事務錯誤,而是文件衝突。IMO(也許有人可以糾正我)您幾乎必須刪除
npm
包裹。物理地或僅來自 RPM 數據庫。
- 如果您對它感到滿意,您可以
rpm -e npm
解除安裝軟體包並從文件系統中刪除衝突文件。這會導致數據失去,但如果由於nodejs
完全替換npm
軟體包而存在衝突,那麼應該不會有太大的損失,因為安裝nodejs
將替換由於解除安裝而失去的文件。- 如果您認為您無法移除軟體包(它包含其他軟體包沒有的文件),您可以嘗試
--justdb
使用rpm -e
. 請注意,這可能會導致您不一定會立即看到的衝突(其中同時安裝了衝突的文件版本或舊軟體包的片段保留在系統上等)。只要文件被覆蓋,您只需對是否一切都會好起來進行有根據的猜測。例子:
[root@vml-lvprod04 ~]# ll -h /usr/bin/nc -rwxr-xr-x 1 root root 22K Feb 9 2010 /usr/bin/nc [root@vml-lvprod04 ~]# rpm -e --justdb nc [root@vml-lvprod04 ~]# rpm -ql nc package nc is not installed [root@vml-lvprod04 ~]# ll -h /usr/bin/nc -rwxr-xr-x 1 root root 22K Feb 9 2010 /usr/bin/nc [root@vml-lvprod04 ~]# yum install -y nc [ ...snip... ] Running Transaction Warning: RPMDB altered outside of yum. Installing : nc-1.84-22.el6.x86_64 1/1 Verifying : nc-1.84-22.el6.x86_64 1/1 Installed: nc.x86_64 0:1.84-22.el6 Complete!
如您所見,我從數據庫中刪除了包,而沒有觸及實際文件本身。這將防止
rpm
看到任何文件衝突。然後,我能夠在同一位置安裝帶有文件的軟體包,而不會出現 yum 錯誤。rpm
旨在預測衝突,因此再次使用需要您自擔風險。