После полутора лет разработки опубликована новая стабильная ветка инструментария Flatpak 1.18, предоставляющего систему для сборки самодостаточных пакетов, не привязанных к конкретным дистрибутивам Linux און אויסגעפירט אין א ספעציעלן קאנטעינער וואס אפגעזונדערט די אפליקאציע פון די רעשט פון די סיסטעם. שטיצע פארן לויפן פלעטפאק פעקלעך איז צוגעשטעלט פאר פעדארא, CentOS, Debian, אַרטש Linux, דזשענטו, Linux מינץ, אַלט Linux и Ubuntuפלאַטפּאַק פּאַקאַדזשאַז זענען אַרייַנגערעכנט אין די פעדאָראַ ריפּאַזאַטאָרי און ווערן געשטיצט אין די נאָרמאַל 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-שפּילן לאָנטשט ניצנדיק וויין. - Для 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). א קאַנטיינער מיט אַ אַפּלאַקיישאַן ווי אַ דעפּענדענסי ניצט אַ ביינדינג בלויז צו אַ ספּעציפיש רונטימע, אָן גענומען אין חשבון די יחיד פּאַקאַדזשאַז וואָס פאָרעם די אויסגעקליבן רונטימע. אַלע פעלנדיק עלעמענטן זענען פּאַקידזשד גלייַך מיט די אַפּלאַקיישאַן. ווען קריייטינג אַ קאַנטיינער, די אינהאַלט פון "רונטימע" איז מאָונטעד ווי די / וסר צעטיילונג, און "בונדלע" איז מאָונטעד אין די / אַפּ וועגווייַזער.
די רונטימע און אַפּלאַקיישאַן קאַנטיינערז זענען געבויט מיט OSTree טעכנאָלאָגיע, אין וואָס די בילד איז אַטאָמישע דערהייַנטיקט פֿון אַ גיט-ווי ריפּאַזאַטאָרי, וואָס אַלאַוז ווערסיע קאָנטראָל מעטהאָדס צו זיין געווענדט צו פאַרשפּרייטונג קאַמפּאָונאַנץ (למשל, איר קענען געשווינד צוריק די סיסטעם צו אַ פריערדיקן. שטאַט). רפּם פּאַקאַדזשאַז זענען איבערגעזעצט אין די OSTree ריפּאַזאַטאָרי ניצן די רפּם-אָסטרעע שיכטע.
סעלעקטיוו ייַנמאָנטירונג און אַפּדייטינג פּאַקאַדזשאַז אין די אַרבעט סוויווע איז נישט געשטיצט - די סיסטעם איז דערהייַנטיקט ניט אויף דער מדרגה פון יחיד קאַמפּאָונאַנץ, אָבער ווי אַ גאַנץ, אַטאָמישע טשאַנגינג זייַן שטאַט. פּראָווידעס מכשירים צו צולייגן דערהייַנטיקונגען ינקראַמענטאַלי, ילימאַנייטינג די נויט צו גאָר פאַרבייַטן די בילד מיט יעדער דערהייַנטיקן.
Формируемое изолированное окружение не зависит от используемого дистрибутива и при надлежащих настройках пакета не имеет доступа к файлам и процессам пользователя или основной системы, а также не может напрямую обращаться к оборудованию, за исключением вывода через DRI. Вывод графики и организация ввода реализованы при помощи протокола Wayland или через проброс сокета X11. Взаимодействие с внешней средой построено через систему обмена сообщениями DBus и специальный API Portals.
פֿאַר איזאָלאַציע, אַ באַבל-ראַפּ שיכט און טראַדיציאָנעל Linux קאנטעינער ווירטואַליזאַציע טעכנאָלאָגיעס באַזירט אויף דער נוצן פון cgroups, namespaces, Seccomp און SELinux. При создании пакета изоляция может быть отключена, чем пользуются разработчики некоторых пакетов для получения полного доступа к ФС и всем устройствам в системе.
מקור: opennet.ru
