我发现在升级 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.0
和libssl.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 专家)?