如何为 Ubuntu 软件中心打包我的应用程序?

Jas*_*ion 5 packaging application-development

我是软件开发的老手,但在打包方面经验不足。我以前构建过一个 dpkg,但它不是源包。

我正在努力将应用程序提交到 Ubuntu 应用程序商店。关于打包的文档有点含糊不清,只说它需要以“Debian 源代码包格式”打包:

http://developer.ubuntu.com/publish/my-apps-packages/

我确信我可以通过将 Debian 源代码包 tarball 放在一起来解决问题,但是我想知道一些事情:

  • 32-vs-64 位是如何处理的?他们是否从两者中获取源代码并构建应用程序?
  • 如何支持不同版本的 Ubuntu——10.04、10.10、11.04、11.10 等?
  • 如何处理依赖项。例如,如果我的应用程序依赖于 SDL,我该如何指定?
  • 如果我不想为我的应用程序分发源代码(这是一个专有许可证),有没有一种干净的方法来表明源代码不应该与应用程序一起使用?
  • 如果我不使用 autoconf/automake,我的 Makefile 是否需要以特定方式设置,或者是否需要 autotools?

我想 Ubuntu 的人可能会获取源代码并为他们支持购买应用程序的每个不同平台和架构构建它,但是因为在提交过程中没有明显的方式来指示应用程序运行的内容(即需要 GTK3 和64 位支持,或 Intel-only 没有 ARM 支持),我只能希望可以在源格式中指定这些东西。

是否有任何关于源包创建的好的、详尽的文档可以指给我看?

小智 7

在您链接到它的页面上说:

Canonical 免费为您提供此打包服务。

并继续解释如何布置包含二进制文件的 tarball。

如果您创建了这样的 tarball 并通过 MyApps 提交,那么所有的打包工作都会为您完成。正如底部所说,如果您愿意,您可以提供源包,但这不是必需的。请注意,这是特定于封闭源代码或付费应用程序的,任何免费和免费的应用程序目前都有不同的流程。

至于你的其他问题:

32-vs-64 位是如何处理的?

如果你喜欢,你可以只上传 32 位,因为它也适用于 64 位。如果你想上传 32 位和 64 位,那么构建它两次并将结果放在“i386”和“amd64”子目录中。

如何支持不同版本的 Ubuntu——10.04、10.10、11.04、11.10 等?

作为提交过程的一部分,您可以指定您上传的二进制文件适用于哪些版本的 Ubuntu。

如何处理依赖项。例如,如果我的应用程序依赖于 SDL,我该如何指定?

这将作为打包过程的一部分添加。如果您想添加指定依赖项的注释,那么它可能会加快速度。

如果我不想为我的应用程序分发源代码(这是一个专有许可证),有没有一种干净的方法来表明源代码不应该与应用程序一起使用?

如上所述,您根本不必提供来源。

如果我不使用 autoconf/automake,我的 Makefile 是否需要以特定方式设置,或者是否需要 autotools?

允许使用 Ubuntu 支持的任何构建系统。如果您使用的是普通的 Makefile,那就没问题了。但是,如果您只是上传二进制文件,那不是问题。