[已解决]检测到一个文件冲突,该如何解决呢?

正在检查文件冲突: .....................................................................................[错误]
检测到 1 个文件冲突:

File /usr/bin/botan
  from install of
     libbotan-2-4-2.4.0-6.1.x86_64 (gmg137)
  conflicts with file from package
     libbotan-2-3-2.3.0-5.1.x86_64 (@System)

当两个软件包试图安装同名但内容不同的文件时就会产生文件冲突。若您继续,冲突的文件将会被替换,之前的内容会因此丢失。
继续吗? [是/否] (否):

如上面的提示所示,我在安装shadowsocks-qt5的时候,第一次提示了这个问题,然后我每次更新系统的时候,就都会提示一次这个问题,即使我选择的是:是 ,也无法解决。还是每次都会提示,我应该如何解决呢?

假如你要安装 libbotan-2-3-2.3.0-5.1.x86_64
那么sudo zypper in libbotan-2-3-2.3.0-5.1.x86_64
反之亦然
会提示有厂商变更 选择y
试一下吧

我刚刚试了一下,libbotan-2-4-2.4.0-6.1.x86_64这个软件包显示的是已经安装过了,而且是最新的,不需要在安装了。libbotan-2-3-2.3.0-5.1.x86_64这个软件包,显示的是已经安装过了,但是在我所有的软件源当中都无法找到这个包,所以无法升级,降级,重装。又尝试着升级系统软件,发现没有软件需要安装,也就没有发生上面的情况。

但是我已经有了一些想法,我的系统不是安装的,而是从原来的旧系统直接升级上来的,在升级的时候,我把软件源全部都改了,@System这个软件源应该是原来的系统里面的就软件,由于这个软件源是原来的系统的软件,所以这里面的额软件无法升级,降级,重装。所以我想要吧这个旧版的软件直接卸载,这样应该就好了。这应该算是一个bug了吧。

有没有大神来看一下,我这个想法对不对!求教!

一般选是就行了,源信息丢了(改了源)就变成@system了

看看:

sudo rpm -ql libbotan-2-3-2.3.0-5.1.x86_64

会不会有什么信息。

然后把你的:

sudo zypper se -v botan

的结果发一下帮助判断。

我看到三楼的回复,觉得这个软件包应该不是系统必须的,而且有更高的版本。然后我就直接就把libbotan-2-3-2.3.0-5.1.x86_64给卸载了! 我在我的另一台电脑上重现了上面的现象。

#rpm -qa | grep libbotan
libbotan-2-3-2.3.0-5.1.x86_64
libbotan-1_10-1-1.10.10-6.3.x86_64
libbotan-2-4-2.4.0-5.1.x86_64

这是我更新之前系统里面安装的软件。

然后查看了,您给的两个命令
# sudo rpm -ql libbotan-2-3-2.3.0-5.1.x86_64
/usr/bin/botan
/usr/lib64/libbotan-2.so.3
/usr/lib64/libbotan-2.so.3.3.0
/usr/share/doc/packages/botan-2.3.0
/usr/share/doc/packages/botan-2.3.0/authors.txt
/usr/share/doc/packages/botan-2.3.0/deprecated.txt
/usr/share/doc/packages/botan-2.3.0/license.txt
/usr/share/doc/packages/botan-2.3.0/manual
/usr/share/doc/packages/botan-2.3.0/manual/bigint.rst
/usr/share/doc/packages/botan-2.3.0/manual/building.rst
/usr/share/doc/packages/botan-2.3.0/manual/cli.rst
/usr/share/doc/packages/botan-2.3.0/manual/compression.rst
/usr/share/doc/packages/botan-2.3.0/manual/contents.rst
/usr/share/doc/packages/botan-2.3.0/manual/credentials_manager.rst
/usr/share/doc/packages/botan-2.3.0/manual/cryptobox.rst
/usr/share/doc/packages/botan-2.3.0/manual/ffi.rst
/usr/share/doc/packages/botan-2.3.0/manual/filters.rst
/usr/share/doc/packages/botan-2.3.0/manual/fpe.rst
/usr/share/doc/packages/botan-2.3.0/manual/fuzzing.rst
/usr/share/doc/packages/botan-2.3.0/manual/goals.rst
/usr/share/doc/packages/botan-2.3.0/manual/hash.rst
/usr/share/doc/packages/botan-2.3.0/manual/index.rst
/usr/share/doc/packages/botan-2.3.0/manual/kdf.rst
/usr/share/doc/packages/botan-2.3.0/manual/lowlevel.rst
/usr/share/doc/packages/botan-2.3.0/manual/mceliece.rst
/usr/share/doc/packages/botan-2.3.0/manual/otp.rst
/usr/share/doc/packages/botan-2.3.0/manual/packaging.rst
/usr/share/doc/packages/botan-2.3.0/manual/passhash.rst
/usr/share/doc/packages/botan-2.3.0/manual/pbkdf.rst
/usr/share/doc/packages/botan-2.3.0/manual/pkcs11.rst
/usr/share/doc/packages/botan-2.3.0/manual/platforms.rst
/usr/share/doc/packages/botan-2.3.0/manual/pubkey.rst
/usr/share/doc/packages/botan-2.3.0/manual/python.rst
/usr/share/doc/packages/botan-2.3.0/manual/rng.rst
/usr/share/doc/packages/botan-2.3.0/manual/secmem.rst
/usr/share/doc/packages/botan-2.3.0/manual/side_channels.rst
/usr/share/doc/packages/botan-2.3.0/manual/srp.rst
/usr/share/doc/packages/botan-2.3.0/manual/support.rst
/usr/share/doc/packages/botan-2.3.0/manual/symmetric_crypto.rst
/usr/share/doc/packages/botan-2.3.0/manual/tls.rst
/usr/share/doc/packages/botan-2.3.0/manual/tpm.rst
/usr/share/doc/packages/botan-2.3.0/manual/versions.rst
/usr/share/doc/packages/botan-2.3.0/manual/x509.rst
/usr/share/doc/packages/botan-2.3.0/news.txt
/usr/share/doc/packages/botan-2.3.0/pgpkey.txt
/usr/share/doc/packages/botan-2.3.0/reading_list.txt

# sudo zypper se -v botan
正在加载软件源数据...
正在读取已安装的软件包...

S | 名称                  | 类型     | 版本        | 架构   | 软件源                
--+-----------------------+----------+-------------+--------+-----------------------
  | Botan2                | 源代码包 | 2.4.0-6.1   | noarch | gmg137                
    name: Botan2
i | libbotan-1_10-1       | 软件包   | 1.10.10-6.3 | x86_64 | openSUSE-Leap-42.3-Oss
    name: libbotan-1_10-1
i | libbotan-1_10-1       | 软件包   | 1.10.10-6.3 | x86_64 | (系统软件包)          
    name: libbotan-1_10-1
  | libbotan-1_10-1-32bit | 软件包   | 1.10.10-6.3 | x86_64 | openSUSE-Leap-42.3-Oss
    name: libbotan-1_10-1-32bit
i | libbotan-2-3          | 软件包   | 2.3.0-5.1   | x86_64 | (系统软件包)          
    name: libbotan-2-3
v | libbotan-2-4          | 软件包   | 2.4.0-6.1   | x86_64 | gmg137                
    name: libbotan-2-4
i | libbotan-2-4          | 软件包   | 2.4.0-5.1   | x86_64 | (系统软件包)          
    name: libbotan-2-4
  | libbotan-devel        | 软件包   | 1.10.10-6.3 | x86_64 | openSUSE-Leap-42.3-Oss
    name: libbotan-devel
  | libbotan-devel-32bit  | 软件包   | 1.10.10-6.3 | x86_64 | openSUSE-Leap-42.3-Oss
    name: libbotan-devel-32bit
  | libbotan2-devel       | 软件包   | 2.4.0-6.1   | x86_64 | gmg137                
    name: libbotan2-devel
  | python3-botan         | 软件包   | 2.4.0-6.1   | x86_64 | gmg137                
    name: python3-botan

然后我更新的时候提示了如下的错误
正在检查文件冲突: …[错误]
检测到 1 个文件冲突:

File /usr/bin/botan
  from install of
     libbotan-2-4-2.4.0-6.1.x86_64 (gmg137)
  conflicts with file from package
     libbotan-2-3-2.3.0-5.1.x86_64 (@System)

当两个软件包试图安装同名但内容不同的文件时就会产生文件冲突。若您继续,冲突的文件将会被替换,之前的内容会因此丢失。
继续吗? [是/否] (否):

我选择了是,等待更新完成以后,再次执行了上面的命令。结果如下
# rpm -qa | grep libbotan
libbotan-2-4-2.4.0-6.1.x86_64
libbotan-2-3-2.3.0-5.1.x86_64
libbotan-1_10-1-1.10.10-6.3.x86_64

 # sudo rpm -ql libbotan-2-3-2.3.0-5.1.x86_64
/usr/bin/botan
/usr/lib64/libbotan-2.so.3
/usr/lib64/libbotan-2.so.3.3.0
/usr/share/doc/packages/botan-2.3.0
/usr/share/doc/packages/botan-2.3.0/authors.txt
/usr/share/doc/packages/botan-2.3.0/deprecated.txt
/usr/share/doc/packages/botan-2.3.0/license.txt
/usr/share/doc/packages/botan-2.3.0/manual
/usr/share/doc/packages/botan-2.3.0/manual/bigint.rst
/usr/share/doc/packages/botan-2.3.0/manual/building.rst
/usr/share/doc/packages/botan-2.3.0/manual/cli.rst
/usr/share/doc/packages/botan-2.3.0/manual/compression.rst
/usr/share/doc/packages/botan-2.3.0/manual/contents.rst
/usr/share/doc/packages/botan-2.3.0/manual/credentials_manager.rst
/usr/share/doc/packages/botan-2.3.0/manual/cryptobox.rst
/usr/share/doc/packages/botan-2.3.0/manual/ffi.rst
/usr/share/doc/packages/botan-2.3.0/manual/filters.rst
/usr/share/doc/packages/botan-2.3.0/manual/fpe.rst
/usr/share/doc/packages/botan-2.3.0/manual/fuzzing.rst
/usr/share/doc/packages/botan-2.3.0/manual/goals.rst
/usr/share/doc/packages/botan-2.3.0/manual/hash.rst
/usr/share/doc/packages/botan-2.3.0/manual/index.rst
/usr/share/doc/packages/botan-2.3.0/manual/kdf.rst
/usr/share/doc/packages/botan-2.3.0/manual/lowlevel.rst
/usr/share/doc/packages/botan-2.3.0/manual/mceliece.rst
/usr/share/doc/packages/botan-2.3.0/manual/otp.rst
/usr/share/doc/packages/botan-2.3.0/manual/packaging.rst
/usr/share/doc/packages/botan-2.3.0/manual/passhash.rst
/usr/share/doc/packages/botan-2.3.0/manual/pbkdf.rst
/usr/share/doc/packages/botan-2.3.0/manual/pkcs11.rst
/usr/share/doc/packages/botan-2.3.0/manual/platforms.rst
/usr/share/doc/packages/botan-2.3.0/manual/pubkey.rst
/usr/share/doc/packages/botan-2.3.0/manual/python.rst
/usr/share/doc/packages/botan-2.3.0/manual/rng.rst
/usr/share/doc/packages/botan-2.3.0/manual/secmem.rst
/usr/share/doc/packages/botan-2.3.0/manual/side_channels.rst
/usr/share/doc/packages/botan-2.3.0/manual/srp.rst
/usr/share/doc/packages/botan-2.3.0/manual/support.rst
/usr/share/doc/packages/botan-2.3.0/manual/symmetric_crypto.rst
/usr/share/doc/packages/botan-2.3.0/manual/tls.rst
/usr/share/doc/packages/botan-2.3.0/manual/tpm.rst
/usr/share/doc/packages/botan-2.3.0/manual/versions.rst
/usr/share/doc/packages/botan-2.3.0/manual/x509.rst
/usr/share/doc/packages/botan-2.3.0/news.txt
/usr/share/doc/packages/botan-2.3.0/pgpkey.txt
/usr/share/doc/packages/botan-2.3.0/reading_list.txt

# sudo zypper se -v botan                   
正在加载软件源数据...
正在读取已安装的软件包...

S | 名称                  | 类型     | 版本        | 架构   | 软件源                
--+-----------------------+----------+-------------+--------+-----------------------
  | Botan2                | 源代码包 | 2.4.0-6.1   | noarch | gmg137                
    name: Botan2
i | libbotan-1_10-1       | 软件包   | 1.10.10-6.3 | x86_64 | openSUSE-Leap-42.3-Oss
    name: libbotan-1_10-1
i | libbotan-1_10-1       | 软件包   | 1.10.10-6.3 | x86_64 | (系统软件包)          
    name: libbotan-1_10-1
  | libbotan-1_10-1-32bit | 软件包   | 1.10.10-6.3 | x86_64 | openSUSE-Leap-42.3-Oss
    name: libbotan-1_10-1-32bit
i | libbotan-2-3          | 软件包   | 2.3.0-5.1   | x86_64 | (系统软件包)          
    name: libbotan-2-3
i | libbotan-2-4          | 软件包   | 2.4.0-6.1   | x86_64 | gmg137                
    name: libbotan-2-4
i | libbotan-2-4          | 软件包   | 2.4.0-6.1   | x86_64 | (系统软件包)          
    name: libbotan-2-4
  | libbotan-devel        | 软件包   | 1.10.10-6.3 | x86_64 | openSUSE-Leap-42.3-Oss
    name: libbotan-devel
  | libbotan-devel-32bit  | 软件包   | 1.10.10-6.3 | x86_64 | openSUSE-Leap-42.3-Oss
    name: libbotan-devel-32bit
  | libbotan2-devel       | 软件包   | 2.4.0-6.1   | x86_64 | gmg137                
    name: libbotan2-devel
  | python3-botan         | 软件包   | 2.4.0-6.1   | x86_64 | gmg137                
    name: python3-botan

要这么看的话,就是个 orphan 包,直接删除了就行。有些 versioned library 在不用了后是不会自己删除的。你打开 YaST 图形版本,搜 lib,会看见不少红色的,那些就是了。

1赞

好的,我知道了,谢谢!