Flatpak打包(4)——構建第一個Flatpak

全部文章目錄:
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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章