Rpm

如何刪除 RPM 數據庫中的完全相同的副本(相同的架構)

  • May 6, 2019

在一個系統上,我在 RPM DB 中有兩個完全相同的條目:

# rpm -qa | fgrep gvfs-fuse
gvfs-fuse-1.40.0-1.1.x86_64
gvfs-fuse-1.40.0-1.1.x86_64

顯然沒有任何幫助:

# rpm -e --justdb --nodeps gvfs-fuse-1.40.0-1.1.x86_64
error: "gvfs-fuse-1.40.0-1.1.x86_64" specifies multiple packages:
 gvfs-fuse-1.40.0-1.1.x86_64
 gvfs-fuse-1.40.0-1.1.x86_64

# rpm --rebuilddb

# rpm -qa | fgrep gvfs-fuse
gvfs-fuse-1.40.0-1.1.x86_64
gvfs-fuse-1.40.0-1.1.x86_64

有沒有辦法更具體地指定要刪除的包(從數據庫中)以選擇其中之一?

您可以刪除這兩個實例:

rpm -e --justdb --nodeps --allmatches gvfs-fuse-1.40.0-1.1.x86_64

然後重新安裝單個 rpm(在這種情況下您需要下載):

rpm -i --justdb --nodeps gvfs-fuse-1.40.0-1.1.x86_64.rpm

或者如果您不介意重新安裝文件(並再次執行前/後腳本):

yum/zypper install gvfs-fuse-1.40.0-1.1

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