apt - 如何解决无法安装的依赖项?

apt - 如何解决无法安装的依赖项?

我正在尝试安装radare2 软件包。我已经从以下位置下载了 .deb 文件https://packages.debian.org/jessie/amd64/multiarch-support/download,然后通过 apt: 安装它$sudo apt install -f ./libradare2-0.9.6_0.9.6-3.1+deb8u1_amd64.deb,然后:

 libradare2-0.9.6 : Depends: libradare2-common (>= 0.9.6-3.1+deb8u1) but it is not installable
E: Unable to correct problems, you have held broken packages.

所以我做了:

 $sudo apt install --fix-broken

但无济于事。那么如果有依赖,包依赖了,但是apt无法安装,怎么办?我应该在 source.list 中有另一个来源吗?我的是 :

deb http://deb.debian.org/debian/ buster main non-free contrib
deb-src http://deb.debian.org/debian/ buster main non-free contrib

deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free

# buster-updates, previously known as 'volatile'
deb http://deb.debian.org/debian/ buster-updates main contrib non-free
deb-src http://deb.debian.org/debian/ buster-updates main contrib non-free

他们都没有那个包裹吗?

答案1

当您专门查看radare2软件包时,您正在尝试安装单个软件包,而不是使用您正在使用的方法安装其依赖项。这会导致问题,因为您正在尝试两件事:

  1. 您正在尝试手动安装一个不在您为 Buster 配置的存储库中的软件包,并且

  2. 您将无法在 Buster 中正确获取依赖项,因为该包不存在在 Buster 中,由于引入了违反策略的错误。这就是为什么自早期版本以来它就没有出现在存储库中的原因了尚未解决且正在被上游积极利用的严重安全问题

已经有回应维护者或上游开发人员关于此安全问题的询问Debian 安全错误 #950372因此,由于上游积极利用此错误,所有版本的radare2软件包都已从 Debian 中删除,除了 oldoldstable(您不应该使用它)。

如果你真的需要radare库和软件包,您应该考虑从上游下载源代码并编译它,因为 Debian 软件包需要libc6比 Debian Buster 中更新的软件包(在不稳定版本中)。

在撰写本文时,radare2源代码包及其构建的二进制文件的版本是4.3.1+dfsg-14.3.1上游)。这radare2用于构建您尝试安装的这些二进制软件包的源软件包的Debian Package Tracker 页面将列出当前版本号以及当前在 Unstable 中构建的二进制版本。但是,这需要比 Buster 更新版本的 C 库,因此您最好手动安装它并从上游源代码手动编译它。

在任何情况下,您都不应使用旧版 0.9.6 软件包,因为它们存在巨大的安全漏洞(36 个!),并且如果您使用旧版库,则可能会使您的系统容易受到攻击,因为上游软件开发人员积极地提供“漏洞赏金”以怂恿人们积极寻找和利用旧版软件! (为此,Debian 团队和其他人决定它不再适合稳定的 Debian 版本,所有详细信息都在早期链接的错误中)

答案2

libradare2-common 可以从以下位置下载https://packages.debian.org/en/jessie/all/libradare2-common/download但该页面上有有关如何在系统上激活存储库的说明。

相关内容