Релиз системы самодостаточных пакетов Flatpak 1.14.0

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
24-Авг-2022 13:49

Опубликована новая стабильная ветка инструментария Flatpak 1.14, который предоставляет систему для сборки самодостаточных пакетов, не привязанных к конкретным дистрибутивам Linux и выполняемых в специальном контейнере, изолирующем приложение от остальной системы. Поддержка выполнения Flatpak-пакетов обеспечена для Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux и Ubuntu. Пакеты с Flatpak включены в репозиторий Fedora и поддерживаются в штатной программе управления приложениями GNOME.
Ключевые новшества в ветке Flatpak 1.14:
  • Обеспечено создание каталога для файлов в состоянием (.local/state) и выставление указывающей на этот каталог переменной окружения XDG_STATE_HOME.
  • Добавлены условные проверки вида "have-kernel-module-имя" для определения наличия модулей ядра (универсальный аналог ранее предлагаемой проверке have-intel-gpu, вместо которой теперь можно использовать выражение "have-kernel-module-i915").
  • Реализована команда "flatpak document-unexport --doc-id=...".
  • Обеспечен экспорт метаданных Appstream для использования в основном окружении.
  • Добавлены правила автодополнения команд flatpak для командной оболочки Fish
  • Разрешён сетевой доступ к сервисам X11 и PulseAudio (при добавлении соответствующих настроек).
  • Основная ветка в Git-репозитории переименована с "master" на "main", так как слово "master" считается последнее время неполиткорректным.
  • Обеспечена перезапись скриптов запуска в случае переименования приложения.
  • В команду install добавлены опции "--include-sdk" и "--include-debug" для установки SDK и файлов debuginfo.
  • В файлы flatpakref и flatpakrepo добавлена поддержка параметра "DeploySideloadCollectionID", при установке которого идентификатор коллекции будет выставлен во время добавления удалённого репозитория, а не после загрузки метаданных.
  • Разрешено создание вложенных sandbox-окружений для обработчиков в сеансах с отдельными именами MPRIS (Media Player Remote Interfacing Specification).
  • В утилитах командной строки обеспечен вывод сведений об использовании устаревших runtime-расширений.
  • В команде uninstall реализован запрос подтверждения перед удалением
    runtime или runtime-расширений, которые ещё используются.
  • В команды подобные "flatpak run" добавлена поддержка опции "--socket=gpg-agent".
  • В libostree устранена уязвимость, потенциально позволяющая пользователю удалить произвольные файлы в системе через манипуляции с обработчиком flatpak-system-helper (отправке запроса на удаление со специально оформленным именем ветки). Проблема проявляется только в старых версиях Flatpak и libostree, выпущенных до 2018 года (< 0.10.2), и не затрагивает актуальные выпуски.
Напомним, что разработчикам приложений Flatpak даёт возможность упростить распространение своих программ, не входящих в штатные репозитории дистрибутивов за счет подготовки одного универсального контейнера без формирования отдельных сборок для каждого дистрибутива. Пользователям, заботящимся о безопасности, Flatpak позволяет выполнить вызывающее сомнение приложение в контейнере, предоставив доступ только к сетевым функциям и файлам пользователя, связанным с приложением. Пользователям, интересующимся новинками, Flatpak позволяет установить самые свежие тестовые и стабильные выпуски приложений без необходимости внесения изменений в систему. Например, Flatpak-пакеты собираются для LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio и т.д.
Для уменьшения размера пакета он включает лишь специфичные для приложения зависимости, а базовые системные и графические библиотеки (GTK, Qt, библиотеки GNOME и KDE и т.п.) оформлены в виде подключаемых типовых runtime-окружений. Ключевое отличие Flatpak от Snap заключается в том, что Snap использует компоненты окружения основной системы и изоляцию на основе фильтрации системных вызовов, в то время как Flatpak создаёт отдельный от системы контейнер и оперирует крупными runtime-наборами, предоставляя в качестве зависимостей не пакеты, а типовые системные окружения (например, все библиотеки, необходимые для работы программ GNOME или KDE).
Помимо типового системного окружения (runtime), устанавливаемого через специальный репозиторий, поставляются дополнительные зависимости (bundle), требуемые для работы приложения. В сумме runtime и bundle образуют начинку контейнера, при том, что runtime устанавливается отдельно и привязывается сразу к нескольким контейнерам, что позволяет обойтись без дублирования общих для контейнеров системных файлов. В одной системе может быть установлено несколько разных runtime (GNOME, KDE) или несколько версий одного runtime (GNOME 3.40, GNOME 3.42). Контейнер с приложением в качестве зависимости использует привязку только к определённому runtime, без учёта отдельных пакетов, из которых состоит runtime. Все недостающие элементы упаковываются непосредственно вместе с приложением. При формировании контейнера содержимое runtime монтируется как раздел /usr, а bundle монтируется в директорию /app.
Начинка runtime и контейнеров приложений формируется с использованием технологии OSTree, при которой образ атомарно обновляется из Git-подобного хранилища, позволяющего применять методы версионного контроля к компонентам дистрибутива (например, можно быстро откатить систему к прошлому состоянию). RPM-пакеты транслируются в репозиторий OSTree при помощи специальной прослойки rpm-ostree. Отдельная установка и обновление пакетов внутри рабочего окружения не поддерживается, система обновляется не на уровне отдельных компонентов, а целиком, атомарно меняя своё состояние. Предоставляются средства для инкрементального применения обновлений, избавляющие от необходимости полной замены образа при каждом обновлении.
Формируемое изолированное окружение полностью независимо от используемого дистрибутива и при надлежащих настройках пакета не имеет доступа к файлам и процессам пользователя или основной системы, не может напрямую обращаться к оборудованию, за исключением вывода через DRI, и обращений к сетевой подсистеме. Вывод графики и организация ввода реализованы при помощи протокола Wayland или через проброс сокета X11. Взаимодействие с внешней средой построено на основе системы обмена сообщениями DBus и специального API Portals.
Для изоляции используется прослойка Bubblewrap и традиционные для Linux технологии контейнерной виртуализации, основанные на использовании cgroups, пространств имён (namespaces), Seccomp и SELinux. Для вывода звука применяется PulseAudio. При этом изоляция может быть отключена, чем пользуются разработчики многих популярных пакетов для получения полного доступа к ФС и всем устройствам в системе. Например, с ограниченным режимом изоляции, оставляющим полный доступ к домашнему каталогу, поставляются пакеты GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity и VLC. В случае компрометации пакетов с доступом к домашнему каталогу, несмотря на наличие в описании пакета метки "sandboxed", атакующему для выполнения своего кода достаточно изменить файл ~/.bashrc. Отдельным вопросом является контроль за внесением изменений в пакеты и доверие к сборщикам пакетов, которые часто не связаны с основным проектом или дистрибутивами.
===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_flatpak
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 09:55
Часовой пояс: UTC + 5