我们正在使用 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-repository
Jessie 向后移植添加为有效存档以在 chroot 中使用。
但不幸的是,这还不够,因为Release
向后移植存档的文件具有"NotAutomatic: yes"
.因此,即使向后移植包含我需要的依赖项(并在 中正确声明debian/control
),它也不会自动从那里获取。
这就是--build-dep-resolver=aptitude
发挥作用的地方:aptitude
也偶然发现了缺少的依赖项,例如apt
,但随后它在向后移植存档中找到了它,并自动决定从那里获取它(并且仅获取它)。
对于我的口味来说,这有点太“自动”了,我更喜欢一种设置一些显式固定的方法,但到目前为止,这是我发现的唯一方法。
谢谢@bigon!