Отличные новости в понедельник, %username%. На днях была опубликована стабильная ветка инструментария 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. Изоляция может быть и отключена, если это необходимо.
Центр управления связью общего пользования (ЦМУ ССОП) Роскомнадзора рекомендовал компаниям из реестра провайдеров ограничить доступ поисковых ботов к информации на российских сайтах.…
Apple возобновила переговоры с OpenAI о возможности внедрения ИИ-технологий в iOS 18, на основе данной операционной системы будут работать новые…
Конкурсный управляющий российской «дочки» Google подготовил 23 иска к участникам рекламного рынка. Общая сумма исков составляет 16 млрд рублей –…
Google завершил обновление основного алгоритма March 2024 Core Update. Раскатка обновлений была завершена 19 апреля, но сообщил об этом поисковик…
У частных продавцов на Авито появилась возможность составлять текст объявлений с помощью нейросети. Новый функционал доступен в категории «Обувь, одежда,…
24 апреля 2024 года в Москве состоялась церемония вручения наград международного конкурса Workspace Digital Awards. В этом году участниками стали…