如何将我的应用程序打包成适用于Ubuntu软件中心的格式?

我在软件开发方面是个老手,但在打包方面经验不太丰富。我之前构建过一个dpkg,但那不是一个源代码包。
我正在努力将一个应用程序提交到Ubuntu应用商店。关于打包的文档有点含糊,只是简单地说需要按照“Debian源代码包格式”进行打包。

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

我相信我可以勉强组装一个Debian源代码包,但有几个问题让我感到困惑:
- 32位和64位的处理方式是怎样的?他们会同时从源代码构建32位和64位的应用程序吗? - 如何支持不同版本的Ubuntu,比如10.04、10.10、11.04、11.10等? - 依赖关系是如何处理的?例如,如果我的应用程序依赖于SDL,我该如何指定? - 如果我不想分发我的应用程序的源代码(它使用专有许可证),有没有一种干净的方式来表明源代码不应该随应用程序一起提供? - 如果我不使用autoconf/automake,我的Makefile需要按特定方式设置吗,还是必须使用autotools?
我想象Ubuntu的开发人员可能会为他们支持购买应用程序的不同平台和架构构建源代码,但由于在提交过程中没有明显的方法来指示应用程序所需的运行环境(例如需要GTK3和64位支持,或者仅限Intel而不支持ARM),我只能希望这些信息可以在源代码格式中指定。
有没有关于源代码包创建的好的、详尽的文档可以向我指点一下?

你不必提供一个.deb源代码包或源代码,只需提供一个tarball压缩包。希望有人能提供更详细的答案。 - Jjed
2个回答

在你链接的页面上写着:
“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需要以特定的方式设置吗,还是必须使用autotools?
允许使用Ubuntu支持的任何构建系统。如果您只使用普通的Makefile,那就没问题。但是,如果您只上传二进制文件,那就不是问题。

但是如果我用Java和NetBeans开发了我的应用程序,我应该提供什么呢?是源文件还是只有.jar文件,或者是完整的NetBeans文件夹的ZIP压缩包? - Roshnal