Mat*_*don 5 packaging debian backports
我们正在使用 sbuild 为 Debian Jessie 构建我们的软件包,到目前为止它运行良好。
但是只有一个细节:我们想从 Jessie 向后移植存档中获取构建依赖项之一。
不过,我不知道如何配置 chroot 以从 backports 中提取该包(并且仅该包)。
我知道如何sources.list
在 Debian 系统上配置 apt和 pinning 首选项,但在手册页sbuild(1)
和sbuild.conf(5)
手册页中找不到与添加存储库和固定软件包相关的任何内容。
感谢 IRC 上的 @bigon,我找到了一种方法。
\n\nsbuild
在运行时,除了已有的选项之外,我现在还将以下选项传递给命令:
$ 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-repository
Jessie 向后移植添加为有效存档以在 chroot 中使用。
但不幸的是,这还不够,因为Release
向后移植存档的文件具有"NotAutomatic: yes"
. 因此,即使向后移植包含我需要的依赖项(并在 中正确声明debian/control
),它也不会自动从那里获取。
这就是--build-dep-resolver=aptitude
发挥作用的地方:aptitude
也偶然发现了缺少的依赖项,例如apt
,但随后它在向后移植存档中找到了它,并自动决定从那里获取它(并且仅获取它)。
对于我的口味来说,这有点太 \xc2\xab automagic \xc2\xbb ,而且我更喜欢一种设置一些显式固定的方法,但到目前为止,这是我找到的唯一方法。
\n\n谢谢@bigon!
\n