如何将我的软件放入Ubuntu?

作为一名自由软件开发者,我希望将我的应用程序引入Ubuntu。
我应该提供源代码压缩包并请求打包吗?还是应该自己创建一个软件包?我应该直接针对Ubuntu,还是应该尝试进入Debian,然后再自动进入Ubuntu?

1它是在OSI批准的许可证下发布的吗? - Nathan Osman
是的。我还不确定是使用GPL还是LGPL,但会选择其中之一。 - dieki
4请仔细检查,因为Debian和Ubuntu都对debian/copyright文件的准确性要求严格。 - Umang
6个回答

多种途径可以让软件包进入Ubuntu。对于像你这样的“上游”开发者来说,以Ubuntu开发为目标的概述可能是一个很好的起点,但我也会给你一些建议。

通过Debian

通常情况下,如果你发布的是自由和开源软件,首先通过Debian是最佳选择。这样可以确保你的软件包有专门的维护人员。同时,它还能够覆盖最多的用户,因为它将在Debian、Ubuntu以及它们的衍生版本中都可用。以下是一些在Debian中请求/提供新软件包的有用链接:

  • 需要工作和前景包 - 提供如何提交“意向打包”和“请求打包”错误以及开放的ITP和RFP列表的信息。

  • Debian导师常见问题解答 - debian-mentors用于指导新的和有潜力的Debian开发者。您可以在这里找到一个赞助人将您的软件包上传到存档中。

  • Debian开发者参考手册 - Debian开发者参考手册中关于新软件包的部分。整个文档对Ubuntu和Debian的打包人员都非常宝贵。

直接进入Ubuntu

在某些情况下,直接进入Ubuntu可能是有意义的。以下是一些有用的链接:

  • Ubuntu应用开发者网站 - 对于轻量级桌面应用程序,您可以直接在developer.ubuntu.com的我的应用部分提交它们,App Review Board会对其进行审查并发布到软件中心。

  • 打包指南 - 介绍如何为Ubuntu打包。

  • REVU - 一个基于Web的工具,Ubuntu贡献者可以将新的软件包上传到其中,以便由Ubuntu开发人员审核并纳入Ubuntu。

  • 赞助流程 - 进入Ubuntu后,您可以通过赞助流程来维护您的软件包。

个人软件包存档

除了官方的Ubuntu和Debian渠道之外,Launchpad为您提供了通过其个人软件包存档或简称PPA直接向用户分发Debian软件包的能力。PPA的一个特别有用的方面是您可以提供每日构建的软件版本进行测试。

如何将我的应用程序添加到Ubuntu宇宙软件仓库? - GutenYe

https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages详细介绍了将软件包纳入Ubuntu的常规流程。

在REVU网站上通常有很多等待审核的软件包,这也是为什么我们建议将软件包上传到Debian的原因,这样可以使更多的人受益。 https://wiki.ubuntu.com/Debian/ForUbuntuDevelopers#Getting_new_software_in_Debian解释了如何实现这一点。

对于Ubuntu,您可以在irc.ubuntu.com的#ubuntu-motu频道上寻求他人的审查意见;而对于Debian,则有一个在irc.oftc.net上的#debian-mentors频道。

或者,您还可以参考developer.ubuntu.com页面,该页面详细介绍了针对稳定版本进行应用程序审查和发布的独立流程。


3除非您的软件包对Ubuntu有特殊的功能,而Debian无法受益,否则请通过Debian途径进行。您更有可能从#debian-python获得赞助者,而不是#debian-mentors,但是您应该遵循两者的政策等。 - Umang

背景

Ubuntu不允许上传二进制软件包,只能上传由构建服务器构建的源代码软件包。

直接将您的软件包放入Ubuntu存储库并不容易。建议先将其放入Debian中,然后从那里同步到Ubuntu。所以现在您可以将其放入您的PPA中。您可以使用Launchpad帐户创建PPA。

上传到PPA

如果您使用debuild来构建软件包,那么您的工作会更加简单一些。debuild会生成许多文件,包括.dsc和.changes文件。

您可能已经使用.dsc文件和pbuilder-dist创建了deb文件,所以现在您只需要将其暂时发布到PPA中。使用以下命令:

dput ppa:yourlaunchpadusername/ppaname foo.changes

在上传之前,您需要使用与您在Launchpad帐户中上传的相同密钥对软件包进行签名。

推送到Debian/Ubuntu

在Ubuntu/Debian软件仓库中推送您的软件包需要通过Debian的维护人员和ftp管理人员的审核。许可证必须非常清晰,没有歧义。您可能需要一个赞助人帮助您上传到Debian。
提交ITP申请
您可能需要提交一个ITP(打算打包)来将其打包到Debian中。这只是一个正式的程序。
当该软件包在实验性/不稳定版本中可用时,您可以使用requestsync工具在LP上提交同步请求。要使requestsync工作,您需要运行manage-credentials进行Launchpad登录。
这两个工具都在ubuntu-dev-tools软件包中。

首先,我建议您将源代码放入Launchpad存储库中。
然后,您可以将软件包放入您的PPA并进行分发。
至于如何将其包含在官方存储库中...这真的取决于应用程序。
根据duanedesign的评论,此页面可以帮助您入门,此页面可以帮助您解决一些常见的上传错误。

这是为Ubuntu用户提供的最简便的方式。 - Ross
这个页面可以帮助你入门:这个页面,还有这个页面可以解决一些常见的上传错误。 - duanedesign
快速对于在PPA中设置和维护Python程序真的非常有帮助。 - Javier Rivera

进入默认的Ubuntu软件仓库可能很困难,也可能不适合你的项目(至少现在是这样),但你可以在Launchpad上建立一个项目,并在那里设置一个PPA,以便他们可以通过PPA安装它。关于此更多信息,请参阅Launchpad帮助部分,特别是这里

你可以等一段时间,因为Ubuntu开发人员已经为Ubuntu 10.10设置了一个名为extras.ubuntu.com的新存储库,供应用程序开发人员提交软件包。不过,该应用程序必须先通过应用程序审核。