Flatpak 1.18.0 ինքնաբավ փաթեթների համակարգի թողարկում

После полутора лет разработки опубликована новая стабильная ветка инструментария Flatpak 1.18, предоставляющего систему для сборки самодостаточных пакетов, не привязанных к конкретным дистрибутивам Linux և կատարվում է հատուկ կոնտեյների մեջ, որը մեկուսացնում է ծրագիրը համակարգի մնացած մասից: Fedora-ի համար տրամադրվում է Flatpak փաթեթների գործարկման աջակցություն, CentOS, Debian, Արք Linux, Ջենթու, Linux Մենյու, Ալտ Linux и UbuntuFlatpak փաթեթները ներառված են 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 ծրագրերի գործարկման համար):

Ի լրումն ստանդարտ համակարգի միջավայրի (աշխատանքի), որը տեղադրված է հատուկ պահեստի միջոցով, տրամադրվում են հավելվածի շահագործման համար անհրաժեշտ լրացուցիչ կախվածություններ (փաթեթ): Ընդհանուր առմամբ, «runtime»-ը և «bundle»-ը կազմում են կոնտեյների բովանդակությունը, մինչդեռ «runtime»-ը տեղադրվում է առանձին և կապված է միանգամից մի քանի կոնտեյների հետ, ինչը թույլ է տալիս խուսափել կոնտեյներների համար սովորական համակարգի ֆայլերի կրկնօրինակումից:

Մեկ համակարգում կարող են տեղադրվել մի քանի տարբեր «աշխատաժամանակներ» (GNOME, KDE) կամ նույն «աշխատանքի» մի քանի տարբերակներ (GNOME 50, GNOME 49): Հավելվածը որպես կախվածություն ունեցող կոնտեյները օգտագործում է կապ միայն կոնկրետ գործարկման ժամանակի համար՝ առանց հաշվի առնելու ընտրված գործարկման ժամանակը ձևավորող առանձին փաթեթները։ Բոլոր բացակայող տարրերը փաթեթավորված են անմիջապես հավելվածի հետ: Կոնտեյներ ստեղծելիս «runtime»-ի բովանդակությունը տեղադրվում է որպես /usr միջնորմ, իսկ «bundle»-ը տեղադրվում է /app գրացուցակում:

Գործարկման ժամանակը և հավելվածի բեռնարկղերը կառուցված են OSTree տեխնոլոգիայի միջոցով, որում պատկերը ատոմային կերպով թարմացվում է Git-ի նման պահոցից, որը թույլ է տալիս տարբերակի վերահսկման մեթոդները կիրառել բաշխման բաղադրիչների վրա (օրինակ՝ դուք կարող եք արագ վերադարձնել համակարգը նախկինում: պետություն): RPM փաթեթները թարգմանվում են OSTree պահոց՝ օգտագործելով rpm-ostree շերտը:

Աշխատանքային միջավայրում փաթեթների ընտրովի տեղադրումը և թարմացումը չի ապահովվում. համակարգը թարմացվում է ոչ թե առանձին բաղադրիչների մակարդակով, այլ որպես ամբողջություն՝ ատոմային կերպով փոխելով իր վիճակը: Ապահովում է գործիքներ՝ թարմացումները աստիճանաբար կիրառելու համար՝ վերացնելով յուրաքանչյուր թարմացումով պատկերն ամբողջությամբ փոխարինելու անհրաժեշտությունը:

Формируемое изолированное окружение не зависит от используемого дистрибутива и при надлежащих настройках пакета не имеет доступа к файлам и процессам пользователя или основной системы, а также не может напрямую обращаться к оборудованию, за исключением вывода через DRI. Вывод графики и организация ввода реализованы при помощи протокола Wayland или через проброс сокета X11. Взаимодействие с внешней средой построено через систему обмена сообщениями DBus и специальный API Portals.

Մեկուսացման համար՝ փուչիկավոր փաթեթավորման շերտ և ավանդական Linux կոնտեյներների վիրտուալիզացիայի տեխնոլոգիաներ, որոնք հիմնված են cgroups-ի, անվանատարածքների, Seccomp-ի և SE-ի օգտագործման վրաLinux. При создании пакета изоляция может быть отключена, чем пользуются разработчики некоторых пакетов для получения полного доступа к ФС и всем устройствам в системе.

Source: opennet.ru

Գնեք հուսալի հոստինգ DDoS պաշտպանությամբ կայքերի, VPS VDS սերվերների համար 🔥 Գնեք հուսալի կայքերի հոսթինգ՝ DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster