Flatpak打包(9)——应用分发

全部文章目录:
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命令参考

flatpak提供了多种分发应用程序的方式。主要方法是托管一个存储库。这是相对简单的(虽然有一些重要的细节需要注意),并允许分发应用程序更新。
也可以将flatpaks作为单个文件包分发,这在某些情况下可能很有用。

托管一个存储库

本指南的前几节介绍如何使用build-exportflatpak-builder生成存储库。生成的OSTree存储库可以驻留在Web服务器上供用户使用。

重要细节

OSTree存储库使用archive-z2,这意味着它们包含应用程序中每个文件的单个文件。这意味着pull操作将执行大量的HTTP请求。由于新请求很慢,因此在Web服务器上启用HTTP保持活动很重要。
OSTree支持一种叫做静态变量的东西。这些是repo中的单个文件,其中包含在两个修订之间(或从无到修订)所需的所有数据。创建这样的delta会在服务器上占用更多的空间,但会使下载速度更快。这可以通过build-update-repo --generate-static-deltas选项来完成。

GPG签名

OSTree使用GPG来验证存储库的身份。这要求对存储库的每次提交都使用GPG签名以及存储库摘要文件的修改时间。
要做到这一点,需要将GPG密钥传递给build-update-repobuild-export命令,以及flatpak-builder(如果用于修改或创建存储库)。(如果您还没有GPG密钥,则很容易生成GPG密钥)。例如:

$ flatpak build-export --gpg-sign=KEYID --gpg-homedir=PATH REPOSITORY DIRECTORY

这里--gpg-homedir是可选的,并且允许指定要使用的密钥的主目录。
尽管通常不推荐,但可以禁用OSTree存储库的GPG验证。要做到这一点,添加远程时可以使用--no-gpg-verify选项。GPG验证也可以在现有的远程平台上使用flatpak remote-modify来禁用。
请注意,为了更新未启用gpg验证的远程设备,必须成为root用户

指定存储库

将用户指向包含应用程序的存储库的一种便捷方式是提供一个.flatpakrepo文件,供他们下载和安装。要手动安装.flatpakrepo文件,请使用以下命令:

$ flatpak remote-add --from foo.flatpakrepo

一个典型的.flatpakrepo文件看起来像这样:

[Flatpak Repo]
Title=GEdit
Url=http://sdk.gnome.org/repo-apps/
GPGKey=mQENBFUUCGcBCAC/K9WeV4xCaKr3...

如果存储库仅包含一个应用程序,则可以更方便地使用.flatpakref文件,该文件包含足够的信息来添加存储库并同时安装应用程序。要手动安装.flatpakref文件,请使用以下命令:

$ flatpak install --from foo.flatpakref

典型的.flatpakref文件如下所示:

[Flatpak Ref]
Title=GEdit
Name=org.gnome.gedit
Branch=stable
Url=http://sdk.gnome.org/repo-apps/
IsRuntime=False
GPGKey=mQENBFUUCGcBCAC/K9WeV4xCaKr3...
RuntimeRepo=https://sdk.gnome.org/gnome.flatpakrepo

请注意,这些文件中的GPGKey密钥包含base64编码的GPG密钥,您可以使用以下命令获得该密钥:

$ base64 --wrap=0 < foo.gpg

单一文件包

托管存储库是分发应用程序的首选方式,但有时可以从网站提供的单个文件包或作为电子邮件附件发送的更便利。flatpak使用build-bundlebuild-import-bundle命令来支持此操作,以将存储库中的应用程序转换为捆绑软件并返回:

$ flatpak build-bundle [OPTION...] LOCATION FILENAME NAME [BRANCH]
$ flatpak build-import-bundle [OPTION...] LOCATION FILENAME

例如,创建一个名为dictionary.flatpak的软件包,其中包含 ~/repositories /apps中的存储库中的GNOME dictionary应用程序,请运行:

$ flatpak build-bundle ~/repositories/apps dictionary.flatpak org.gnome.Dictionary

要将软件包导入另一台机器上的存储库,请运行:

$ flatpak build-import-bundle ~/my-apps dictionary.flatpak

注意与存储库相比,bundle有一些缺点。例如,使用托管存储库分发更新更方便,因为用户可以运行flatpak update

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值