未满足的依赖项。Libc6 包系统坏了

rtp*_*ick 16 dpkg dependencies glibc software-installation 20.04

每当我尝试升级或安装新软件包时,我都会得到以下信息

ibc6-dbg: Depends: libc6 (= 2.31-0ubuntu9.2) but 2.31-0ubuntu9.1 is installed \
libc6-dev: Depends: libc6 (= 2.31-0ubuntu9.2) but 2.31-0ubuntu9.1 is installed \
           Depends: libc-dev-bin (= 2.31-0ubuntu9.2) but 2.31-0ubuntu9.2 is installed
libc6-i386: Depends: libc6 (= 2.31-0ubuntu9.2) but 2.31-0ubuntu9.1 is installed
Run Code Online (Sandbox Code Playgroud)


我试过apt --fix-broken install
我试过sudo apt-get -f install强制安装。
在这两种情况下,我都收到相同的错误消息。

我还是 Linux 的新手,很想学习如何在不擦除操作系统并重新安装的情况下解决这些问题

小智 13

我在新安装的 Ubuntu 20.04.2 桌面 64 位上遇到了类似的问题,不同之处在于安装了 libc6 ...9.3 但我的软件包(g++ build-essential 等)无法安装,因为 libc6-dev 无法安装,因为它需要libc6 ...9.2 比安装的那个旧

 libc6-dev : Depends: libc6 (= 2.31-0ubuntu9.2) but 2.31-0ubuntu9.3 is to be installed
Run Code Online (Sandbox Code Playgroud)

所以我只是通过这种方式将 libc6(还有 libc-bin,因为它看起来与我非常相关)降级到 2.31-0ubuntu9.2 版本:

sudo apt install libc6=2.31-0ubuntu9.2 libc-bin=2.31-0ubuntu9.2
Run Code Online (Sandbox Code Playgroud)

现在我的包可以安装 :) 所以它似乎可以工作,让我们看看我们是否没有太多问题 - 但我想不是因为这是 libc 的一个微小变化(另一方面 libc 非常重要)

但我不知道将来会发生什么:

  • 它会在未来的更新中将此软件包固定为旧版本吗?
  • 有谁知道如何取消修复这个版本?
  • 即使我能以某种方式从这个版本中解决它,那么 ubuntu 将来会出现这个问题吗?
  • 有谁知道这是否是 Ubuntu 打包存储库中的一些错误?我再说一遍:这是在一个全新的 Ubuntu 20.04 桌面上

其他一些寻找灵感的地方:

  • 您能在启动板上提交一个错误吗?我有类似的问题。现在在设置上投入了太多,可能会破坏 - 这似乎是包中错误的依赖关系声明 - 更新:https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1926918 似乎这是被跟踪的。 (3认同)
  • 我真的不高兴这样做,但目前它有效。 (2认同)

小智 6

我想补充Tomeg的答案,使用aptitude降级帮助我保持我的软件包依赖于安装的libc6。降级时:

sudo apt install libc6=2.31-0ubuntu9.
Run Code Online (Sandbox Code Playgroud)

apt还会卸载所有依赖于libc6 的软件包。

The following packages will be DOWNGRADED:
  libc6
0 upgraded, 0 newly installed, 1 downgraded, 206 to remove and 0 not upgraded.
Run Code Online (Sandbox Code Playgroud)

正如我在这里所描述的,这确实有帮助,因为aptitude为我提供了不同的选择:

 sudo aptitude install libc6=2.31-0ubuntu9.2
Run Code Online (Sandbox Code Playgroud)

我不得不拒绝前两个选项(2x n),然后第三个选项是仅降级(y)而不卸载其他软件包。