Release fan it systeem fan selsstannige pakketten Flatpak 1.14.0

In nije stabile tûke fan 'e Flatpak 1.14 toolkit is publisearre, dy't in systeem leveret foar it bouwen fan selsstannige pakketten dy't net bûn binne oan spesifike Linux-distribúsjes en rinne yn in spesjale kontener dy't de applikaasje isolearret fan 'e rest fan it systeem. Stipe foar it útfieren fan Flatpak-pakketten wurdt levere foar Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux en Ubuntu. Flatpak-pakketten binne opnommen yn it Fedora-repository en wurde stipe troch de native GNOME-applikaasjebehearder.

Wichtige ynnovaasjes yn 'e Flatpak 1.14-tûke:

  • Обеспечено создание каталога для файлов в состоянием (.local/state) и выставление указывающей на этот каталог переменной окружения XDG_STATE_HOME.
  • Добавлены условные проверки вида «have-kernel-module-имя» для определения наличия модулей ядра (универсальный аналог ранее предлагаемой проверке have-intel-gpu, вместо которой теперь можно использовать выражение «have-kernel-module-i915»).
  • Реализована команда «flatpak document-unexport —doc-id=…».
  • Обеспечен экспорт метаданных Appstream для использования в основном окружении.
  • Добавлены правила автодополнения команд flatpak для командной оболочки Fish
  • Разрешён сетевой доступ к сервисам X11 и PulseAudio (при добавлении соответствующих настроек).
  • Основная ветка в Git-репозитории переименована с «master» на «main», так как слово «master» считается последнее время неполиткорректным.
  • Обеспечена перезапись скриптов запуска в случае переименования приложения.
  • В команду install добавлены опции «—include-sdk» и «—include-debug» для установки SDK и файлов debuginfo.
  • В файлы flatpakref и flatpakrepo добавлена поддержка параметра «DeploySideloadCollectionID», при установке которого идентификатор коллекции будет выставлен во время добавления удалённого репозитория, а не после загрузки метаданных.
  • Разрешено создание вложенных sandbox-окружений для обработчиков в сеансах с отдельными именами MPRIS (Media Player Remote Interfacing Specification).
  • В утилитах командной строки обеспечен вывод сведений об использовании устаревших runtime-расширений.
  • В команде uninstall реализован запрос подтверждения перед удалением runtime или runtime-расширений, которые ещё используются.
  • В команды подобные «flatpak run» добавлена поддержка опции «—socket=gpg-agent».
  • В libostree устранена уязвимость, потенциально позволяющая пользователю удалить произвольные файлы в системе через манипуляции с обработчиком flatpak-system-helper (отправке запроса на удаление со специально оформленным именем ветки). Проблема проявляется только в старых версиях Flatpak и libostree, выпущенных до 2018 года (< 0.10.2), и не затрагивает актуальные выпуски.

Lit ús jo herinnerje dat Flatpak applikaasje-ûntwikkelders makket om de ferdieling fan har programma's te ferienfâldigjen dy't net binne opnommen yn 'e standert distribúsjebewarplakken troch ien universele kontener te meitsjen sûnder aparte assemblies foar elke distribúsje te meitsjen. Foar feiligensbewuste brûkers lit Flatpak jo in twifele applikaasje útfiere yn in kontener, wêrtroch tagong allinich tagong jout ta de netwurkfunksjes en brûkersbestannen dy't ferbûn binne mei de applikaasje. Foar brûkers dy't ynteressearre binne yn nije produkten, lit Flatpak jo de lêste test en stabile releases fan applikaasjes ynstallearje sûnder de needsaak om wizigingen oan it systeem te meitsjen. Bygelyks, Flatpak-pakketten binne boud foar LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, ensfh.

Om de pakketgrutte te ferminderjen, befettet it allinich applikaasje-spesifike ôfhinklikens, en de basissysteem- en grafyske bibleteken (GTK, Qt, GNOME en KDE biblioteken, ensfh.) binne ûntwurpen as plug-in standert runtime omjouwings. It wichtichste ferskil tusken Flatpak en Snap is dat Snap de komponinten fan 'e haadsysteemomjouwing en isolaasje brûkt op basis fan filtersysteemoproppen, wylst Flatpak in kontener apart makket fan it systeem en wurket mei grutte runtime-sets, en leveret gjin pakketten as ôfhinklikens, mar standert ien systeemomjouwing (bygelyks alle bibleteken dy't nedich binne foar de wurking fan GNOME- of KDE-programma's).

Neist de standert systeemomjouwing (runtime), ynstalleare fia in spesjale repository, wurde ekstra ôfhinklikens (bondel) nedich foar de wurking fan 'e applikaasje. Yn totaal foarmje runtime en bondel it ynfoljen fan 'e kontener, nettsjinsteande it feit dat runtime apart is ynstalleare en tagelyk oan ferskate konteners bûn, wêrtroch jo it duplikearjen fan systeembestannen kinne foarkomme dy't mienskiplik binne foar konteners. Ien systeem kin ferskate ferskillende runtimes ynstalleare hawwe (GNOME, KDE) of ferskate ferzjes fan deselde runtime (GNOME 3.40, GNOME 3.42). In kontener mei in applikaasje as ôfhinklikens brûkt in bining allinich foar in spesifike runtime, sûnder rekken te hâlden mei de yndividuele pakketten dy't de runtime foarmje. Alle ûntbrekkende eleminten wurde direkt mei de applikaasje ferpakt. As in kontener wurdt foarme, wurdt de runtime-ynhâld monteare as de / usr-partysje, en de bondel wurdt monteard yn 'e / app-map.

De runtime- en applikaasjekonteners binne boud mei OSTree-technology, wêryn it byld atomysk bywurke wurdt fan in Git-like repository, wêrtroch ferzjekontrôlemetoaden kinne wurde tapast op de distribúsjekomponinten (jo kinne bygelyks it systeem fluch weromdraaie nei in foarige steat). RPM-pakketten wurde oerset yn it OSTree-repository mei in spesjale rpm-ostree-laach. Aparte ynstallaasje en bywurking fan pakketten binnen de wurkomjouwing wurdt net stipe; it systeem wurdt net bywurke op it nivo fan yndividuele komponinten, mar as gehiel, atomysk feroaret syn steat. Biedt ark om updates ynkrementeel oan te passen, elimineert de needsaak om de ôfbylding folslein te ferfangen mei elke update.

De generearre isolearre omjouwing is folslein ûnôfhinklik fan 'e brûkte distribúsje en hat, mei juste ynstellings fan it pakket, gjin tagong ta bestannen en prosessen fan 'e brûker as it haadsysteem, kin net direkt tagong krije ta de apparatuer, mei útsûndering fan útfier fia DRI, en ropt nei it netwurk subsysteem. Grafike útfier en ynfier organisaasje wurde ymplemintearre mei help fan it Wayland protokol of fia X11 socket trochstjoere. Ynteraksje mei de eksterne omjouwing is basearre op it DBus-berjochtensysteem en in spesjale Portals API.

Для изоляции используется прослойка Bubblewrap и традиционные для Linux технологии контейнерной виртуализации, основанные на использовании cgroups, пространств имён (namespaces), Seccomp и SELinux. Для вывода звука применяется PulseAudio. При этом изоляция может быть отключена, чем пользуются разработчики многих популярных пакетов для получения полного доступа к ФС и всем устройствам в системе. Например, с ограниченным режимом изоляции, оставляющим полный доступ к домашнему каталогу, поставляются пакеты GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity и VLC. В случае компрометации пакетов с доступом к домашнему каталогу, несмотря на наличие в описании пакета метки «sandboxed», атакующему для выполнения своего кода достаточно изменить файл ~/.bashrc. Отдельным вопросом является контроль за внесением изменений в пакеты и доверие к сборщикам пакетов, которые часто не связаны с основным проектом или дистрибутивами.

Boarne: opennet.ru

Add a comment