使用 sbuild 和 backports 构建

Mat*_*don 5 packaging debian backports

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

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

不过,我不知道如何配置 chroot 以从 backports 中提取该包(并且仅该包)。

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

Mat*_*don 3

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

\n\n

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

\n\n
$ sbuild ... --build-dep-resolver=aptitude --extra-repository="deb http://deb.debian.org/debian jessie-backports main" ...\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

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

\n\n

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

\n\n

对于我的口味来说,这有点太 \xc2\xab automagic \xc2\xbb ,而且我更喜欢一种设置一些显式固定的方法,但到目前为止,这是我找到的唯一方法。

\n\n

谢谢@bigon!

\n