Apt

apt - 如何解決不可安裝的依賴項?

  • June 4, 2020

我正在嘗試安裝radare2 包。我已經從https://packages.debian.org/jessie/amd64/multiarch-support/download下載了 .deb 文件,並通過 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

他們都沒有那個包?

當您專門查看radare2包時,您正在嘗試使用您正在使用的方法安裝單個包而不是它的依賴項。這將導致問題,因為您正在嘗試兩件事:

  1. 您正在嘗試手動安裝不在您為 Buster 配置的儲存庫中的軟體包,並且
  2. 您將無法在 Buster 中正確獲取依賴項,因為由於引入了違反策略的錯誤,該包在 Buster中不存在。這就是為什麼它自早期版本以來就沒有出現在儲存庫中的原因是由於嚴重的安全問題尚未修復並且正在被上游積極利用

對維護者或上游開發人員就Debian 安全錯誤 #950372中概述的此安全問題的詢問的回應為零,因此由於上游積極利用此錯誤,所有版本的軟體包都已從 Debian 中刪除,除了 oldoldstable (你不應該使用它)。radare2

如果你真的需要這些radare庫和包,你應該考慮從上游下載原始碼並編譯它,因為 Debian 包需要libc6比你在 Debian Buster(不穩定)中的更新。

在本文發佈時,radare2源包及其建構的二進製文件的版本是4.3.1+dfsg-14.3.1上游)。建構您嘗試安裝的這些二進制包的源包Debian Package Tracker 頁面radare2將列出目前版本號以及 Unstable 中目前建構的二進製版本。但是,這需要比 Buster 更新的 C 庫版本,因此您最好手動安裝它並從上游源手動編譯它。

在任何情況下,您都不應該使用較舊的 0.9.6 版本的軟體包,因為它們存在​​巨大的安全漏洞(其中 36 個!),如果您作為上游軟體開發人員積極使用較舊的庫版本,您可能會使您的系統容易受到攻擊那裡有“利用賞金”,鼓勵人們積極尋找和利用舊軟體版本! (為此,Debian 團隊和其他人已經決定它不再適合穩定的 Debian 版本,所有這些都在之前連結的錯誤中有詳細說明)

引用自:https://unix.stackexchange.com/questions/590746