Fedora

如何修復交易錯誤?

  • December 11, 2014

我在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旨在預測衝突,因此再次使用需要您自擔風險。

引用自:https://unix.stackexchange.com/questions/173811