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

20 августа 2018 года

Wikinews-logo-ru.svg

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

Ключевые новшества Flatpak 1.0:

  • Добавлена возможность пометки пакетов устаревшими. Центры установки приложения и дистрибутивы могут использовать данные метки для вывода предупреждения в случае установки устаревшей версии приложения;
  • Реализована система запроса подтверждения пользователем полномочий, необходимых для работы приложения. Подтверждение запрашивается во время установки приложения или при обновлении, если в обновлении расширен список полномочий;
  • Добавлен новый портал (порталы применяются для организации доступа к ресурсам вне контейнера), позволяющий приложению создавать sandbox-окружения и перезапускать самого себя. Данные возможности могут оказаться полезными для дополнительной изоляции отдельных частей программы и для предоставления приложению прав для перезапуска после обновления версии;
  • Добавлена новая утилита flatpak-spawn для запуска команд на стороне хоста (если это позволяют предоставленные приложению полномочия) и создания новых изолированных окружений. Работа flatpak-spawn осуществляется через API Portals;
  • Для приложений предоставлена возможность экспорта сервисов D-Bus для всех имён D-Bus, к которым приложению предоставлен доступ через систему привилегий (ранее доступ ограничивался идентификатором приложения);
  • Обновлена поддержка окружений в формате OCI (Open Container Initiative): актуализирована поддержка спецификаций и реализовано распространение метаданных AppData через репозитории OCI;
  • Добавлена возможность предоставления доступа приложений к TLS-сертификатам хоста при помощи p11-kit-server;
  • Добавлена возможность запроса приложением доступа к SSH-агенту хоста для безопасного подключения по SSH к серверам и Git-репозиториям;
  • Добавлено новое полномочие, позволяющее приложению получить доступ к устройствам Bluetooth;
  • Добавлено новое полномочие fallback-x11, открывающее доступ к X11 только при наличии у пользователя активного сеанса на базе X11. При поддержке приложением как Wayland, так и X11, данное полномочие может применяться для блокирования доступа к ресурсам через X11 при использовании Wayland, но с сохранением доступа к данным ресурсам при использовании X11;
  • Включена по умолчанию и теперь поддерживается во всех bundle-пакетах возможность установки в режиме P2P (через USB-накопители или по локальной сети);
  • Проведена внутренняя реорганизация кода, выполнена оптимизация производительности и повышена стабильность работы;
  • Снят признак экспериментальной разработки с сервиса Flathub с реализацией хранилища приложений в формате Flatpak, сочетающего функции репозитория пакетов и сайта для навигации по коллекции приложений;
  • Подготовлен новый значительный релиз базовой runtime-платформы Freedesktop, собранной с использованием новой сборочной системы BuildStream;
  • Добавлены новые команды:
  • "repair" - выполняет поиск ошибок в установленных пакетах и в случае выявления ошибок переустанавливает проблемные объекты;
  • "uninstall --unused" - автоматически удаляет неиспользуемые runtime и расширения;
  • "permission-*" - команды для взаимодействия с правами доступа;
  • "create-usb" позволяет подготовить на локальном носителе репозиторий для использования в качестве источника обновлений;
  • В команду "info" добавлены опции --show-permissions,

--file-access, --show-location, --show-runtime и --show-sdk.

Напомним, что разработчикам приложений Flatpak даёт возможность упростить распространение своих программ, не входящих в штатные репозитории дистрибутивов, за счет подготовки одного универсального контейнера без формирования отдельных сборок для каждого дистрибутива. Для пользователей, заботящихся о безопасности, Flatpak позволяет выполнить вызывающее сомнение приложение в контейнере, предоставив доступ только к сетевым функциям и файлам пользователя, связанным с приложением. Для пользователей, интересующихся новинками, Flatpak позволяет установить самые свежие тестовые и стабильные выпуски приложений, без необходимости внесения изменений в систему. Например, в настоящее время Flatpak-пакеты уже собираются для LibreOffice, Firefox, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., ночных сборок различных проектов.

Для уменьшения размера пакета, он включает лишь специфичные для приложения зависимости, а базовые системные и графические библиотеки (Gtk+, Qt, библиотеки GNOME и KDE и т.п.) оформлены в виде подключаемых типовых runtime-окружений. Ключевое отличие Flatpak от Snap заключается в том, что Snap использует компоненты окружения основной системы и изоляцию на основе фильтрации системных вызовов, в то время как Flatpak создаёт отдельный от системы контейнер и оперирует крупными runtime-наборами, предоставляя в качестве зависимостей не пакеты, а типовые системные окружения (например, все библиотеки, необходимые для работы программ GNOME или KDE).

Помимо типового системного окружения (runtime), устанавливаемого через специальный репозиторий, поставляются дополнительные зависимости (bundle), требуемые для работы приложения. В сумме runtime и bundle образуют начинку контейнера, при том, что runtime устанавливается отдельно и привязывается сразу к нескольким контейнерам, что позволяет обойтись без дублирования общих для контейнеров системных файлов. В одной системе может быть установлено несколько разных runtime (GNOME, KDE) или несколько версий одного runtime (GNOME 3.26, GNOME 3.28). Контейнер с приложением в качестве зависимости использует привязку только к определённому 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.

 

ИсточникиПравить


Эта статья содержит материалы из статьи «Релиз системы самодостаточных пакетов Flatpak 1.0», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
 

Комментарии:Релиз системы самодостаточных пакетов Flatpak 1.0