构建你的第一个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”。