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

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

25 июня 2020 года

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

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

  • Упрощена реализация установки в режиме P2P (позволяет организовать загрузку приложений и runtime-наборов через промежуточные узлы или накопители для систем без сетевого подключения). Прекращена поддержка установки через промежуточные хосты в локальной сети. Отключена по умолчанию автоматическая загрузка репозиториев (sideload), размещённых на локальных USB-накопителях. Для активации промежуточных локальных репозиториев следует настроить репозиторий через создание символической ссылки из /var/lib/flatpak/sideload-repos или/run/flatpak/sideload-repos. Изменение позволило упростить внутреннюю реализацию режима P2P и повысить его эффективность.
  • Добавлен опциональный systemd unit для автоматического определения дополнительных репозиториев на подключённых внешних USB-накопителях.
  • Для приложений, имеющих доступ к файловой системе, обеспечен проброс каталога /lib хост-окружения в /run/host/lib.
  • Добавлены новые полномочия доступа к ФС - "host-etc" и "host-os", позволяющие получить доступ к системным каталогам /etc и /usr.
  • Для генерации более эффективного кода разбора файлов GVariant из ostreee задействован variant-schema-compiler.
  • В сборочном крипте configure предоставлена возможность сборки безlibsystemd;
  • Обеспечено монтирование сокетов Journal в режиме только для чтения.
  • В document-export добавлена поддержка экспорта каталогов.
  • Разрешён прямой доступ к звуковым устройствам ALSA для приложений, имеющих доступ к Pulseaudio.
  • В API FlatpakTransaction добавлен сигнал "install-authenticator", который может использоваться клиентами для установки аутентификаторов, необходимых для совершения транзакции.
  • Обеспечено использование данных о часовом поясе на основе /etc/localtime из хост-системы, что решило связанные с часовыми поясами проблемы в некоторых приложениях.
  • Прекращена установка файла env.d из gdm, так как генераторы systemd лучше справляются с этой задачей.
  • В утилите create-usb по умолчанию включён экспорт частичных коммитов.
  • Обеспечена поставка файла sysusers.d для создания через systemd необходимых пользователей.
  • В команды "flatpak remote-add" и "flatpak modify" добавлена опция "--[no-]follow-redirect" для запрета/разрешения перенаправления на другой репозиторий.
  • В систему порталов добавлен API Spawn для получения реального идентификатора процесса (PID) запущенного приложения.
  • Все репозитории OCI (Open Container Initiative) переведены на использование аутентификатора flatpak-oci-authenticator.
  • В команды "flatpak remote-info" и "flatpak update" добавлена опция "--commit=" для задания определённой версии репозиториев OCI.
  • Добавлена начальная поддержка delta-обновлений для репозиториев OCI.
  • Добавлена команда "flatpak upgrade", которая является псевдонимом команды "flatpak update".
  • Реализованы сценарии дополнения ввода для командной оболочки fish.

Напомним, что разработчикам приложений 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.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.

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

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

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

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