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

我是软件开发方面的老手,但对包装不太熟悉。 我之前已经构建了一个dpkg,但它不是源包。

我正在努力将应用程序提交到Ubuntu应用程序商店。 包装上的文档有点模糊,只是说它需要以“Debian源包格式”打包:

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

我确信我可以把Debian源代码包压缩包放在一起,但我想知道一些事情:

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

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

是否有任何关于源包创建的完整文档可以指向我?

在您链接到它的页面上显示:

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是否需要以特定方式设置,还是需要自动工具?

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

最好从学习使用ppa开始

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

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

你也可以看看

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

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