Building Your First Flatpak

Building Your First Flatpak

原文地址:http://docs.flatpak.org/en/latest/first-flatpak.html

本文是对Flatpak的一个快速导览,您可以在这里学到如何创建一个可安装和运行Flatpak应用。

您需要首先安装flatpak,具体安装方法可参见 The setup Guide. 同时也需要安装flatpak-builder工具来生成一个包。

安装运行时和相应的SDK

每一个Flatpak包都需要指定一个运行时来实现其基本依赖。每一个运行时都有一个相应的SDK,它包含了软件运行时所需要的所有内容以及头文件和开发工具(类似于Linux发行版中的-devel/-dev包)。SDK用于构建APP。

本文中,我们使用Freedestop 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

创建一个APP

本例中要创建的app是一个简单的脚本,hello.sh:

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

添加manifest

大多数flatpak包的构建都是使用flatpak-builder工具。它会读取一个描述应用关键属性以及其如果构建的manifest文件。
我们为hello应用添加的manfest文件内容如下:

{
    "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"
                }
            ]
        }
    ]
}

然后保存文件为org.flatpak.Hello.json, 并和hello.sh放在一起。

如果是一个更复杂的应用程序,manifest会列出更多的模块。但最后一个一般是应用程序自身,其前面的是他的依赖。这些依赖并不是runtime的一部分,他们会和app绑定。

构建应用

有了manifest之后,可以使用flatpak-builder来构建应用了。这里需要指定manifest文件和目标路径:

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

这个命令会将manifest中列出的所有模块都构建进来,并安装app-dir下的/app目录下。

测试应用

可以使用下面的命令来验证构建是否成功:

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

将应用放入源

在安装和运行应用之前,首先需要将它放入源中。一般通过flatpak-builder的–repo参数实现:

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

它会再进行一次构建,并将结果导出到本地目录repo中。注意flatpak-builder在前一次构建时会在.flatpab-builder子目录中生成cache,因此第二次构建时速度会非常快。

第二次构建是我们传递了一个参数–force-clean, 这会清除之前创建的app-dir目录。

安装应用

现在我们就可以将刚刚创建的源添加进来并安装应用了。命令如下:

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

上面的第一行命令是添加源,第二行是从源中安装应用。
这两个命令都使用了–user参数,这表示源和应用都是在用户级别而非系统级别的添加,这对测试非常有用。
另外在源添加的时候使用了–no-gpg-verify参数,这是因为我们在构建应用的时候没有制定GPG key。普通测试来说没有问题,但是如果是官方的仓库的话,应当添加GPG私钥。

运行应用

使用下面的命令运行:

$ flatpak run org.flatpak.Hello

你就可以看见对应的输出了:Hello world, from a sandbox

你可能感兴趣的:(Linux系统)