碎片化一直是 Linux 桌面的致命弱点。在无数不兼容的发行版的世界中,流行的应用程序通常仅限于一到两个最流行的发行版,并且新应用程序的创建受到阻碍。碎片化对应用程序开发人员的影响提供了一个很好的问题示例:要为 Linux 发布应用程序,开发人员必须应对不同的软件包格式和数量惊人的发行版,所有这些发行版都有自己特定的约定。对于那些确实存在的应用程序,维护和预发布测试非常困难,甚至是不可能的。
Linux 发行版不断变化的性质为应用程序开发人员增加了另一个复杂性维度。发行版的每次发布都可能带来与应用程序不兼容的更改,导致错误或完全停止应用程序工作。当问题出现时,用户通常会先遇到它们,然后开发人员才会遇到。
Flatpak,一个新的用于构建和分发桌面应用程序的框架,旨在改变这一切。Flatpak 将应用程序运行的平台与发行版解耦。这意味着,应用程序开发人员不必追逐发行版,而是可以选择他们想要使用的平台。然后,Flatpak 确保该平台在所有各种发行版上都可用。
由于 Flatpak 平台是固定的,应用程序开发人员不必担心它们会意外更改,并且他们可以在每次发布之前针对平台测试其应用程序。许多 Linux 应用程序已经提供 Flatpak 应用程序,并且正在开发更多实验性构建版本。Flatpak 网站列出了越来越多的这些应用程序。
其中一个应用程序是 LibreOffice。文档基金会(LibreOffice 背后的非营利组织)的负责人 Michael Meeks 最近告诉 Flatpak 开发人员,该组织为在 Linux 上实现向前兼容性而被迫做出的“可怕的妥协”。LibreOffice 很快开始提供其办公套件的 Flatpak 构建版本,可以在 libreoffice.org/download/flatpak/ 找到。
Flatpak 是一个托管在 Github 上的独立上游项目。它符合标准,使用了 开放容器倡议 规范,这是一个旨在实现容器技术之间兼容性的 Linux 基金会倡议。Flatpak 与其他项目共享多种技术,例如 Bubblewrap 实用程序和 OSTree,并且充分利用了 Linux 内核功能。重要的是,所有这些技术和功能通常都可用于所有 Linux 发行版。
有趣的是,传统的 Linux 桌面并不是 Flatpak 唯一的目标。它可以作为跨多个行业的定制解决方案的基础,包括嵌入式和车载信息娱乐系统。这也许是合作伙伴迅速参与的原因之一。早期的贡献者之一是 Endless Computers,它正在 Intel 和 ARM 设备上为其所有应用程序使用 Flatpak。
Collabora,一家著名的开源咨询公司,正在积极关注,尤其是在嵌入式和商业应用程序方面,他们的一位开发人员已经在贡献补丁。不难想象,通用的应用程序分发解决方案可能会引起各行各业的兴趣。
挑战
回到 Linux 发行版的世界,Flatpak 确实面临挑战,其成功将取决于采用率。它当然具有兼容性的优势——Flatpak 团队设计了一个框架,该框架不需要更改底层发行版即可工作。对于发行版而言,采用只是打包 Flatpak 并使其可用的问题。这些软件包已在 Debian Experimental、Fedora 和 Mageia Cauldron 中提供,以及通过 Arch、Gentoo 和 Ubuntu 的非官方存储库提供。一旦在系统上安装了 Flatpak,Flatpak 应用程序集合就会立即可用。
Flatpak 是否会在这些发行版中默认提供是另一个问题。只有这样,它才能为软件安装提供有效的开箱即用解决方案。Linux 桌面环境(如 GNOME 和 KDE)已经在进行 Flatpak 集成,并且一个完全支持 Flatpak 的应用程序商店——以 GNOME 的“软件”的形式——即将到来。这会是 Linux 通用应用程序商店的开始吗?
访问 flatpak.org 以了解有关 Flatpak 的更多信息或加入社区。
3 条评论