Flatpak 1.8.0 独立包系统发布

已发表 工具包的新稳定分支 平板包装 1.8,它提供了一个用于构建独立包的系统,这些包不依赖于特定的 Linux 发行版,并在将应用程序与系统其余部分隔离的特殊容器中运行。 Arch Linux 提供了对运行 Flatpak 软件包的支持, CentOS的、Debian、Fedora、Gentoo、Mageia、Linux Mint 和 Ubuntu。 Flatpak 软件包包含在 Fedora 存储库中,并受到本机 GNOME 应用程序管理器的支持。

钥匙 创新 在 Flatpak 1.8 分支中:

  • P2P 模式下安装的实现已得到简化(允许您通过中间节点或驱动器为没有网络连接的系统组织应用程序和运行时集的加载)。 已停止支持通过本地网络上的中间主机进行安装。 默认情况下,禁用本地 USB 驱动器上存储库的自动旁加载。 要启用中间本地存储库,您必须通过从 /var/lib/flatpak/sideload-repos 或创建符号链接来配置存储库
    /run/flatpak/sideload-repos. 这一变化简化了P2P模式的内部实现并提高了其效率。

  • 添加了可选的 systemd 单元以自动检测连接的外部 USB 驱动器上的其他存储库。
  • 对于有权访问文件系统的应用程序,主机环境的 /lib 目录将转发到 /run/host/lib。
  • 添加了新的 FS 访问权限 - “host-etc”和“host-os”,允许访问 /etc 和 /usr 系统目录。
  • 为了生成更高效的文件解析代码,使用了 ostreee 的 GVariant 变式模式编译器.
  • 配置构建 crypt 提供了无需构建即可构建的能力
    库系统;

  • 启用以只读模式安装 Journal 套接字。
  • 添加了对将目录导出到文档导出的支持。
  • 允许能够访问 Pulseaudio 的应用程序直接访问 ALSA 音频设备。
  • 在 API Flatpak交易 添加了“安装验证器”信号,客户端可以使用该信号来安装完成交易所需的验证器。
  • 允许使用主机系统中基于 /etc/localtime 的时区信息,这解决了某些应用程序中与时区相关的问题。
  • 停止从 gdm 安装 env.d 文件,因为 systemd 生成器更适合此任务。
  • create-usb 实用程序默认启用部分提交导出。
  • 已提供 sysusers.d 文件来通过 systemd 创建必要的用户。
  • “-[no-]follow-redirect”选项已添加到“flatpak Remote-add”和“flatpak修改”命令中,以禁用/启用到另一个存储库的重定向。
  • 进入系统
    门户网站 添加了 Spawn API 以获取正在运行的应用程序的真实进程 ID (PID)。

  • 所有 OCI(开放容器倡议)存储库均已转换为使用 flatpak-oci-authenticator 验证器。
  • 在“flatpak remote-info”和“flatpak update”命令中添加了“--commit=”选项,以设置 OCI 存储库的特定版本。
  • 添加了对 OCI 存储库增量更新的初始支持。
  • 添加了“flatpak update”命令,它是“flatpak update”命令的别名。
  • 为 Fish 命令 shell 实现了输入完成脚本。

让我们提醒您,Flatpak 使应用程序开发人员可以通过以下方式简化未包含在标准分发存储库中的程序的分发: 训练 一个通用容器,无需为每个发行版创建单独的程序集。 对于注重安全的用户,Flatpak 允许您在容器中运行有问题的应用程序,仅提供对与该应用程序关联的网络功能和用户文件的访问。 对于对新产品感兴趣的用户,Flatpak 允许您安装最新的测试版本和稳定版本的应用程序,而无需对系统进行更改。 例如,目前Flatpak包已经 要去 适用于 LibreOffice、Midori、GIMP、Inkscape、Kdenlive、Steam、0 AD、Visual Studio Code、VLC、Slack、Skype、Telegram Desktop、Android Studio 等。

为了减少包大小,它仅包含应用程序特定的依赖项,基本系统和图形库(Gtk+、Qt、GNOME 和 KDE 库等)被设计为插件标准运行时环境。 Flatpak 和 Snap 之间的主要区别在于,Snap 使用主系统环境的组件并基于过滤系统调用进行隔离,而 Flatpak 创建一个与系统分离的容器并使用大型运行时集进行操作,提供的不是包作为依赖项,而是标准一个系统环境(例如,运行 GNOME 或 KDE 程序所需的所有库)。

除了标准的系统环境(运行时)之外,还通过特殊的安装 存储库,提供了应用程序工作所需的附加依赖项(捆绑包)。 总的来说,运行时和捆绑包构成了容器的填充,尽管运行时是单独安装的并同时绑定到多个容器,这使您可以避免重复容器常见的系统文件。 一个系统可以安装多个不同的运行时(GNOME、KDE)或同一运行时的多个版本(GNOME 3.26、GNOME 3.28)。 以应用程序作为依赖项的容器仅使用与特定运行时的绑定,而不考虑构成运行时的各个包。 所有缺失的元素都直接与应用程序打包在一起。 当容器形成时,运行时内容将安装为 /usr 分区,而捆绑包将安装在 /app 目录中。

运行时和应用容器的填充是通过技术形成的 OSTree,其中图像从类似 Git 的存储库自动更新,允许将版本控制方法应用于发行版的组件(例如,您可以快速将系统回滚到以前的状态)。 RPM 包使用特殊层转换到 OSTree 存储库中 rpm-ostree。 不支持在工作环境中单独安装和更新软件包;系统的更新不是在单个组件的级别,而是作为一个整体,原子地改变其状态。 提供增量应用更新的工具,无需每次更新都完全替换映像。

生成的隔离环境完全独立于所使用的发行版,并且在正确的软件包设置下,无法访问用户或主系统的文件和进程,无法直接访问设备,除了通过 DRI 输出之外,并且网络子系统。 图形输出和输入组织 实施的 使用 Wayland 协议或通过 X11 套接字转发。 与外部环境的交互基于 DBus 消息系统和特殊的 Portals API。 绝缘用 使用 夹层 泡沫包装 以及基于 cgroup、命名空间、Seccomp 和 SELinux 的传统 Linux 容器虚拟化技术。 PulseAudio用于输出声音。

来源: opennet.ru

添加评论