我正在尝试使用 Launchpad 为 Cardano 区块链打包软件,到目前为止,我已经能够使用所需的 libsodium fork 创建 PPA。此 fork 是构建 Cardano 节点软件所必需的,这是我的下一步 - 构建它并将其放在 PPA 上。问题是,为了构建节点软件,构建者需要使用该 PPA 才能安装正确的依赖项。
如果没有它,构建就会失败像这样,但无法解析所需的版本:
The following packages have unmet dependencies:
sbuild-build-depends-cardano-node-dummy : Depends: libsodium-dev (= 1.0.17.1-0ubuntu1) but 1.0.18-1 is to be installed
E: Unable to correct problems, you have held broken packages.
我尝试过将 PPA 设为依赖项,但显然无法做到这一点,因为该软件包是作为同一 PPA 的一部分构建的,并且它不能依赖于自身。我该怎么办?
编辑以澄清:我正在尝试构建一个包在电力购买协议 (PPA) 中这取决于来自相同电力价格协议。
答案1
该软件包cardano-node
明确依赖于libsodium-dev (= 1.0.17.1-0ubuntu1)
PPA 中的版本。但是,版本 1.0.18-1 已在存储库中可用,旧版本将无法安装。
您有两个选择。
- 如果 Ubuntu 存储库中的版本适合您,请删除文件
libsodium-dev
中依赖项的明确版本号debian/control
。 - 如果您的软件包确实需要这个旧版本,那么请用一个虚假的版本号(如)重建旧版本
2:1.0.17.1-0
,然后再次从 debian/control 文件中删除明确的版本号,这样旧版本的 libsodium-dev(现在2:1.0.17.1-0
)将获得更高的优先级。