升级到 22.04 时出现 usrmerge 致命错误:libssl 和 libcrypto 文件的位置重复

升级到 22.04 时出现 usrmerge 致命错误:libssl 和 libcrypto 文件的位置重复

我发现在升级 Ubuntu 版本时似乎有一个常见问题——一个usrmerge致命错误,它也会阻止正确的符号链接分配。

在 Ubuntu 版本从 20.04 升级到 22.04 时,出现了一些问题的迹象usrmerge。Ubuntu 升级确实发生了:

ec@ec:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:    22.04
Codename:   jammy 

但一条警告消息称升级实际上是不完整且容易出错的,要求我解决这个问题以便升级能够完全完成。

我发现这usrmerge给每个人都带来了麻烦。

网上最常见的解决方案是尝试升级usrmerge。这是人们通常做的一个例子:

https://bugs.launchpad.net/ubuntu/+source/usrmerge/+bug/1993943/comments/5

但是,当我尝试sudo apt install usrmerge或执行类似操作时usrmerge,在发现第一个差异时总会引发致命错误:

FATAL ERROR:

/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 和 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 都存在

You can try correcting the errors reported and running again
/usr/lib/usrmerge/convert-usrmerge until it will complete without errors.
Do not install or update other Debian packages until the program
has been run successfully.

dpkg: error processing package usrmerge (--configure):
 installed usrmerge package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 usrmerge
E: Sub-process /usr/bin/dpkg returned an error code (1)

上述错误表明重复的文件位于这两个目录中:

  • /usr/lib/x86_64-linux-gnu/
  • /lib/x86_64-linux-gnu/

然后我发现相同的失败目录模式与两个文件相关: libcrypto.so.1.0.0libssl.so.1.0.0文件。

中的/usr/lib/x86_64-linux-gnu/是原始内容,而lib*.so.1.0.0中的/lib/x86_64-linux-gnu/是其他符号链接的符号链接:

lrwxrwxrwx 1 root root      11 apr 26  2019 libssl.so.1.0.0 -> libssl.so.6
lrwxrwxrwx 1 root root      42 apr 24  2019 libssl.so.6 -> /usr/local/ampps/extra/lib/libssl.so.1.0.0

然后lib*.so.6指向lib*.so.1.0.0不同目录中的重复内容,这似乎与 ampps(MySQL 依赖项?)有关。

我发现了许多因usrmerge链接和位置不正确而导致失败的例子,但没有一个与我的问题相似。似乎与所有这些问题相关的是以下解释:https://askubuntu.com/a/1441239/1728935

因此,看来我应该只使用一个原始的lib*.so.1.0.0作为lib子目录中符号链接的源,但还有其他符号链接,lib*.so.6位于中间,我不知道如何解决 :L。如果有人能向我解释纠正这种明显差异的最安全方法,这样我就不会破坏其他东西(免责声明:我不是 Linux 专家)?

相关内容