Flatpak 1.10.0

Flatpak — это утилита для развёртывания, управления пакетами и виртуализации для Linux. 

Для работы с Flatpak пакетам возможно использовать как Flathub (репозиторий разработчика), так и сторонние репозитории, что отличается от подхода Snappy. Выполнение приложений происходит в изолированном контейнере. Библиотеки приложений могут находиться в одном пакете вместе с приложением, или же находится в окружениях, общих для нескольких пакетов.

Поддержка выполнения Flatpak-пакетов обеспечена для Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux и Ubuntu. Пакеты с Flatpak включены в репозиторий Fedora и поддерживаются в штатной программе управления приложениями GNOME. 

Обновления в новой версии:

  • Реализована поддержка нового формата репозитория, позволяющего ускорить доставку обновлений и сократить размер загружаемых данных. Репозиторий основывается на технологии OSTree, в которой для идентификации содержимого используется индексный файл, который обновляется при каждом изменении. Размер индексного файла зависит от числа пакетов и поддерживаемых архитектур. Новый формат репозитория подразумевает разделение индексных файлов для разных архитектур, а также применение delta-обновлений для загрузки только частей индекса, изменившихся с прошлой версии репозитория. Применение инкрементальных обновлений позволило в 100 раз сократить трафик и сняло ограничения по поддержке во Flathub дополнительных архитектур. Например, во Flathub общий размер индекса в настоящее время составляет 6.6 МБ (1.8 МБ сжатый), варианта для архитектуры x86-64 - 2.7 МБ (554 КБ сжатый), а при обновлении с прошлой версии требуется загрузка всего 20 КБ.
  • Добавлена новая команда "flatpak pin" для закрепления runtime (не будет удаляться при отсутствии использующих его приложений). По умолчанию закрепление применяется для runtime, установленных явно, а не автоматически загруженных в числе зависимостей при установке приложения.
  • При общем обновлении ("flatpak update") или удалении отдельных приложений обеспечено автоматическое удаление неиспользуемых runtime, которые не закреплены и имеют истекшее время жизни.
  • Улучшено определение похожих путей приложений, например, "/org/gnome/sound-juicer" теперь сопоставляется с "org.gnome.SoundJuicer".
  • Добавлена поддержка нового стандарта на оформление файлов в os-release в контейнерах.
  • Добавлен профиль для tcsh.
  • При поиске зависимостей репозиторий устанавливаемого приложения теперь имеет более высокий приоритет, чем другие репозитории.
  • Повышена эффективность кэширования индекса репозитория в памяти.
  • Запрещено указание "--filesystem=/".
  • Добавлены новые API: flatpak_installation_list_pinned_refs, flatpak_transaction_set_disable_auto_pin, flatpak_transaction_set_include_unused_uninstall_ops, flatpak_transaction_operation_get_subpaths, flatpak_transaction_operation_get_requires_authentication.
  • Обеспечена совместимость с находящимся в разработке GCC 11.
  • Улучшено определение сокетов PulseAudio в не типовых конфигурациях.
  • В sandbox-окружениях, в которых разрешён доступ к сети, открыт доступ к сокетам systemd-resolved, а также разрешено выполнение команд "--unset-env" и "--env=FOO=" для удаления или присвоения пустого значения переменным окружения.
  • При обновлении теперь вначале устанавливается новая версия приложения и только потом удаляется старая, т.е. сбой при установке теперь не приводит к пропаданию приложения.
  • Пользователю root разрешено обходить ограничения родительского контроля.

Для изоляции используется прослойка Bubblewrap и традиционные для Linux технологии контейнерной виртуализации, основанные на использовании cgroups, пространств имён (namespaces), Seccomp и SELinux.