[ad_1]
Fedora 是一个不回避新兴技术的发行版(毕竟,它的创始原则之一是 First)。 所以也就不足为奇了 Fedora 处于革命性的新软件包系统的前沿。 这不是杂志第一次提到 Flatpak,但由于 Flatpak 如此新,自上次以来发生了很多变化。
什么是 Flatpak?
Flatpak 可以粗略地描述为 RPM 的现代替代品,但它的影响远比简单地提供新的打包格式要重要得多。 在我们讨论 Flatpak 提供什么之前,首先考虑一下当前的软件交付流程 Fedora 今天。
- 上游作者在一个新版本上工作,最终生成一个包含源代码的存档(frobncate-0.4.2.tar.gz)
- 分发打包者收到通知,他们的上游团队已发布新版本
- 分发打包程序下载源存档,并为所有受支持的分发构建新版本,为每个分发生成二进制 RPM (frobncate-0.4.2-1.fc26.x86_64.rpm)
- 分发打包者将二进制 RPM 提交到适当的更新系统,通过工作流推送 RPM,以便……
- 最后用户可以下载新版本的 frobncate (dnf upgrade frobncate)
这个过程从开始到结束可能需要几天到几个月或更长时间。 Flatpak 为上游开发人员和最终用户提供工具,大大缩短了上游发布和二进制文件到达用户 dnf 更新之间的时间。 现在让我们重新审视 frobnicate,但在上游开发人员和最终用户中都使用了 Flatpak。
- 上游作者在一个新版本上工作,最终生成一个包含源代码的存档(frobncate-0.4.2.tar.gz)
- 上游作者使用 flatpak-builder 构建 Flatpak 存储库
- 上游作者将新存储库推送到其用户已知和/或在项目网站上宣传的 URL
- 最终用户在 flatpak 更新期间收到新版本的 frobnicate
Flatpak 直接连接上游作者和最终用户; 不涉及分销中介。 Flatpak 使用 OSTree 构建一个文件系统,其中包含运行所需程序所需的所有依赖库和文件。 这意味着单个 Flatpak 存储库可以在 全部 能够运行 flatpak 程序的 Linux 发行版。 此外,由于 OSTree 存储库可以分支,因此可以同时安装同一程序的不同版本(想象一下同时安装了稳定的发布版本和夜间开发版本!)。 最后,Flatpak 在沙盒环境中运行每个程序,在访问硬件设备或文件之前请求用户的许可。
设置存储库
任何人都可以托管 Flatpak 存储库,但它需要服务器和一些工具来维护。 结果,一些软件团队围绕几个不同的主要存储库合并。
侏儒
GNOME 开发团队拥有一个存储库,其中包含所有核心 GNOME 应用程序以及许多其他应用程序的夜间构建。 要添加 gnome-nightly 存储库,请打开终端并运行:
flatpak remote-add --if-not-exists gnome-nightly https://sdk.gnome.org/gnome-nightly.flatpakrepo flatpak remote-add --if-not-exists gnome-apps-nightly https://sdk.gnome.org/gnome-apps-nightly.flatpakrepo
平面图
一组 Flatpak 开发人员已经启动了一个名为 平面图. Flathub 旨在提供一个集中的存储库,让用户可以使用 Flatpak 应用程序。 Flathub 涵盖的不仅仅是 GNOME 应用程序套件,而且会定期添加新的应用程序。 要添加 Flathub 存储库,请打开终端并运行:
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
应用
GNOME Software 已经支持 Flatpak 存储库,因此可以使用 GNOME Software 或 flatpak 命令安装应用程序。 从概览中启动软件,单击搜索按钮并搜索所需的应用程序。 如果它可以在传统的 Fedora 存储库作为 RPM,有两个结果。
- 标记为 Source: fedoraproject.org 的条目是 RPM。
- 标记为 Source: sdk.gnome.org 的条目是 Flatpak。
选择 Flatpak 条目并单击安装。
安装后,Polari 可以像任何其他应用程序一样从概览中启动; GNOME shell 已经支持 Flatpak 应用程序。
flatpak 命令还列出并安装应用程序和运行时。 要列出特定存储库中可用的所有应用程序,请运行 remote-ls 命令:
flatpak remote-ls flathub --app
使用 install 命令安装应用程序:
flatpak install flathub com.valvesoftware.Steam
安装后,运行命令将运行应用程序:
flatpak run com.valvesoftware.Steam
建立你自己的
在 Flathub 或其他地方找不到您最喜欢的作为 Flatpak 的应用程序? 建立你自己的实际上是相当简单的。 如果您习惯“手动”编译软件,那么创建 Flatpak 存储库似乎很熟悉。 Flatpak 存储库可以通过几种不同的方式构建,但最简单的方法是创建一个名为“manifest”的 JSON 格式文件。 例如,以 GNOME 字典为例:
{ "app-id": "org.gnome.Dictionary", "runtime": "org.gnome.Platform", "runtime-version": "3.22", "sdk": "org.gnome.Sdk", "command": "gnome-dictionary", "finish-args": [ "--socket=x11", "--share=network" ], "modules": [ { "name": "gnome-dictionary", "sources": [ { "type": "archive", "url": "https://download.gnome.org/sources/gnome-dictionary/3.20/gnome-dictionary-3.20.0.tar.xz", "sha256": "efb36377d46eff9291d3b8fec37baab2355f9dc8bc7edb791b6a625574716121" } ] } ] }
Save 这个到一个文件中,然后运行 flatpak-builder 来创建一个存储库。
$ flatpak-builder gnome-dictionary-app-dir org.gnome.Dictionary.json
资源
有越来越多的有用资源可用于构建和使用 Flatpak。
- Flatpak Hello World
- Flatpak 开发者文档
- Flatpak 特色应用
- Flathub 应用程序
- KDE Flatpak 运行时
- GNOME Nightly flatpak-builder 清单
[ad_2]