После полутора лет разработки опубликована новая стабильная ветка инструментария Flatpak 1.18, предоставляющего систему для сборки самодостаточных пакетов, не привязанных к конкретным дистрибутивам Linux mme e kenngwa ka hara setshelo se ikgethang se arolang tshebediso ho sistimi e setseng. Tshehetso ya ho tsamaisa diphutheloana tsa Flatpak e fanwa bakeng sa Fedora, CentOS, Debian, Khoro Linux, Gentoo, Linux Koena, Alt Linux и Ubuntu. Пакеты с Flatpak включены в репозиторий Fedora и поддерживаются в штатных программах управления приложениями GNOME и KDE.
Mekhoa e mecha ea bohlokoa lekaleng la 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-lipapali tse qaliloe ho sebelisoa Veine. - Для 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 Studio, jj.
Ho fokotsa boholo, ho kenyellelitsoe feela ka har'a sephutheloana ho ipapisitsoe le lits'ebetso tse ikhethileng. Sistimi ea mantlha le lilaeborari tsa litšoantšo (GTK, Qt, GNOME le lilaebrari tsa KDE, joalo-joalo) li fanoa ka sebopeho sa maemo a tloaelehileng a nako ea ho sebetsa. Phapang e ka sehloohong pakeng tsa Flatpak le Snap ke hore Snap e sebelisa likarolo tsa tikoloho e kholo ea tsamaiso le ho itšehla thajana ho itšetlehile ka mehala ea tsamaiso ea ho hloekisa, ha Flatpak e etsa setshelo se arohaneng le tsamaiso 'me e sebetsa ka lihlopha tse kholo tsa nako ea ho sebetsa, e sa faneng ka liphutheloana e le ho itšetleha, empa e tloaelehileng. tikoloho (mohlala, lilaebrari tsohle tse hlokahalang bakeng sa ts'ebetso ea mananeo a GNOME kapa KDE).
Ntle le tikoloho e tloaelehileng ea sistimi (nako ea ho sebetsa), e kentsoeng ka polokelo e khethehileng, ho fanoa ka litšepiso tse eketsehileng (sephutheloana) se hlokahalang bakeng sa ts'ebetso ea kopo. Ka kakaretso, "runtime" le "bundle" li theha likahare tsa setshelo, ha "runtime" e kenngoa ka thoko 'me e tlameletsoe lijaneng tse' maloa ka nako e le 'ngoe, e leng se u lumellang ho qoba ho kopitsa lifaele tsa tsamaiso tse tloaelehileng ho lijana.
Sistimi e le 'ngoe e ka ba le "linako" tse fapaneng tse kentsoeng (GNOME, KDE) kapa mefuta e mengata ea "runtime" e tšoanang (GNOME 50, GNOME 49). Sets'oants'o se nang le ts'ebeliso joalo ka boits'oaro se sebelisa se tlamang feela ho nako e itseng ea ho sebetsa, ntle le ho ela hloko liphutheloana tsa motho ka mong tse etsang nako e khethiloeng ea ho sebetsa. Lintho tsohle tse sieo li kentsoe ka kotloloho le ts'ebeliso. Ha u theha setshelo, litaba tsa "runtime" li kenngoa joalo ka karohano ea / usr, mme "bundle" e kentsoe bukeng ea / app.
Lisebelisoa tsa nako ea ho sebetsa le lisebelisoa li hahiloe ho sebelisoa theknoloji ea OSTree, moo setšoantšo se nchafatsoang ka atomo ho tloha polokelong e kang ea Git, e lumellang hore ho sebelisoe mekhoa ea ho laola phetolelo ho likarolo tsa kabo (mohlala, o ka khutlisetsa sistimi kapele ho e fetileng. mmuso). Liphutheloana tsa RPM li fetoleloa sebakeng sa polokelo ea OSTree ho sebelisoa rpm-ostree layer.
Ho khetha le ho nchafatsa liphutheloana ka har'a tikoloho ea ts'ebetso ha ho tšehetsoe - sistimi e nchafatsoa eseng maemong a likarolo tsa motho ka mong, empa ka kakaretso, e fetola boemo ba eona ka atomo. E fana ka lisebelisoa tsa ho sebelisa lintlafatso butle-butle, ho felisa tlhoko ea ho khutlisa setšoantšo ka botlalo ka ntlafatso e ngoe le e ngoe.
Формируемое изолированное окружение не зависит от используемого дистрибутива и при надлежащих настройках пакета не имеет доступа к файлам и процессам пользователя или основной системы, а также не может напрямую обращаться к оборудованию, за исключением вывода через DRI. Вывод графики и организация ввода реализованы при помощи протокола Wayland или через проброс сокета X11. Взаимодействие с внешней средой построено через систему обмена сообщениями DBus и специальный API Portals.
Bakeng sa ho kenya mocheso, lera la Bubblewrap le la setso Linux mahlale a ho etsa hore dikhonteina di be le pono a itshetlehile hodima tshebediso ya di-cgroup, dibaka tsa mabitso, Seccomp le SELinux. При создании пакета изоляция может быть отключена, чем пользуются разработчики некоторых пакетов для получения полного доступа к ФС и всем устройствам в системе.
Source: opennet.ru
