إصدار نظام الحزمة المستقلة Flatpak 1.18.0

После полутора лет разработки опубликована новая стабильная ветка инструментария Flatpak 1.18, предоставляющего систему для сборки самодостаточных пакетов, не привязанных к конкретным дистрибутивам Linux ويتم تشغيلها في حاوية خاصة تعزل التطبيق عن باقي النظام. ويتوفر دعم تشغيل حزم Flatpak لنظام Fedora. CentOS, Debian، آرتش 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 50، GNOME 49). تستخدم الحاوية التي تحتوي على تطبيق كتبعية ربطًا بوقت تشغيل محدد فقط، دون مراعاة الحزم الفردية التي تشكل وقت التشغيل المحدد. يتم تجميع كافة العناصر المفقودة مباشرة مع التطبيق. عند إنشاء حاوية، يتم تثبيت محتويات "وقت التشغيل" كقسم /usr، ويتم تثبيت "الحزمة" في دليل /app.

يتم إنشاء حاويات وقت التشغيل والتطبيقات باستخدام تقنية OSTree، حيث يتم تحديث الصورة ذريًا من مستودع يشبه Git، مما يسمح بتطبيق طرق التحكم في الإصدار على مكونات التوزيع (على سبيل المثال، يمكنك إرجاع النظام بسرعة إلى إصدار سابق ولاية). تتم ترجمة حزم RPM إلى مستودع OSTree باستخدام طبقة rpm-ostree.

التثبيت الانتقائي وتحديث الحزم داخل بيئة العمل غير مدعوم - يتم تحديث النظام ليس على مستوى المكونات الفردية، ولكن ككل، مما يؤدي إلى تغيير حالته ذريًا. يوفر أدوات لتطبيق التحديثات بشكل تدريجي، مما يلغي الحاجة إلى استبدال الصورة بالكامل مع كل تحديث.

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

للعزل، طبقة من غلاف الفقاعات والطريقة التقليدية Linux تقنيات المحاكاة الافتراضية للحاويات التي تعتمد على استخدام مجموعات التحكم (cgroups) ومساحات الأسماء وSeccomp وSELinux. При создании пакета изоляция может быть отключена, чем пользуются разработчики некоторых пакетов для получения полного доступа к ФС и всем устройствам в системе.

المصدر: opennet.ru

شراء استضافة موثوقة للمواقع مع حماية DDoS وخوادم VPS VDS 🔥 اشترِ استضافة مواقع ويب موثوقة مع حماية من هجمات DDoS، وخوادم VPS وVDS | ProHoster