我该如何开始自己的存储库?

我是一名热衷于开发的开发者,但我从未真正开始设置自己的PPA - 有人应该如何处理这个问题?常见的问题有哪些?我如何让我的源代码编译成PPA上的软件包?
3个回答

按照txwikinger所说,在Launchpad上注册,然后你需要生成一个GPG密钥。
gpg --gen-key

并将其上传到Ubuntu的密钥服务器。
gpg --keyserver keyserver.ubuntu.com --publish-keys $KEYID

将“sec”行后斜杠后的数字替换为$KEYID
gpg -K --fingerprint

在您的个人资料中,单击绿色“+”旁边的GPG密钥部分,并提供先前命令中的密钥指纹。您将收到一封加密的电子邮件。解密它(将您的GPG密钥设置在邮件客户端中会更容易),然后点击内部链接以验证您拥有该密钥。

单击您的launchpad.net页面以创建一个新的PPA

按照Source Lab提供的打包指南进行操作,但与Txwikinger所说的不同,您不会上传deb文件。那是因为deb是一个二进制包,而PPA需要源代码包。在您的源目录中拥有4个必要文件(/debian/rules /debian/changelog /debian/control和/debian/copyright)以及源代码外部的原始tarball之后,运行:

debuild -S -sa

将生成一个源代码包,其中包括一个 .debian.tar.gz 文件(如果使用源代码格式 3.0)或者一个 .diff.tar.gz 文件,以及一个 .dsc 文件和一个 .changes 文件。.dsc 和 .changes 文件需要进行签名,因此您需要输入 GPG 密码两次。只有在第一次将该软件包上传到 PPA 时才需要使用 -sa 参数。后续的修订版本可以省略该参数。
然后您将运行:
dput ppa:youruser/ppa *.changes

显然,填写你自己的用户名,并且如果你选择了一个自定义名称作为 PPA,在斜杠后面将其放入。PPA 在 Launchpad 的页面上会告诉你确切的 ppa: 语法。

在14.04版本中,使用gpg --keyserver keyserver.ubuntu.com --publish-keys $KEYID命令会出现错误:gpg: Invalid option "--publish-keys"。应该使用--send-keys选项代替:gpg --keyserver keyserver.ubuntu.com --send-keys $KEYID,参考链接:http://askubuntu.com/questions/220063/how-to-publish-gpg-key-in-ubuntu-12-10。 - landroni

有一些工具可以帮助您将源代码 tarball 和 Debian 控制文件上传到您在 Launchpad 上的 PPA。这将告诉您如何。但是上传软件包只是其中的一小部分...

建立构建环境和 Debian 软件包 (.deb) 基础设施并不是一件简单的事情!它需要对软件包结构和不同类型脚本的工作原理(特别是 Make 和 Shell 脚本)有很好的理解。

我发现以下两个指南在打包 .deb 时非常有用:
Ubuntu 打包指南
Debian 新维护者指南

请务必仔细阅读整个Ubuntu 打包指南,这将帮助您走上胜利之路!


您可以在您的主页上https://launchpad.net注册帐户,然后开始创建自己的ppa。ppa托管在launchpad上。

您可以通过创建.deb软件包并使用dput命令将其上传到您的ppa来编译您的源代码。然后,该软件包将由launchpad的编译服务器自动编译,并可在多个平台上使用。

有关打包的更多信息,请参阅有关打包的维基百科页面


我觉得这更符合我的兴趣。我知道ppa使用Bazaar进行源代码控制(我想是这样),所以我只需将代码推送到ppa,然后就能生成软件包了,是这样简单吗? - Marco Ceppi
1市集和ppa是两种不同的东西。您可以使用市集来对您的完整软件包进行版本控制(包括.deb附件以进行软件包管理),但市集本身不需要它,也不会为您进行打包。市集基本上是您的bzr版本控制的中央分支,通过launchpad对用户权限进行额外管理。 - txwikinger
bzr就像git一样,但更容易使用。它与打包并没有真正的关联。现在,Lauchpad Beta Testers可以获得从bzr进行每日构建的配方,但您仍然需要创建一个打包分支。 - maco
你确定我们可以上传.deb文件吗,@txwikinger?我记得dput只接受.changes文件。 - Santosh Kumar