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

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

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

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

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

我确信我可以顺利地将 Debian 源码包 tarball 放在一起,但有几件事我感到疑惑:

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

我想象 Ubuntu 的用户可能会采用源代码并为他们支持购买应用程序的每个不同平台和架构构建它,但由于提交过程中没有明显的方法来表明应用程序的运行方式(即需要 GTK3 和 64 位支持,或仅限 Intel 而不支持 ARM),我只能希望可以在源格式中指定内容。

您能给我提供一些关于源包创建的好的、详尽的文档吗?

答案1

您链接到的页面上显示:

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

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

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

至于您的其他问题:

32 位和 64 位的问题该如何处理?

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

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

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

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

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

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

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

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

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

答案2

最好先学习使用 ppa

https://help.launchpad.net/Packaging/PPA

当您上传源时,系统会为您构建包(arch)。

您还可以查看

https://wiki.ubuntu.com/MOTU/GettingStarted

https://wiki.ubuntu.com/PackagingGuide/Complete

相关内容