После полутора лет разработки опубликована новая стабильная ветка инструментария Flatpak 1.18, предоставляющего систему для сборки самодостаточных пакетов, не привязанных к конкретным дистрибутивам Linux ва дар як контейнери махсус иҷро карда мешавад, ки барномаро аз боқимондаи система ҷудо мекунад. Дастгирии иҷрои бастаҳои Flatpak барои Fedora пешниҳод карда мешавад, CentOS, Debian, Arch Linux, Генту, Linux Пудинагӣ, Алт Linux и Ubuntu. Пакеты с Flatpak включены в репозиторий Fedora и поддерживаются в штатных программах управления приложениями GNOME и KDE.
Навовариҳои асосӣ дар филиали Flatpak 1.18:
- Реализована поддержка условных полномочий (conditional permission), позволяющих при запросе полномочий проверить наличие определённых возможностей в системе или в runtime. Например, при необходимости получения доступа к устройству ввода вместо «—device=all» можно запросить полномочие «—device-if=all:!has-input-device —device=input», которое предоставит доступ только к устройствам ввода или откатится на доступ ко всем устройствам если выборочное предоставление доступа не поддерживается в runtime. Аналогично можно запросить доступ к USB-устройвствам («has-usb-device» и «has-usb-portal») или совместно используемым подсистемам.
- Разрешён доступ к устройству /dev/ntsync для обращения к
модулю ядра NTSYNC, реализующему набор примитивов для синхронизации, применяемых в ядре Windows NT и позволяющих существенно поднять производительность Windows-бозиҳое, ки бо истифода аз Wine оғоз шудаанд. - Для GPU Intel Xe включена поддержка API VA-API для аппаратного ускорения декодирования видео.
- Реализована возможность доступа к устройству /dev/kfd (Kernel Fusion Driver) с использованием полномочий, предоставляемых для DRI-устройств. Драйвер kfd реализует интерфейс для прямого выполнения вычислений на GPU AMD из приложений, использующих AMD ROCm, HIP и OpenCL.
- Добавлена поддержка использования опций командой строки для проброса доступа к каталогам в изолированные приложения.
- Добавлена поддержка каталога «preinstall.d», определяющего список предустанавливаемых Flatpak-приложений (для включения Flatpak-приложений в состав операционной системы).
- Разрешена прямая установка приложений из образов контейнеров в формате OCI, которые могут загружаться из собственных OCI-репозиториев и локальных архивов.
- В команду «flatpak install —from» добавлена поддержка URI «flatpak+https://».
- В команду «flatpak run» добавлена опция «—clear-env» для очистки переменных окружения перед запуском приложения.
- Предоставлена возможность экспорта корневого каталога хост-окружения в изолированное окружение приложения с доступом через каталог /run/host/root.
- Добавлена возможность вывода результата выполнения команд в формате JSON.
- Усилена изоляция сборочного окружения — команда «flatpak build» теперь не предоставляет по умолчанию доступ к хосту.
- Добавлена команда «reinstall» для переустановки зависимостей (bundle).
- Настройки D-Bus по умолчанию перенесены из каталога /etc в /usr.
- Сокращено время запуска при использовании командного интерпретатора fish.
- В libflatpak добавлена функция для получения информации о времени создания конфигурации, что позволяет приложениям, таким как GNOME Software, определить, что прокэшированные ими данные требуют обновления.
- Удалена сборочная опция http_backend, вместо libsoup2 для загрузки по HTTP/HTTPS задействована библиотека libcurl.
- По умолчанию включено использование escape-последовательностей для индикации прогресса выполнения операции.
- Разрешено передавать права доступа к устройствам во вложенные sandbox-окружения, созданные через порталы Flatpak.
- Для приложений, поставляемых в форме OCI-образов, реализован механизм «extra-data», например, позволяющий организовать воспроизведение видео h.265 во Flatpak-пакетах Fedora Linux.
- Добавлена поддержка сжатия зависимостей (OCI bundle) с использованием алгоритма zstd, более эффективно сжимающего данные. По умолчанию для сжатия продолжает использоваться gzip, обеспечивающий максимальную совместимость.
Flatpak упрощает распространение программ, не входящих в штатные репозитории дистрибутивов, за счёт подготовки одного универсального контейнера, избавляющего разработчиков программ от необходимости формировать отдельные сборки для каждого дистрибутива. Пользователям, заботящимся о безопасности, Flatpak даёт возможность выполнить вызывающее сомнение приложение в контейнере, предоставив выборочный доступ только к необходимым сетевым функциям и файлам пользователя. Пользователям, интересующимся новинками, Flatpak позволяет установить самые свежие тестовые и стабильные выпуски приложений без необходимости внесения изменений в систему. Например, Flatpak-пакеты собираются для LibreOffice, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Telegram Desktop, Android Студия ва ғайра
Барои кам кардани андоза, ба баста танҳо вобастагиҳои мушаххаси барнома дохил карда мешаванд. Китобхонаҳои асосии системавӣ ва графикӣ (китобхонаҳои GTK, Qt, GNOME ва KDE ва ғ.) дар шакли муҳитҳои стандартии вақти корӣ васлшаванда таъмин карда мешаванд. Тафовути калидии Flatpak ва Snap дар он аст, ки Snap ҷузъҳои муҳити асосии система ва изолятсияро дар асоси филтр кардани зангҳои система истифода мебарад, дар ҳоле ки Flatpak як контейнери ҷудогона аз система эҷод мекунад ва бо маҷмӯаҳои вақти корӣ кор мекунад ва на бастаҳоро ҳамчун вобастагӣ, балки стандартӣ таъмин мекунад. муҳити система (масалан, ҳамаи китобхонаҳое, ки барои кори барномаҳои GNOME ё KDE заруранд).
Илова ба муҳити стандартии система (вақти кор), ки тавассути анбори махсус насб карда шудааст, вобастагии иловагӣ (баста) барои кори барнома зарур аст. Дар маҷмӯъ, "вақти кор" ва "баҷча" мундариҷаи контейнерро ташкил медиҳанд, дар ҳоле ки "вақти корӣ" алоҳида насб карда мешавад ва якбора ба якчанд контейнер пайваст карда мешавад, ки ба шумо имкон медиҳад, ки аз такрори файлҳои системаи барои контейнерҳо умумӣ канорагирӣ кунед.
Як система метавонад якчанд "вақти кор"-и гуногун насб карда шавад (GNOME, KDE) ё якчанд версияи ҳамон "вақти кор" (GNOME 50, GNOME 49). Контейнер бо замима ҳамчун вобастагӣ ҳатмиро танҳо ба вақти муайяни иҷро истифода мебарад, бе назардошти бастаҳои инфиродӣ, ки вақти интихобшударо ташкил медиҳанд. Ҳама унсурҳои гумшуда мустақиман бо барнома баста мешаванд. Ҳангоми сохтани контейнер, мундариҷаи "вақти корӣ" ҳамчун қисмати /usr ва "баста" дар директорияи /app насб карда мешавад.
Контейнерҳои корӣ ва барномаҳо бо истифода аз технологияи OSTree сохта шудаанд, ки дар он тасвир аз анбори Git ба таври атомӣ нав карда мешавад, ки имкон медиҳад усулҳои идоракунии версия ба ҷузъҳои тақсимот татбиқ карда шаванд (масалан, шумо метавонед зуд системаро ба ҳолати қаблӣ баргардонед. давлат). Бастаҳои RPM бо истифода аз қабати rpm-ostree ба анбори OSTree тарҷума карда мешаванд.
Насбкунии интихобӣ ва навсозии бастаҳо дар муҳити корӣ дастгирӣ намешавад - система на дар сатҳи ҷузъҳои инфиродӣ навсозӣ мешавад, балки дар маҷмӯъ ҳолати худро ба таври атомӣ тағир медиҳад. Воситаҳоро барои тадриҷан татбиқ кардани навсозиҳо таъмин намуда, зарурати пурра иваз кардани тасвирро бо ҳар як навсозӣ аз байн мебарад.
Формируемое изолированное окружение не зависит от используемого дистрибутива и при надлежащих настройках пакета не имеет доступа к файлам и процессам пользователя или основной системы, а также не может напрямую обращаться к оборудованию, за исключением вывода через DRI. Вывод графики и организация ввода реализованы при помощи протокола Wayland или через проброс сокета X11. Взаимодействие с внешней средой построено через систему обмена сообщениями DBus и специальный API Portals.
Барои изолятсия, қабати Bubblewrap ва анъанавӣ Linux технологияҳои виртуализатсияи контейнерӣ, ки ба истифодаи гурӯҳҳои c, фазоҳои ном, Seccomp ва SE асос ёфтаандLinux. При создании пакета изоляция может быть отключена, чем пользуются разработчики некоторых пакетов для получения полного доступа к ФС и всем устройствам в системе.
Манбаъ: opennet.ru
