构建你的第一个flatpak应用#

这个教程提供了一个构建flatpak的简单介绍。你可以从它学习到如何创建一个基础的可以被安装和运行的flatpak应用。

In order to complete this tutorial, you should have followed the setup guide on flatpak.org. You also need to have installed flatpak-builder, which is usually available from the same repository as the flatpak package (e.g. use apt or dnf). You can also install it as a flatpak with flatpak install flathub org.flatpak.Builder.

1.安装runtime和与之相匹配的SDK#

flatpak要求每个应用指明一个runtime,作为它的基本依赖。每个runtime有一个匹配的SDK(软件开发套件),包含了runtime里面的所有东西,加上头文件和开发工具。构建应用的时候需要这个SDK。

In this tutorial we will use the Freedesktop 23.08 runtime and SDK. To install these, run:

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

2.创建应用#

这个教程要创建的个应用是一个简单的脚本。为了创建它,复制下面的内容:

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

现在粘贴它到一个空文件然后保存为 hello.sh

3.添加一个清单文件#

每个flatpak都用一个清单文件来构建,它提供了这个应用的基本信息和如何构建它的指令。为hello world应用添加一个清单文件,添加如下内容到一个空文件:

id: org.flatpak.Hello
runtime: org.freedesktop.Platform
runtime-version: '23.08'
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

Now save the file alongside hello.sh and call it org.flatpak.Hello.yml.

在一个更加复杂的应用中,这个清单文件会列出多个模块。通常最后一个是应用本身,前面的是要和应用绑定的依赖,因为他们不是runtime的一部分。

4.构建应用#

现在这个应用有一个清单文件, flatpak-builder 可以用来构建它。通过指明一个清单文件和一个目标目录:

$ flatpak-builder build-dir org.flatpak.Hello.yml

这个命令会构建每个列在清单文件里的模块,然后将它安装到 build-dir/app 子目录。

5.测试构建#

为了确认构建成功,运行:

$ flatpak-builder --user --install --force-clean build-dir org.flatpak.Hello.yml
$ flatpak run org.flatpak.Hello

第二次我们通过 --force-clean ,会在新的构建开始之前删除先前创建的 build-dir 目录。

恭喜,你已经创建了一个应用!

6.将应用放到仓库#

If you want to share the application you can put it in a repository. This is done by passing the --repo argument to flatpak-builder:

$ flatpak-builder --repo=repo --force-clean build-dir org.flatpak.Hello.yml

这将再次进行构建,最后将结果导出到名为 repo  `` 的本地目录。注意, ``flatpak-builder.flatpak-builder 子目录下保存了先前构建的缓存,所以像这样进行二次构建非常快。

In order for your application to show up in application stores while testing with a local repository, you might have to run flatpak build-update-repo repo.

For more information how to publish to application stores see MetaInfo files.

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”。