Flatpak 1.18.0 bağımsız paket sisteminin piyasaya sürülmesi

После полутора лет разработки опубликована новая стабильная ветка инструментария Flatpak 1.18, предоставляющего систему для сборки самодостаточных пакетов, не привязанных к конкретным дистрибутивам Linux ve uygulamayı sistemin geri kalanından izole eden özel bir konteyner içinde yürütülür. Fedora için Flatpak paketlerinin çalıştırılması desteği sağlanmaktadır. CentOS, DebianArch LinuxGentoo, Linux Nane, Alternatif Linux и UbuntuFlatpak paketleri Fedora deposuna dahildir ve standart GNOME ve KDE uygulama yönetim programlarında desteklenmektedir.

Flatpak 1.18 dalındaki önemli yenilikler:

  • Реализована поддержка условных полномочий (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 kullanılarak başlatılan oyunlar.
  • Для 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 Stüdyo, vb.

Boyutu küçültmek için pakete yalnızca uygulamaya özel bağımlılıklar dahil edilir. Temel sistem ve grafik kitaplıkları (GTK, Qt, GNOME ve KDE kitaplıkları vb.) eklenti standart çalışma zamanı ortamları biçiminde sağlanır. Flatpak ve Snap arasındaki temel fark, Snap'in ana sistem ortamının bileşenlerini ve sistem çağrılarını filtrelemeye dayalı izolasyonu kullanması, Flatpak ise sistemden ayrı bir konteyner oluşturup büyük çalışma zamanı setleriyle çalışarak paketleri bağımlılık olarak değil standart olarak sunmasıdır. sistem ortamı (örneğin, GNOME veya KDE programlarının çalışması için gerekli tüm kütüphaneler).

Özel bir depo aracılığıyla kurulan standart sistem ortamına (çalışma zamanı) ek olarak, uygulamanın çalışması için gereken ek bağımlılıklar (paket) sağlanır. Toplamda, "çalışma zamanı" ve "paket" kapsayıcının içeriğini oluştururken, "çalışma zamanı" ayrı ayrı kurulur ve aynı anda birkaç kapsayıcıya bağlanır; bu, kapsayıcılarda ortak olan sistem dosyalarının çoğaltılmasını önlemenize olanak tanır.

Bir sistemde birkaç farklı "çalışma zamanı" (GNOME, KDE) veya aynı "çalışma zamanının" birkaç sürümü (GNOME 50, GNOME 49) kurulu olabilir. Bağımlılık olarak bir uygulamaya sahip bir kapsayıcı, seçilen çalışma zamanını oluşturan bireysel paketleri hesaba katmadan yalnızca belirli bir çalışma zamanına yönelik bir bağlama kullanır. Tüm eksik öğeler doğrudan uygulamayla birlikte paketlenir. Bir kapsayıcı oluştururken, "çalışma zamanı" içeriği /usr bölümü olarak, "bundle" ise /app dizinine eklenir.

Çalışma zamanı ve uygulama kapsayıcıları, görüntünün Git benzeri bir depodan atomik olarak güncellendiği ve sürüm kontrol yöntemlerinin dağıtım bileşenlerine uygulanmasına olanak tanıyan OSTree teknolojisi kullanılarak oluşturulur (örneğin, sistemi hızla önceki bir sürüme geri alabilirsiniz). durum). RPM paketleri rpm-ostree katmanı kullanılarak OSTree deposuna çevrilir.

Çalışma ortamında paketlerin seçici kurulumu ve güncellenmesi desteklenmez - sistem, bireysel bileşenler düzeyinde değil, bir bütün olarak durumunu atomik olarak değiştirerek güncellenir. Güncellemelerin aşamalı olarak uygulanmasına yönelik araçlar sağlayarak her güncellemede görüntünün tamamen değiştirilmesi ihtiyacını ortadan kaldırır.

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

Yalıtım için, baloncuklu naylon katman ve geleneksel yöntemler kullanıldı. Linux cgroups, namespaces, Seccomp ve SE kullanımına dayalı konteyner sanallaştırma teknolojileriLinux. При создании пакета изоляция может быть отключена, чем пользуются разработчики некоторых пакетов для получения полного доступа к ФС и всем устройствам в системе.

Kaynak: opennet.ru

DDoS korumalı siteler, VPS VDS sunucuları için güvenilir hosting satın alın 🔥 DDoS korumalı, güvenilir VPS ve VDS sunucu barındırma hizmeti satın alın | ProHoster