更新到 20.10 无提示地失败,现在由于软件包版本与 libc-bin 和 libc6:i386 / libc6:amd64 不匹配而无法更新

Vin*_*ent 1 package-management apt glibc 20.10

我使用的是 Pop OS,它与 Ubuntu 非常接近。几天前,我尝试按照System 76 网站上的说明运行以下命令,将我的工作站从 Pop OS 20.04 更新到 2010

\n
sudo apt update\nsudo apt full-upgrade\n
Run Code Online (Sandbox Code Playgroud)\n

然后转到操作系统升级,下载 20.10,然后重新启动。该版本自 20.04 以来没有变化。我很忙,所以我暂时搁置了它。

\n

我尝试通过 Pop Shop 更新我的软件并收到此错误:

\n
The following packages have unmet dependencies:\n  locales: Depends: libc-bin (> 2.32)\n
Run Code Online (Sandbox Code Playgroud)\n

重新运行时我遇到了类似的错误full-upgrade,这也提示我运行sudo apt --fix-broken install,这给了我另一个错误:

\n
dpkg: error processing package libc6:amd64 (--configure):\n package libc6:amd64 cannot be configured because libc6:i386 is not ready (current status \'half-installed\')\nErrors were encountered while processing:\n libc6:amd64\nE: Sub-process /usr/bin/dpkg returned an error code (1)\n\n
Run Code Online (Sandbox Code Playgroud)\n

一些谷歌搜索导致我尝试重新安装半安装的软件包,sudo apt install --reinstall libc6-i386这给了我类似的错误:

\n
 locales : Depends: libc-bin (> 2.32)\n\n
Run Code Online (Sandbox Code Playgroud)\n

当尝试安装该特定版本时,libc-bin我遇到了另一个错误E: Version \'2.32\' for \'libc-bin\' was not found

\n

我检查了当前安装的 libc6 版本,似乎有 2.31-ubuntu9.2,不确定这到底意味着什么。

\n
\xe2\x9d\xaf dpkg -l | grep libc6  \nrF  libc6:amd64                                      2.31-0ubuntu9.2                                           amd64        GNU C Library: Shared libraries\niHR libc6:i386                                       2.31-0ubuntu9.2                                           i386         GNU C Library: Shared libraries\nii  libc6-dev:amd64                                  2.31-0ubuntu9.2                                           amd64        GNU C Library: Development Libraries and Header Files\nii  libc6-i386                                       2.31-0ubuntu9.2                                           amd64        GNU C Library: 32-bit shared libraries for AMD64\n
Run Code Online (Sandbox Code Playgroud)\n

我真的不想从头开始使用这台机器,任何帮助将不胜感激!

\n

小智 5

您应该能够手动强制 dpkg 完成 libc6:i386 的安装,此时 apt 应该能够再次“思考”dist 升级过程。这应该只是调用的问题:

sudo dpkg -i --force-all /var/cache/apt/archives/libc6_2.31-0ubuntu9.2_i386.deb`
Run Code Online (Sandbox Code Playgroud)

不过,文件名可能与我在此处显示的不完全一样,因此您应该首先使用以下命令进行验证:

ls /var/cache/apt/archives/libc6*
Run Code Online (Sandbox Code Playgroud)