如何为工作程序创建 PPA?

lof*_*ops 37 package-management launchpad ppa programming

假设我有一个用 C、C++ 或 Python 编写的工作应用程序。我想创建一个 Launchpad PPA,以便其他人可以轻松地从包中安装它。请给出从头到尾执行此操作的分步说明。(或提供一个链接,做同样的事情;)

  • 编程语言重要吗?(会不会是 bash 脚本?)
  • 我需要在我的构建中添加任何东西吗?
  • 构建应该安装在哪里?
  • 我如何定义依赖项?
  • 如何使用依赖项?
  • 如何创建 .deb?
  • 在上传到 Launchpad 之前我需要做什么?

Raf*_*lak 34

这是一个非常广泛的问题。我会尽可能多地回答,但这绝对不会是一个循序渐进的说明。这是因为没有用于创建包的分步算法。您执行此操作的方式取决于许多因素,主要取决于包的类型(应用程序、库)、源代码的结构和许多细节。

幸运的是,http: //packaging.ubuntu.com 上有一份详尽的指南

我会尽量帮助您理解整个过程,以便您对它更加熟悉。包装指南包括其他帮助资源。


首先,您应该意识到创建一个包(一个 .deb 文件)是一个独立于创建 PPA 的过程。创建 PPA 只需转到 Launchpad 的个人资料并单击“创建新的 PPA”链接即可。就这样。它被创建,它可以工作,但它是空的。要上传包,您必须先创建一个包。但让我先回答你的一些小问题。

  • 该编程语言DOES NOT都无所谓。它可以是一个 C++ 应用程序、Bash 脚本、Brainfuck Hello World、一个 README 文件或一组很酷的照片。包可以包含任何文件。在安装过程中,软件包被解压到文件系统的根目录(“/”)。通过这种方式,他们可以将一些文件放在二进制文件夹中,将一些壁纸添加到 GNOME 默认设置中,或者为用户提供 Bash 脚本。
  • 确实需要向源中添加一些内容。它必须是名为“debian”的顶级目录。会有一些包含包详细信息的文件 - 它们将用于定义包的类型等。
  • 依赖项列在其中一个文件中(以及其他详细信息)。从哪里得到它们?它们只是您的应用程序使用的其他包。应用程序的开发人员将知道他的程序需要哪些库和资源,因此在列出它们时应该不会有太多麻烦。
    • 一些用于构建包 (pbuilder) 的工具可以自动填充依赖项,这可能是通过确定您的应用程序在编译期间需要什么来实现的。
  • 强烈建议使用AutoTools。这是您可能需要添加的另一件事,但可能几乎每个软件都已经使用它们。AutoTools 是一组非常有用的程序 - automake、autoconf 和 autoscan 等等。当您使用著名的./configure && make && make install编译和安装程序时 然后使用autotools来自动处理源码,准备源码中包含的其他资源进行安装,并将编译结果提取到合适的地方(回答你的问题:构建将提取到许多不同的地方。二进制文件会去/usr/local/bin,文档会去/usr/local/share/docs 等等。此外,来自一个包的二进制文件甚至会去不同的地方,把二进制文件送到/usr/bin。如何处理使用这种复杂的目录布局?使用 AutoTools - 它会自动关心它,这就是它们如此有用的原因)。

构建 .deb 包可能看起来是一个非常复杂的过程,但其实并没有那么难。我强烈推荐你使用官方的 Ubuntu 包创建指南:http : //packaging.ubuntu.com

它很大,但是您会发现您可能可以跳过该文本的大部分内容(取决于您要构建的包)。基本上,包装过程由这些部分组成(在指南中都有清楚的解释)

  1. 初始化一些用于构建包的工具。
  2. 获取源码
  3. 创建 ./debian 目录并用所需的数据填充它
  4. 使用 debuild 构建包[那应该创建一组文件,包括 *.dsc、*_source.build、*_source.changes,这些文件负责关于包的数据,以及如何处理它(你还会有一个源.tar.gz)]
  5. 通过在本地运行 pbuilder 来测试一切是否正常(它将采用上面提到的所有这些文件并尝试将它们组合成一个 .deb 包,通过在 AutoTools 的帮助下自动构建源代码 - 这就是为什么它们对于打包至关重要[坦率地说 -不是 - 你可以不使用它们或使用一些替代方法,但这是最简单的方法,其他方法可能需要一些高级设置,因为你需要指导构建器如何构建源代码(使用 ./debian/rules 文件) - 但这不适合初学者] ) - 如果你只是想获得一个 .deb 包,它就完成了。

现在您必须将其上传到您的 PPA,此帮助页面对此进行了说明:https : //help.launchpad.net/Packaging/PPA/Uploading

  1. 使用 dput 将这些文件上传到 Launchpad
  2. Launchpad 将在他们的计算机上运行 pbuilder ,并在干净的环境中生成包
  3. 最后,这些包应该出现在 PPA 中。

如您所见,创建 PPA并不是那么简单但是不要害怕,它也没有那么难。此外,我建议您不要鼓励开发人员使用 PPA,因为他们可能不会听您的,因为他们需要做一些额外的工作(如果他们愿意,他们已经完成了),但是您可能想尝试支持 Ubuntu 开发人员和整个社区,并为他们提供您准备好的软件包:)

我祝你创建包好运,希望你会发现我的回答有帮助:)

你的朋友,拉法?切拉克


Isa*_*iah 5

  • 在上传包之前,您需要对其进行设置以进行.deb打包,请参阅 Ubuntu PackagingGuide

  • 一旦您可以为您的软件构建软件包,请参阅 Launchpad 的PPA 文档。它将指导您从 PPA 创建到上传您的包。