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

Материал из Викиновостей, свободного источника новостей

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

Сформирован первый выпуск новой стабильной ветки инструментария 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), устанавливаемого через специальный репозиторий (Архивная копия от 23 января 2018 на Wayback Machine), поставляются дополнительные зависимости (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 (Архивная копия от 5 июля 2015 на Wayback Machine). Отдельная установка и обновление пакетов внутри рабочего окружения не поддерживается, система обновляется не на уровне отдельных компонентов, а целиком, атомарно меняя своё состояние. Предоставляются средства для инкрементального применения обновлений, избавляющие от необходимости полной замены образа при каждом обновлении.

Формируемое изолированное окружение полностью независимо от используемого дистрибутива, не имеет доступа к файлам и процессам пользователя или основной системы, не может напрямую обращаться к оборудованию, за исключением вывода через DRI, и сетевой подсистеме. Вывод графики и организация ввода реализована при помощи протокола Wayland или через проброс сокета X11. Взаимодействие с внешней средой построено на основе системы обмена сообщениями DBus и специального API Portals. Для изоляции используется прослойка Bubblewrap и традиционные для Linux технологии контейнерной виртуализации, основанные на использовании cgroups, пространств имён (namespaces), Seccomp и SELinux. Для вывода звука применяется PulseAudio.

Источники[править]


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

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.