- PVSM.RU - https://www.pvsm.ru -
Отличные новости в понедельник, %username%. На днях была опубликована [1] стабильная ветка инструментария Flatpak 1.10. Она предназначена для сборки самодостаточных пакетов, которые не привязаны к конкретным дистрибутивам Linux и выполняются в специальном контейнере, изолирующем приложение от системы.
Flatpack-пакеты гарантированно работают для Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux и Ubuntu. Они также входят в репозиторий Fedora и поддерживаются штатным софтом управления приложениями GNOME. Под катом — подробнее о новинке и ее возможностях.
Этот инструментарий дает возможность разработчикам упростить распространение собственных программ, которые не входят в штатные репозитории дистрибутивов. Как это реализовано? Готовится один универсальный контейнер без формирования отдельных сборок для каждого дистрибутива.
Инструментарий обеспечивает и высокий уровень информационной безопасности, позволяя выполнить сомнительное приложение в изолированном контейнере. В этом случае доступ предоставляется лишь для сетевых функций и файлов пользователя, которые связаны с приложением. Плюс ко всему, с Flatpak можно устанавливать самые свежие выпуски приложений без необходимости вносить изменения в систему. Так, Flatpak-пакеты готовятся для LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio и десятков других приложений.
Чтобы снизить размер пакета, разработчики включили лишь специфичные для приложения зависимости. А вот все основные библиотеки оформлены в виде подключаемых runtime-приложений. У Flatpack есть ключевое отличие от Snap — последний использует компоненты окружения системы и изоляцию на основе фильтрации системных вызовов. А вот Flatpack создает отдельный от системы контейнер, оперируя крупными runtime-наборами, так что в качестве зависимостей предоставляются не пакеты, а типовые системные окружения. Это могут быть любые библиотеки, которые нужны для работы программ GNOME/KDE.
Что касается типового системного окружения, то, кроме runtime, устанавливаются еще и дополнительные зависимости, которые нужны для корректной работы приложения. Основное системное окружение и эти зависимости образуют начинку контейнера. Соответственно, runtime устанавливается отдельно и привязывается сразу к нескольким контейнерам. Это дает возможность обойтись без дублирования общих для контейнеров системных файлов.
В одной системе может быть установлено несколько различных runtime или несколько версий одного runtime. Контейнер с приложением в качестве зависимости использует привязку к определенному runtime без учета отдельных пакетов, из которых состоит runtime. Недостающие элементы упаковываются вместе с приложением. При формировании контейнера содержимое runtime монтируется как раздел /usr, а bundle монтируется в директорию /app.
Начинка runtime и контейнеров приложений формируется с использованием технологии OSTree. В этом случае образ обновляется из Git-подобного хранилища. Это сделано для того, чтобы можно было применять методы версионного контроля к компонентам дистрибутива. Например, пользователь может откатить систему к предыдущему состоянию. Стоит выделить и то, что RPM-пакеты транслируются в репозиторий OSTree при помощи специальной прослойки rpm-ostree.
Отдельная установка и обновление пакетов внутри рабочего окружения не поддерживается, так что система обновляется целиком, а не на уровне отдельных компонентов. Есть и средства для инкрементального применения обновлений, что избавляет от необходимости полной замены образа при каждом обновлении.
Изолированное окружение не зависит от используемого дистрибутива. Так что при соответствующих настройках пакета у окружения нет доступа к файлам и процессам пользователя или основной системы. Также окружение не может напрямую обращаться к оборудованию и сетевой подсистеме. Для вывода графики и ввода применяется протокол Wayland и проброс сокета X11. Взаимодействие с внешней средой построено на основе системы обмена сообщениями DBus и специального API Portals.
Для изоляции используется прослойка Bubblewrap и стандартные технологии контейнерной виртуализации. Их основа — cgroups, пространства имен (namespaces), Seccomp и SELinux. Звук выводится при помощи PulseAudio. Изоляция может быть и отключена, если это необходимо.
Автор: Seleditor
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/linux/360783
Ссылки в тексте:
[1] опубликована: https://lists.freedesktop.org/archives/flatpak/2021-January/002085.html
[2] Добавлена: https://www.opennet.ru/opennews/art.shtml?num=54412
[3] Источник: https://habr.com/ru/post/537864/?utm_source=habrahabr&utm_medium=rss&utm_campaign=537864
Нажмите здесь для печати.