使用 sbuild 和向后移植进行构建

使用 sbuild 和向后移植进行构建

我们正在使用 sbuild 为 Debian Jessie 构建软件包,到目前为止,它运行良好。

不过,只有一个细节:我们想从 Jessie 向后移植存档中获取构建依赖项之一。

不过,我不知道如何配置 chroot 来从向后移植中提取该包(并且仅提取该包)。

我知道如何在 Debian 系统上配置 apt和固定首选项,但我在和手册页sources.list中找不到与添加存储库和固定软件包相关的任何内容。sbuild(1)sbuild.conf(5)

答案1

感谢 IRC 上的 @bigon,我找到了一种方法。

sbuild在运行时,除了已有的选项之外,我现在还将以下选项传递给命令:

$ sbuild ... --build-dep-resolver=aptitude --extra-repository="deb http://deb.debian.org/debian jessie-backports main" ...

会将--extra-repositoryJessie 向后移植添加为有效存档以在 chroot 中使用。

但不幸的是,这还不够,因为Release向后移植存档的文件具有"NotAutomatic: yes".因此,即使向后移植包含我需要的依赖项(并在 中正确声明debian/control),它也不会自动从那里获取。

这就是--build-dep-resolver=aptitude发挥作用的地方:aptitude也偶然发现了缺少的依赖项,例如apt,但随后它在向后移植存档中找到了它,并自动决定从那里获取它(并且仅获取它)。

对于我的口味来说,这有点太“自动”了,我更喜欢一种设置一些显式固定的方法,但到目前为止,这是我发现的唯一方法。

谢谢@bigon!

相关内容