Flatpak打包更新(2)——开始使用:Flatpak 介绍

参考文章:http://docs.flatpak.org/

flatpak是一种构建、发布、安装和运行应用的技术,它的桌面应用领域是linux桌面环境,尽管它也可以作为其他环境,例如嵌入式环境中进行应用程序的发布。

flatpak已经设计并且实现了以下几个目标:

  • 允许应用安装在任何一个Linux发行版中;
  • 给应用程序提供一致的环境,便于测试和减少bug;
  • 在桌面上完全集成应用程序;
  • 通过允许同时安装多个版本的运行时确保应用程序的前向兼容性;
  • 允许应用程序在Linux发行版中使用不可用的库(或不一致可用);
  • 将应用程序与操作系统解耦,使应用程序不依赖于每个特定的发行版;
  • 通过在不同容器(sandboxes)来隔离不同的应用,来提高Linux桌面的安全性;
  • 分散的应用分发,没有一个单独的,特定的存储库。

基本概念

我们能够通过很少的关键概念来理解flatpak,这也是它不同于其他软件包的地方

运行时(Runtimes)

运行时提供了应用程序使用的基本依赖关系。每个应用程序必须针对运行时构建,并且此运行时必须安装在主机系统上才能运行应用程序(flatpak可以自动安装应用程序所需的运行时)。可以同时安装多个不同的运行时,包括同一运行时的不同版本。
目前只有很少的运行时可用,包括小的和稳定的Freedesktop运行时,还有包含GNOME和KDE的运行时。
运行时是分布不可知的,不依赖于特定的分发版本。这意味着它们为应用程序提供了一个稳定的交叉分配基础,并且允许应用程序继续工作,而不管操作系统更新如何。
~~运行时提供了应用所需的基础环境,现在已经有很多可用的运行时。可以从

绑定库(Bundled libraries)

如果应用程序需要运行时里面不存在的某些依赖项,那么它们可以与应用程序本身捆绑在一起。这为应用程序开发人员提供了他们使用的依赖关系的灵活性,包括使用:

  • 在分发或运行时中不可用的库;
  • 来自发行版或运行时库的不同版本的库
  • 库的补丁版本

沙盒

应用flatpak,每个应用程序是建立和运行在一个叫做sandbox的孤立的环境。每一个沙盒包含一个应用和他的运行时。默认情况下,应用程序只能访问其沙箱的内容。访问用户文件,网络,图形插座,总线和设备上的子系统必须明确授予。无法访问其他事物,比如其他进程。
根据需要,沙盒内的一些资源需要暴露在外,以供主机系统使用。这些被称为“导出”,因为它们是从沙盒中导出的文件,并包含应用程序的.desktop文件和图标等内容。

Portals

Portals是应用程序可以通过它与沙箱内的主机环境进行交互的一种机制。他们能够与数据,文件和服务进行交互,而无需添加沙盒权限。

可以通过功能示例包括通过文件选择器对话框打开文件或打印实现Portals访问。接口工具包可以为门户实现透明支持,因此对沙箱外资源的访问将安全使用并开箱即用。

有关portals的更多信息可以在沙箱权限中找到。

存储库

通常使用存储库存储和发布flatpak应用程序和运行时,这些存储库的行为与git存储库非常相似。flatpak存储库可以包含单个对象或多个对象,并且每个对象都是版本控制的,允许升级甚至降级。

每个使用flatpak的系统都可以配置为访问任意数量的远程存储库。一旦系统被配置为访问“远程”,远程存储库的内容可以被检查和搜索,并且可以将其用作应用程序和运行时的源。

当执行更新时,将从相关remote下载已安装应用程序和运行时的新版本。就像使用git一样,只下载版本之间的差异,这使得该过程非常高效。

在hood下

flatpak使用一些预先存在的技术。通常没有必要为了使用flatpak熟悉这些,虽然在某些情况下它可能是有用的。他们包括:

  • 项目原子( Project Atomic)bubblewrap实用程序,它允许非特权用户使用以下内核特性设置和运行容器:
    • Cgroups
    • Namespaces
    • Bind mounts
    • Seccomp rules
  • systemd为沙箱设置cgroups
  • D-Bus是一种为应用程序提供高级API的完善方法
  • 来自开放容器倡议的OCI格式,作为单一文件包的便捷传输格式
  • 用于版本控制和分配文件系统树的OSTree系统
  • Appstream元数据,允许flatpak应用程序在软件中心应用程序中很好地显示
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值