升级到 22.04 失败 - 错误来自 PostInstallScript 的错误

升级到 22.04 失败 - 错误来自 PostInstallScript 的错误

我接受了升级到 22.04 的提议,但终端窗口显示升级失败。到目前为止我什么都没做。我找不到终端窗口中显示的日志,但 /var/log 显示以下内容。

DEBUG Running PostInstallScript: './xorg_fix_proprietary.py'
ERROR got error from PostInstallScript ./xorg_fix_proprietary.py (g-exec-error-quark: Failed to execute child process “./xorg_fix_proprietary.py” (No such file or directory) (8))

当我搜索上述错误时,只有一个线程,而 22.04 没有。

我看到运行“sudo apt-get update && sudo apt-get dist-upgrade”的建议,但不确定是否合适。

我正在寻找终端窗口的日志,因为它说“apt-get check”失败了,所以我运行了它,看起来没什么问题。

sudo apt-get check
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done

有人能告诉我在哪里可以找到显示升级期间我在终端窗口中看到的消息的日志吗?我查看了 /var/log/dist-upgrade,但似乎没有一个显示相同的信息。


经过 14 小时,只有 32 次浏览(其中 6 次是我的),我决定尝试
“sudo apt-get update && sudo apt-get dist-upgrade”建议。我从终端窗口捕获了以下内容;

Setting up usrmerge (25ubuntu2) ...
Smartmatch is experimental at /usr/lib/usrmerge/convert-usrmerge line 172.
cp: failed to access '/usr/lib64/ld-linux-x86-64.so.2': Not a directory

FATAL ERROR:
cp --no-dereference --preserve=all --reflink=auto --sparse=always /lib64/ld-linux-x86-64.so.2 /usr/lib64/ld-linux-x86-64.so.2: rc=1

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
libdvd-pkg: Checking orig.tar integrity...
/usr/src/libdvd-pkg/libdvdcss_1.4.3.orig.tar.bz2: OK
libdvd-pkg: `apt-get check` failed, you may have broken packages. Aborting...
E: Sub-process /usr/bin/dpkg returned an error code (1)

我没有运行 Docker。但 Docker 似乎也存在 /usr/lib64/ld-linux-x86-64.so.2 问题...请参阅 https://code2care.org/docker/docker-m1-m2-mac-qemu-x86_64-could-not-open-lib64-linux-so-2-no-such-file-or-directory-aws-cli

/usr/lib/usrmerge/convert-usrmerge
Smartmatch is experimental at /usr/lib/usrmerge/convert-usrmerge line 172.
ionice: ioprio_set failed: Operation not permitted
chrt: failed to set pid 1645426's policy: Operation not permitted
cp: failed to access '/usr/lib64/ld-linux-x86-64.so.2': Not a directory

FATAL ERROR:
cp --no-dereference --preserve=all --reflink=auto --sparse=always /lib64/ld-linux-x86-64.so.2 /usr/lib64/ld-linux-x86-64.so.2: rc=1

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.
ldd --version
ldd (Ubuntu GLIBC 2.35-0ubuntu3.1) 2.35

由于下面显示的链接

FATAL ERROR:
cp --no-dereference --preserve=all --reflink=auto --sparse=always /lib64/ld-linux-x86-64.so.2 /usr/lib64/ld-linux-x86-64.so.2: rc=1

我检查了 /usr/lib64 中是否有上述的无目录消息,瞧,它不是一个目录???? 检查 /lib64 给出;

ls -l (in /usr)
-rwxr-xr-x   1 root root 428384 Dec 17  2019 lib64

由于 /usr 似乎坏了,我查看了源 /lib64 和

christopher@Boron:/lib64$ ls -l
lrwxrwxrwx 1 root root 42 Jul  6 19:23 ld-linux-x86-64.so.2 -> /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2

并且它给出了

christopher@Boron:/lib/x86_64-linux-gnu$ ls -l
lrwxrwxrwx 1 root root 46 Sep  4 09:25 ld-linux-x86-64.so.2 -> /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2

这难道不是循环引用吗?

答案1

执行以下操作:

christopher@Boron:/usr$ sudo mv lib64 lib64-20220905-broken

christopher@Boron:/usr/lib64# sudo ln -s  /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 ld-linux-x86-64.so.2

sudo apt-get update && sudo apt-get upgrade

这解决了用户合并问题。谢谢。

Setting up usrmerge (25ubuntu2) ...
Smartmatch is experimental at /usr/lib/usrmerge/convert-usrmerge line 172.
The system has been successfully converted.

相关内容