![如何构建源码包?](https://linux22.com/image/866402/%E5%A6%82%E4%BD%95%E6%9E%84%E5%BB%BA%E6%BA%90%E7%A0%81%E5%8C%85%EF%BC%9F.png)
我是开源软件 GDevelop 的首席开发人员(https://github.com/4ian/GD):我希望在 Ubuntu 上分发它,并利用 Launchpad 平台自动为最新的 Ubuntu 版本进行编译。
目前,我分发了一个可以正常安装的 .deb 包。该包是使用自制脚本“手动”构建的dpkg
。它运行良好,但我只能为一个版本的 Ubuntu(我用来开发软件的版本)构建软件,如果 GDevelop 有一个 PPA,而不是要求用户每次发布新版本时都去 GDevelop 网站下载最新的 .deb 文件,那显然会更好。
但我很难建立一个源包:我一直在阅读这篇文章https://help.launchpad.net/Packaging/PPA/BuildingASourcePackage,但 Ubuntu 打包指南的链接已损坏。我一直在搜索信息,网上有很多关于打包的文章,但大多数都没有从源代码开始直到我准备好要发送到 Launchpad 的包的分步指南 :/
您能帮我指出一些不错的文章/教程/ Ask Ubuntu 答案吗?我必须承认我有点迷茫。例如,我无法获取有关一些非常具体的细节的信息:
- 我的软件是使用 CMake 构建的。构建系统如何与打包过程集成?使用是
make
强制性的吗? - 如何指定软件的依赖项?GDevelop 使用插件和SFML例如。
- 有什么方法可以获取在 Launchpad 上构建的输出?我尝试上传一些源包,但上传完成后没有收到任何通知(我原本以为至少会收到错误消息或通知,但什么都没有)。我如何在收到源包后模拟其构建?
谢谢你的帮助 :)
答案1
刚刚看到我从来没有解释过我最终如何让该源包被 Launchpad 构建和接受 :) 因为 GDevelop 是开源的,所以对于想要创建这样一个包的人来说,最好的事情就是查看为该软件制作源包的脚本:https://github.com/4ian/GD/blob/master/Binaries/Packaging/PackageForUbuntu.sh
大部分工作由 完成debuild
。构建系统是自动地猜猜哪个好,但如果您的软件需要额外的参数,它将无法工作:您可以使用rule
文件。
构建依赖项应列在control
文件中。然后在 Launchpad 上构建时计算实际依赖项。
最后,正如您可能通过查看各种教程/文档所看到的,应该添加一些具有深奥内容的文件( compat
, );)source/format