每当我尝试升级或安装新软件包时,我都会收到以下信息
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
我试过apt --fix-broken install
强制sudo apt-get -f install
安装。
两次都收到相同的错误消息。
我对 Linux 还不熟悉,很想学习如何修复这些问题,而无需清除操作系统并重新安装
答案1
我在新安装的 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
所以我才降级 libc6(以及 libc-bin,因为我觉得它们非常相关)升级到版本 2.31-0ubuntu9.2 如下:
sudo apt install libc6=2.31-0ubuntu9.2 libc-bin=2.31-0ubuntu9.2
现在我的软件包可以安装了 :) 所以它似乎可以工作了,让我们看看是否没有太多问题 - 但我猜不是因为这是 libc 中的一个微小的变化(另一方面 libc 非常重要)
但我不知道未来会发生什么:
- 在未来的更新中是否会将此包固定为旧版本?
- 有谁知道如何解除此版本的困扰吗?
- 即使我能以某种方式从这个版本中解除它,那么 ubuntu 将来还会出现这个问题吗?
- 有人知道这是否是 Ubuntu 打包存储库中的错误吗?我再说一遍:这是在全新的 Ubuntu 20.04 桌面上
其他可以寻找灵感的地方:
答案2
我想补充一下托梅格,降级为资质帮助我保留我的包裹取决于libc6已安装。使用以下命令降级:
sudo apt install libc6=2.31-0ubuntu9.
易于也会卸载我的所有软件包,具体取决于libc6。
The following packages will be DOWNGRADED:
libc6
0 upgraded, 0 newly installed, 1 downgraded, 206 to remove and 0 not upgraded.
正如我所描述的这里这确实有帮助,因为资质为我提供了不同的选择:
sudo aptitude install libc6=2.31-0ubuntu9.2
我不得不拒绝前两个选项(2x n),然后第三个选项是单独降级(y)而不卸载其他软件包。
答案3
这些说明对我有帮助。你知道你需要修复软件包依赖关系,因此libc6
:
查找可用版本
libc6
:apt show -a libc6
从运行上述命令后看到的列表中安装一个版本(您需要的版本)。例如,如果您想要版本
2.31-0ubuntu9.7
,请运行:sudo apt install libc6="2.31-0ubuntu9.7"
现在运行:
sudo apt install build-essential
答案4
除了重新安装特定版本的libc
,您可能还需要查看apt
中的源文件/etc/apt/sources.list
,看看apt
源是否与您的 Ubuntu 操作系统版本匹配。如果版本不匹配,您需要将sources.list
代码名称替换为正确的 Ubuntu 代码名称,更新apt
源,然后重新安装libc
或gcc
。