Flatpak 1.14.0 独立包系统发布

Flatpak 1.14 的新稳定分支已经发布,它提供了一个用于构建不依赖于特定发行版的独立软件包的系统。 Linux 它在一个特殊的容器中运行,该容器将应用程序与系统的其他部分隔离。Arch Linux 支持运行 Flatpak 软件包。 Linux, CentOS, DebianFedora、Gentoo、Mageia Linux 薄荷绿,另类 Linux и UbuntuFlatpak 软件包包含在 Fedora 软件仓库中,并受标准 GNOME 应用程序管理器支持。

Flatpak 1.14 分支的主要创新:

  • 可以为状态 (.local/state) 中的文件创建一个目录,并设置指向该目录的 XDG_STATE_HOME 环境变量。
  • 添加了“have-kernel-module-name”形式的条件检查,以确定内核模块是否存在(之前提出的 have-intel-gpu 检查的通用类似物,而不是表达式“have-kernel-module-i915”) ”现在可以使用)。
  • 命令“flatpak document-unexport —doc-id=...”已实施。
  • 提供 Appstream 元数据的导出以供在主环境中使用。
  • 为 Fish shell 添加了 flatpak 命令完成规则
  • 允许对 X11 和 PulseAudio 服务进行网络访问(如果添加了适当的设置)。
  • Git 存储库中的主分支已从“master”重命名为“main”,因为“master”一词最近被认为是政治不正确的。
  • 如果应用程序被重命名,启动脚本现在会被重写。
  • 在安装命令中添加了“--include-sdk”和“--include-debug”选项来安装 SDK 和 debuginfo 文件。
  • 在 flatpakref 和 flatpakrepo 文件中添加了对“DeploySideloadCollectionID”参数的支持。设置后,集合 ID 将在添加远程存储库时设置,而不是在加载元数据后设置。
  • 允许在具有单独 MPRIS(媒体播放器远程接口规范)名称的会话中为处理程序创建嵌套沙箱环境。
  • 命令行实用程序现在提供有关过时运行时扩展的使用信息。
  • 卸载命令会在删除仍在使用的运行时或运行时扩展之前执行确认请求。
  • 为“flatpak run”等命令添加了对“--socket=gpg-agent”选项的支持。
  • libostree 中已修复一个漏洞,该漏洞可能允许用户通过操作 flatpak-system-helper 处理程序(发送具有特殊格式的分支名称的删除请求)来删除系统上的任意文件。 该问题仅出现在 2018 年之前发布的旧版本 Flatpak 和 libostree (< 0.10.2) 中,不会影响当前版本。

提醒一下,Flatpak 允许应用程序开发者简化其程序的分发,这些程序并未包含在标准分发仓库中。Flatpak 通过创建一个通用的容器,无需为每个分发版本单独构建,即可将程序打包成单一的容器。对于注重安全的用户,Flatpak 允许他们在容器中运行一些存在安全隐患的应用程序,并仅授予其访问网络功能和与该应用程序关联的用户文件的权限。对于关注新版本的用户,Flatpak 允许他们在不更改系统的情况下安装应用程序的最新测试版和稳定版。例如,LibreOffice、Midori、GIMP、Inkscape、Kdenlive、Steam、0 AD、Visual Studio Code、VLC、Slack、Skype 和 Telegram Desktop 等软件都已构建成 Flatpak 软件包。 Android 工作室等。

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

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

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

生成的隔离环境完全独立于所使用的发行版,并且在包的正确设置下,无法访问用户或主系统的文件和进程,无法直接访问设备,除了通过DRI输出之外,以及对网络子系统的调用。 图形输出和输入组织是使用 Wayland 协议或通过 X11 套接字转发来实现的。 与外部环境的交互基于 DBus 消息系统和特殊的 Portals API。

为了隔热,可以使用气泡膜层和传统方法 Linux 基于 cgroups、命名空间、Seccomp 和 SE 的容器虚拟化技术LinuxPulseAudio 用于音频输出。沙盒机制可以被禁用,许多流行软件包的开发者正是利用这一点来获取对文件系统和系统中所有设备的完全访问权限。例如,GIMP、VSCodium、PyCharm、Octave、Inkscape、Audacity 和 VLC 都带有受限的沙盒模式,允许完全访问用户主目录。如果能够访问用户主目录的软件包遭到入侵,即使软件包描述中带有“沙盒”标签,攻击者也只需修改 ~/.bashrc 文件即可执行其代码。另一个问题是对软件包变更的控制以及对软件包维护者的信任,因为这些维护者通常与主项目或发行版没有关联。

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster