Flatpak打包(4)——构建第一个Flatpak

  • 1. 安装一个运行时和匹配的sdk
  • 2. 创建一个App
  • 3. 添加manifest
  • 4. 构建应用
  • 5. 测试应用
  • 6. 将应用放到库中
  • 7. 安装应用
  • 8. 运行应用

全部文章目录:
Flatpak打包(1)——Flatpak 介绍
Flatpak打包(2)——Flatpak应用元素
Flatpak打包(3)——应用Flatpak
Flatpak打包(4)——构建第一个Flatpak
Flatpak打包(5)——开始配置
Flatpak打包(6)——构建一个简单的应用
Flatpak打包(7)——Flatpak Builder
Flatpak打包(8)——应用Sandbox(沙盒)
Flatpak打包(9)——应用分发
Flatpak打包(10)——可用运行时(Runtime)
Flatpak打包(11)——命令参考
Flatpak打包(12)——Flatpak-builder命令参考

参考:http://docs.flatpak.org/en/latest/first-flatpak.html

本教程提供了对flatpak的快速介绍。在这篇文章中,您将学习如何创建一个可以安装并运行的基本Flatpak应用程序。

要完成本教程,您应该按照指南安装flatpak。您还需要拥有flatpak-builder工具,该工具通常作为一个包提供。

1. 安装一个运行时和匹配的sdk

flatpak要求每个应用程序都指定一个运行时,用于其基本依赖关系。每个运行时都有一个匹配的sdk(软件开发工具包),其中包含运行时的所有内容,以及头文件和开发工具(类似于Linux发行版中的-devel / -dev软件包)。这个sdk是为运行时构建应用程序所必需的。
在本教程中,我们将使用freedesktop运行时版本1.6。此运行时由flathub存储库提供。运行:

$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

然后,要安装运行时和sdk,请运行:

$ flatpak install flathub org.freedesktop.Platform//1.6 org.freedesktop.Sdk//1.6

2. 创建一个App

将为本教程创建的应用程序是一个简单的脚本。要创建它,请将以下内容复制到一个空文件并将其另存为hello.sh

#!/bin/sh
echo "Hello world, from a sandbox"

3. 添加manifest

大多数flatpaks是使用flatpak-builder工具构建的。这会读取一个清单文件,它描述应用程序的关键属性以及如何构建它。
要向hello world应用添加清单,请将以下内容添加到空文件中:

{
    "app-id": "org.flatpak.Hello",
    "runtime": "org.freedesktop.Platform",
    "runtime-version": "1.6",
    "sdk": "org.freedesktop.Sdk",
    "command": "hello.sh",
    "modules": [
        {
            "name": "hello",
            "buildsystem": "simple",
            "build-commands": [
                "install -D hello.sh /app/bin/hello.sh"
            ],
            "sources": [
                {
                    "type": "file",
                    "path": "hello.sh"
                }
            ]
        }
    ]
}

现在将文件保存在hello.sh同目录中并将其命名为为org.flatpak.hello.json
在更复杂的应用程序中,manifest会列出多个模块。最后一个通常是应用程序本身,而较早的将是与应用程序捆绑在一起的依赖项,因为它们不是运行时的一部分。

4. 构建应用

现在应用程序有一个manifest,flatpak-builder可以用来构建它。这是通过指定manifest文件和目标目录完成的:

$ flatpak-builder app-dir org.flatpak.Hello.json

此命令将构建manifest中列出的每个模块,并将其安装到app-dir目录内的/app子目录中。

5. 测试应用

要验证构建是否成功,可以运行以下内容:

$ flatpak-builder --run app-dir org.flatpak.Hello.json hello.sh

6. 将应用放到库中

在安装和运行应用程序之前,首先需要将其存储在存储库中。这是通过将-repo参数传递给flatpak-builder完成的:

$ flatpak-builder --repo=repo --force-clean app-dir org.flatpak.Hello.json

这会再次执行构建,并在最后将结果导出到称为repo的本地目录。请注意,flatpak-builder会在.flatpak-builder子目录中保留先前构建的缓存,因此,这样做第二个构建速度非常快。
这是我们第二次在-force-clean中传递,这意味着之前创建的app-dir目录在新版本开始之前被删除。

7. 安装应用

现在我们准备添加刚创建的库并安装应用程序。这是用两个命令完成的:

$ flatpak --user remote-add --no-gpg-verify tutorial-repo repo
$ flatpak --user install tutorial-repo org.flatpak.Hello

第一个命令添加上一步中创建的存储库。第二个命令从存储库安装应用程序。
这两个命令都使用-user参数,这意味着存储库和应用程序是按用户而不是系统范围添加的。这对测试很有用。
请注意,存储库中添加了-no-gpg-verify,因为在构建应用程序时未指定GPG密钥。这对测试来说很好,但对于官方软件仓库,您应该使用私人GPG密钥对其进行签名。

8. 运行应用

剩下的就是尝试应用程序。这可以通过以下命令完成:

$ flatpak run org.flatpak.Hello

会打印出Hello world, from a sandbox.

你可能感兴趣的:(flatpak,flatpak)