Значительный выпуск системы самодостаточных пакетов Flatpak 0.6.13

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

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

Несмотря на не привлекающий внимание номер версии, в Flatpak 0.6.13 представлено несколько существенных изменений:

  • Изменён формат определения аргументов командной строки, с целью предоставления возможности обработки в рамках одной операции сразу нескольких приложений. Если ранее в качестве аргументов для команд install, update и uninstall передавался идентификатор приложений и опционально имя ветки, то новый формат подразумевает объединение этих параметров в виде составных аргументов, например «org.my.App/x86_64/stable», «org.my.App/x86_64», «org.my.App//stable» или просто «org.my.App», что позволяет указать сразу несколько таких аргументов в одной командной строке и установить несколько приложений за один раз;
  • Представлен упрощённый вариант определения внешних репозиториев, из которых будут загружаться Flatpak-пакеты с приложениями и runtime. Если раньше требовалось определить параметры репозитория через передачу аргументов в команде «flatpak remote-add», то в новом выпуске параметры репозитория могут быть переданы в формате ».flatpakrepo». Например, для добавления репозитория достаточно указать ссылку на файл с его описанием («flatpak remote-add --from gnome https://sdk.gnome.org/gnome.flatpakrepo»);
  • Добавлена поддержка файлов ».flatpakref», включающих параметры установки приложения. Файлы ».flatpakref» выполняют роль, аналогичную файлам ».flatpakrepo», но содержат информацию не только о репозиториях, но и о приложении. Файл в формате ».flatpakref» удобно использовать для организации быстрой установки программы с сайта. Например, выполнив команду «flatpak install --from https://sdk.gnome.org/gedit.flatpakref» будет загружен пакет с gedit и все необходимые для его работы runtime-наборы;
  • Реализована система автоматического подбора зависимостей. Ранее при работе через интерфейс командной строки пользователь должен был знать какой runtime-набор необходимо установить для приложения (предполагалось, что интерактивная установка зависимостей выполняется в графическом интерфейсе), что приводило к возникновению сложностей (например, после обновления flatpak-пакета gedit с версии 3.20 до 3.22, пользователь должен был догадаться перейти на новую версию runtime). В новой версии в CLI добавлен интерактивный режим подбора и обновления зависимостей (новое поведение отключается опцией »--no-use-for-deps» или через установку параметра «NoDeps=true»):
         $ flatpak update org.gnome.gedit     Looking for updates...     Required runtime for org.gnome.gedit/x86_64/stable   (org.gnome.Platform/x86_64/3.22) is not installed, searching...     Found in remote gnome, do you want to install it? [y/n]: y     Installing: org.gnome.Platform/x86_64/3.22 from gnome     Installing: org.gnome.Platform.Locale/x86_64/3.22 from gnome     Updating: org.gnome.gedit/x86_64/stable from gnome-apps     Updating: org.gnome.gedit.Locale/x86_64/stable from gnome-apps    
  • Для отладочных целей добавлена возможность отдельного развёртывания runtime без приложений. Запустить командную оболочку в пустом окружении, включающем только runtime, можно командой «flatpak run org.gnome.Platform//3.22»;
  • Возможность подключения дополнений из произвольных директорий — в формируемое runtime-окружение теперь можно добавить какие-то дополнительные файлы, без создания для них отдельного runtime. Дополнения создаются в форме подкаталогов в ~/.local/share/flatpak/extension или /var/lib/flatpak/extension. Например, каталог org.freedesktop.Platform.GStreamer.MyPlugins/x86_64/1.4 будет задействован как источник плагинов GStreamer во всех runtime, основанных на freedesktop 1.4;
  • Параметры сборки приложений теперь могут включать ссылки на внешние файлы, которые будут загружены вместе с приложением;
  • В flatpak-builder добавлена поддержка многослойной сборки — приложение может ссылаться на другое приложение, которое будет использовано в качестве базового слоя перед сборкой программы.

© OpenNet