使用什么来构建 ubuntu/debian 包?

使用什么来构建 ubuntu/debian 包?

最近我一直在查看关于如何构建软件包的各种指南。似乎有一个很多方法一个人可以 关于 。所以我有点困惑到底该用什么。也就是说,我想看清全局。有哪些工具?它们之间的关系是什么?哪个是哪个的包装器?哪个更适合什么?比如apt-get source大概主要针对用户,而不是开发者。更好的选择肯定是dget。哪个是哪个的替代方案?举几个例子,有,,,,,,,pbuilder。而且肯定还有很多我不知道的。最常见的工作流程是什么?pdebuildpbuilder-distcowbuildersbuilddebuilddpkg-buildpackagefakeroot

答案1

我设法找到了答案。首先,这个简短的描述这也是我在这里主要问的问题。

构建系统的核心是dpkg-buildpackages,它使用fakeroot,然后运行debian/rules(即 makefile)来构建软件包。如果您要为运行它的版本构建内部使用的软件包,那么这可能就足够了。

另一方面,如果您打算为debian/做出贡献ubuntu,那么您至少要使用debuild,它可以运行lintian并签署文件。

如果您想要针对不同的debian/ubuntu版本,您将使用pbuilder,除其他功能外,它还会在干净的环境中构建软件包,而不会被您已安装的软件包所破坏,以查看实际的依赖关系。您可能会考虑使用pbuilder-dist来进一步简化问题。

据说pdebuild这是“pbuilder 执行 debuild 的方式”。我没有看到它运行lintian,但这可能不符合pbuilder方式。

cowbuilder然后,如果你想要加快构建软件包的速度(包装?) ,还有pbuilder。还有一些用于从git存储库构建的工具,我还没有深入研究。

更新型多巴胺我被告知#debian-mentorssbuild其行为与 相同buildd,但惊喜较少”,“pbuilder对实验的支持是错误的”,“另一方面,sbuild仍然缺少从构建过程中移除网络的功能”,并且pbuilder没有维护。移除网络是必要的,因为构建包不应该依赖于它的存在,它们不应该下载任何东西。

schroot从实验据称能够隔离(取消共享)网络。

答案2

您没有过多谈论您的源环境。

如果它是开源的并且只有一个项目(目录下有一个控制文件debian/),那么https://launchpad.net确实是一个好办法。或多或少,你只需要把文件弄好,他们会处理剩下的事情。

即使是现在,获取正确的文件对我来说也有点不可思议,但关于如何创建包的文档已经很多了。你可以从一个非常简单的示例开始,然后花时间添加其他选项/功能。这样你就不必一次学会所有的细节了。

相关内容