当前位置: 首页>>技术问答>>正文


如何为工作程序创建PPA?

, , , ,

问题描述

假设我有一个用C,C++或Python编写的工作应用程序。我想创建一个Launchpad PPA,以便其他人可以从包中轻松安装它。请从头到尾逐步说明这一点。 (或提供相同的链接;)

  • 编程语言是否重要? (它可能是一个bash脚本吗?)

  • 我需要在构建中添加任何内容吗?

  • 构建应该在哪里安装?

  • 我如何定义依赖项?

  • 我如何使用依赖项?

  • 我如何创建.deb?

  • 在上传到Launchpad之前我需要做什么?

最佳解决方法

这是一个非常广泛的问题。我会尝试尽可能多地回答,但它肯定不会是step-by-step指令。这是因为没有用于创建包的step-by-step算法。你的方式取决于很多因素,主要取决于包的类型(应用程序,库),源的结构和许多细节。

幸运的是,http://packaging.ubuntu.com有一个全面的指南

我会尝试帮助你理解整个过程,所以当你对它更熟悉的时候。包装指南包含额外帮助的资源。


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

  • 编程语言根本不重要。它可以是C++应用程序,Bash脚本,Brainfuck Hello World,单个README文件或一组很酷的照片。包可能包含任何文件。在安装过程中,程序包将被解压缩到文件系统的根目录(“/”)。这样他们就可以将一些文件放在二进制文件夹中,将一些壁纸添加到GNOME默认集中,或者为用户提供一个Bash脚本。

  • 您需要向源添加内容。它必须是名为”debian”的top-level目录。将有一些包含详细信息的文件 – 它们将用于定义包的类型等。

  • 其中一个文件(以及其他详细信息)中列出了依赖关系。从哪里获取它们?它们只是应用程序使用的其他包。应用程序的开发人员将知道他的程序需要哪些库和资源,因此列出它们不会有太多麻烦。

    • 用于构建包(pbuilder)的一些工具可以自动填充依赖项,可能通过确定应用程序在编译期间需要的内容。

  • 强烈建议使用AutoTools。这可能是您需要添加的其他内容,但可能几乎每个软件都已使用它们。 AutoTools是一组非常有用的程序 – automake,autoconf和autoscan等等。当您使用着名的./configure&&编译和安装程序时。制造&& 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开发人员和整个社区,并为他们提供你准备好的软件包:)

祝你好好创造包,希望你能找到我的答案:)

你的朋友,RafałCieślak

次佳解决方法

  • 在您上传包之前,您需要为.deb包装进行设置,请参阅Ubuntu PackagingGuide

  • 为软件构建软件包后,请参阅Launchpad的PPA documentation。它将指导您从PPA创建到上传您的包。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2479.html,未经允许,请勿转载。