libc6 依赖不匹配

libc6 依赖不匹配

我通过将 Kali 的东西添加到我的源列表中来创建弗兰肯斯坦的怪物,如本指南中所述:https://medium.com/@sany4sec/how-to-install-kali-linux-tools-in-ubuntu-or-linux-mint-b2ce8453964e

一切正常,但是运行 apt upgrade 时出现以下错误:

以下软件包具有未满足的依赖关系:

libc-bin :依赖:libc6 (< 2.36) 但已安装 2.37-12

libc6-dev:依赖:libc6(= 2.35-0ubuntu3.6)但已安装 2.37-12

         Depends: libc-dev-bin (= 2.35-0ubuntu3.6)

libc6-dev-i386:依赖:libc6-i386(= 2.35-0ubuntu3.6)但已安装 2.37-12

libc6-dev-x32:依赖:libc6-dev-i386(= 2.37-12)但已安装 2.35-0ubuntu3.6

             Depends: libc6-dev (= 2.37-12) but 2.35-0ubuntu3.6 is installed

区域设置:依赖:libc-bin(> 2.37)

我已在 source.list 中禁用 Kali 内容,并尝试了 sudo apt update、sudo apt upgrade,但错误仍然存​​在。基本上,我无法升级任何东西,我想恢复这一点。我怎样才能摆脱系统中的 2.37.-12 呢?

只是为了确认,sudo apt --fix-broken install 在这种情况下不起作用。请帮忙...我保证我再也不会尝试创造弗兰肯斯坦了!:/

答案1

该软件包的 Kali 版本比 Ubuntu 版本新,因此apt upgrade认为 Kali 版本更可取。您需要告诉 APT 进行降级。降级的方式是通过优先:提高 Ubuntu 软件包的优先级,这样即使已安装的软件包具有较新的版本号,它们也会优先于已安装的软件包。输入以下内容/etc/apt/preferences(降级结束后将其删除):

# Downgrade back to Ubuntu
Package: *
Pin: release o=Ubuntu
Pin-Priority: 1000

您可能需要除 之外或替代 的其他内容o=Ubuntu,也许o=Ubuntu,a=jammy*。运行apt-cache policy以查看每个软件包源的“发布”标签。您需要一个与所有官方 Ubuntu 源匹配的模式。

请注意,就软件包管理器而言,这解决了问题。它将尝试降级所有软件包。它是否成功取决于软件包本身。大多数软件包不支持降级,因此您可能会在安装/删除脚本中遇到错误,或者您的系统可能会进入意想不到的状态。

供将来参考,请注意 Kali 吸引了许多不知道自己在做什么的人。鉴于 Kali 是为专业人士而非初学者设计的,这无疑是灾难的根源。我强烈建议忽略任何关于 Kali Linux 本身的博客文章或类似文章(而不是演示如何使用 Kali 方便打包的某些工具并顺便建议通过 Kali 使用它的文章)。

答案2

要安装配置的存储库中可用的特定旧版本软件包,您可以按以下格式指定版本号apt-get install package=version

对于您来说,解决立即出现的问题将如下所示:

$ sudo apt-get install libc6=2.35-0ubuntu3.6 libc-bin=2.35-0ubuntu3.6 libc6-dev=2.35-0ubuntu3.6 libc-dev-bin=2.35-0ubuntu3.6 libc6-dev-i386=2.35-0ubuntu3.6 libc6-dev-x32=2.35-0ubuntu3.6 locales=2.35-0ubuntu3.6

解决这些问题后,可能会出现其他问题 - 这取决于您想要调整的程度,您可能会发现只需备份主目录并重新安装就更容易了。

此外,如果您想尝试专为与其他发行版的核心包配合使用而设计的工具,Distrobox 也是一个不错的选择。或者,如果您只是想完全试用其他发行版,GNOME Boxes 提供了一个非常简单的界面。

答案3

你可能想看看 Kali 对使用他们的存储库在非 Kali 系统上。简而言之就是“不要这样做”。我建议听取他们的建议,而不是未经验证的网页的建议。

Kali 还提供容器映像,让您可以使用其工具而不影响您的操作系统。

仅供参考,Kali受到推崇的仅适用于具有 Linux 经验的渗透测试人员。

相关内容