如何在构建 Launchpad 时使用来自同一 PPA 的旧版本软件包作为依赖项?

如何在构建 Launchpad 时使用来自同一 PPA 的旧版本软件包作为依赖项?

我正在尝试使用 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 已在存储库中可用,旧版本将无法安装。

您有两个选择。

  1. 如果 Ubuntu 存储库中的版本适合您,请删除文件libsodium-dev中依赖项的明确版本号debian/control
  2. 如果您的软件包确实需要这个旧版本,那么请用一个虚假的版本号(如)重建旧版本2:1.0.17.1-0,然后再次从 debian/control 文件中删除明确的版本号,这样旧版本的 libsodium-dev(现在2:1.0.17.1-0)将获得更高的优先级。

相关内容