我以前升级了另一个系统,有一些问题,但是一个简单的sudo apt dist-upgrade
继续升级并解决了这个问题。
第二个系统的升级从19.10升级到20.04失败,错误消息如下:
systemd-machine-id-setup: /lib/libcrypt.so.1: version `XCRYPT_2.0' not found (required by /lib/systemd/libsystemd-shared-245.so)
具体来说,我正在升级Kubuntu,并使用了以下站点的说明:https://help.ubuntu.com/community/FocalUpgrades/Kubuntu
从https://unix.stackexchange.com/questions/518699/error-while-starting-open-ssh-usr-sbin-sshd-lib-libcrypt-so-1-version-xcr
,我发现libcrypt.so.1
是一个软链接/lib/libcrypt.so.1 -> libcrypt-2.30.so
。我删除了软链接,从而找到了另一个密室,/usr/lib/x86_64-linux-gnu/libcrypt.so -> /lib/x86_64-linux-gnu/libcrypt.so.1.1.0
,这似乎更合适。
一个sudo apt dist-upgrade
把升级推到了更远的地方。然而,它再次失败,因为:
/usr/bin/perl: /lib/libcrypt.so.1: version `XCRYPT_2.0' not found (required by /usr/bin/perl)
显然,安装中的某些内容重新创建了链接:/lib/libcrypt.so.1 -> libcrypt-2.30.so
我确信libcrypt-2.30.so是伟大的和所有,但它是免费的升级过程与这个软链接。WTF??以下是在此升级迭代期间发生的故障:
...
Processing triggers for cups (2.3.1-9ubuntu1.1) ...
Updating PPD files for hpcups ...
Processing triggers for libc-bin (2.31-0ubuntu9) ...
Processing triggers for systemd (245.4-4ubuntu3.1) ...
Processing triggers for man-db (2.9.1-1) ...
perl: /lib/libcrypt.so.1: version `XCRYPT_2.0' not found (required by perl)
...
我打赌libc-bin
以某种方式恢复了链接。
使用dpkg -S /lib/libcrypt-2.30.so
显示,libc6-udeb
安装/lib/libcrypt-2.30.so
文件。libc6-udeb
包没有任何依赖关系,所以sudo apt remove libc6-udeb
。这删除了违规的文件,链接,并似乎继续升级。一个sudo apt dist-upgrade
似乎表明升级已经完成。使用一个sudo apt autoremove
来完成这个过程。
这是怎么回事?我已经安装了各种不同的存储库、包等等,但如果没有(通常)简单的dpkg --configure -a
或类似的(可能更复杂)的修复,升级过程很少会如此严重地失败。
发布于 2020-06-29 16:27:03
使用sudo apt remove libc6-udeb
似乎解决了问题,如上面的问题所示。
https://askubuntu.com/questions/1254845
复制相似问题