这个问题没有一个单一的命令解决方案,但是确实存在工具可以使其相对轻松:
debootstrap
可以在一个自包含的目录中创建一个干净、最小化的 Ubuntu 安装
schroot
允许您管理多个 chroot,并保持它们的清洁以供以后使用
mk-schroot
可用于自动设置和管理 schroot
- 给定一个 .dsc 文件(使用
debuild -S
生成),sbuild
将进入您的干净 chroot,安装任何依赖包,并构建您的源代码。
这基本上就是 Launchpad 构建服务器用来构建源代码包并将其放入 Ubuntu 存档中的方法。
总的来说,使用干净的 chroot 是一个好的做法,因为它确保软件包不依赖于构建机器上的任何定制设置。
设置过程涉及为每个您想要针对的 Ubuntu 版本创建一个新的 schroot。这相当简单:使用 mk-sbuild
来构建一个新的 chroot。您可能需要类似以下的命令:
mk-sbuild --arch=amd64 --name=lucid lucid
这将指导您创建一个名为'lucid-amd64'的chroot,并在完成后打印出以下有用的信息:
构建lucid-amd64完成。
更改黄金镜像:sudo schroot -c lucid-amd64-source -u root
进入图像快照:schroot -c lucid-amd64
在快照中构建:sbuild -A -d lucid-amd64 PACKAGE*.dsc
所以,一旦您设置好了chroots,构建过程将是:
- 从源包的顶级目录中,运行
debuild -S
来创建一个源包,包括<package>_<version>.dsc
- 运行构建:
sbuild -A -d lucid-amd64 ../<package>_<version>.dsc
更多信息,请参考
mk-sbuild
、
schroot
、
sbuild
、
debootstrap
和
debuild
的man页面,它们非常详尽。
https://wiki.ubuntu.com/DebootstrapChroot提供了一些关于构建和配置chroots的好信息。另外,如果需要帮助,可以在irc.freenode.net上找到#ubuntu-devel频道。
mk-sbuild
会为你完成所有的schroot设置,而且你不需要以root身份运行sbuild。 - RAOF