构建介绍#

我们已在 构建你的第一个flatpak应用 一节中展示了如何使用Flatpak构建应用的简单案例。在本节中,我们将概述讨论构建过程涉及到的其他要素。

flatpak-builder#

flatpak-builder 是构建Flatpak应用的基础工具. 它允许您获取应用程序的源文件,并将其构建为一个Flatpak应用程序。它还允许同时构建多个其他依赖项,这些依赖项被捆绑到构建中。

输入给 flatpak-builder 的是一个清单文件。它指定了要构建应用的参数,例如它的名字和依赖的运行时。这个清单还列出了作为构建过程的一部分构建的所有模块(不是很确定,译者注)。可以指定每个模块的源,包括指向文件存档或版本控制存储库的链接。某个模块(通常是最后一个)是应用代码它本身。

调用 flatpak-builder 的基本格式是:

$ flatpak-builder <build-dir> <manifest>

其中 <build-dir> 是构建应用程序的目标文件夹,<manifest> 是清单文件的路径。<build-dir> 中的内容可以被用来调试和测试应用程序,不过大多数情况下它只是构建过程的中间产物。

flatpak-builder 运行的时候:

  • 构建目录如果不存在则进行创建

  • 下载和验证每个模块的源代码

  • 构建和安装每个模块的源代码

  • The build is finished by setting sandbox permissions

  • 构建结果会被导出到仓库(如果不存在将会被创建)

然后这个应用就可以从仓库进行安装和运行了

软件开发套件(SDKs)#

Flatpak应用是在一个称作SDK的隔离环境中,而不是宿主的环境中构建的。

这些SDK类似与应用所运行在的常规运行时。不同的是,这些SDK还包含了构建一个应用需要的所有开发资源和工具,例如构建和打包工具、头文件、编译器和调试器

Each runtime has an accompanying SDK. For example, there is both a GNOME 43 runtime and a GNOME 43 SDK. Applications that use the runtime are built with the matching SDK.

Like runtimes, SDKs will sometimes be automatically installed for you, but if you do need to manually install them, they are installed in the same way as applications and runtimes, such as:

$ flatpak install flathub org.gnome.Sdk//43