构建介绍

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

flatpak-builder

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

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

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

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

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

flatpak-builder 运行的时候:

  • 构建目录如果不存在则进行创建
  • 下载和验证每个模块的源代码
  • 构建和安装每个模块的源代码
  • 设置沙箱的权限并完成构建
  • 构建结果会被导出到仓库(如果不存在将会被创建)

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

软件开发套件(SDKs)

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

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

每个运行时都有一个附带的SDK。例如,一个GNOME 3.26 runtime和一个GNOME 3.26 SDK同时存在。使用这个运行时的是用这个对应的SDK构建的。

和运行时一样,一般SDK会自动地进行安装。但是如果你需要手动安装他们,他们的安装和运行时的安装一样,例如:

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