我们正在用sbuild为Debian构建我们的软件包,到目前为止,它运行得很好。
不过,有一个细节:我们想从Jessie backports归档中获取一个构建依赖项。
但是,我不知道如何配置chroot来从backports中提取那个包(以及那个包)。
我知道如何配置apt sources.list并将首选项固定在Debian系统上,但我无法在sbuild(1)和sbuild.conf(5)手册页面中找到与从它们添加存储库和固定包有关的任何内容。
发布于 2016-07-25 11:24:01
我找到了一种方法,多亏了IRC上的@bigon。
在运行时,除了我已经拥有的选项之外,我现在还将以下选项传递给sbuild命令:
$ sbuild ... --build-dep-resolver=aptitude --extra-repository="deb http://deb.debian.org/debian jessie-backports main" ...--extra-repository将添加Jessie backports作为在chroot中使用的有效存档。
但不幸的是,这还不够,因为用于后端存档的Release文件有"NotAutomatic: yes"。因此,即使后端包含我需要的依赖项(并在debian/control中正确声明),它也不会自动从其中获取。
这就是--build-dep-resolver=aptitude发挥作用的地方:aptitude也无意中发现了缺少的依赖项,比如apt,但是它在后端归档中找到了它,并自动决定从那里获取它(而且只有它)。
这对我的口味来说有点太自动化了,我更喜欢用一种方法来设置一些显式的钉扎,但到目前为止,这是我找到的唯一方法。
谢谢你@bigon!
https://unix.stackexchange.com/questions/298001
复制相似问题