Flatpak

18.12.2020

Flatpak (ранее известный как xdg-app) — это утилита для развёртывания, управления пакетами и виртуализации для Linux. Предоставляет песочницу, в которой пользователи могут запускать приложения без влияния на основную систему. Приложения, использующие Flatpak, требуют дополнительных разрешений на использование дискового пространства.

Описание

Для работы с Flatpak пакетам возможно использовать как Flathub (репозиторий разработчика), так и сторонние репозитории, что отличается от подхода Snappy.

Выполнение приложений происходит в изолированном контейнере.

Библиотеки приложений могут находиться в одном пакете вместе с приложением, или же находится в окружениях, общих для нескольких пакетов

История

Автором Flatpak является Алекс Ларсон (англ. Alex Larsson), одним из мотиваторов стал klik. Название произошло от соединения GNOME и klik, как это обычно происходило в GNOME-сообществе. Проект утилиты претерпел несколько изменений.

Glick

Изначально идея зародилась в проекте Glick — фреймворк для упаковки (англ. bundling) приложений. Он позиционировался как приложение, позволяющее разработчикам создавать самодостаточные пакеты для своих приложений. Первая публичная версия 0.1 была выпущена в 2007 году. Позже был выпущен последний релиз 0.2, где удалось обойти ограничение fuse на одновременное выполнение 10 программ.

Особенности реализации:

  • для целевой системы не требуется дополнительная среда выполнения: пока fuse правильно работает — программа ничего не требует;
  • приложение, установленное в комплекте не должно быть перемещено, так как Glick использует трюк со ссылкой /proc/self, чтобы найти свои файлы на /proc/self/fd/1023. Это значит, что разработчику не нужно менять приложение для работы, просто нужно выполнить configure --prefix /proc/self/fd/1023;
  • внутрь файла можно вставить значки и другие файлы, которые хранятся в виде отдельных секций ELF, поэтому их легко извлечь.

Glick2

Вскоре проект перерос в Glick2. В 2011 году появилась первая запись в блоге GNOME о переосмыслении распространения запускаемых файлов, где и был представлен новый Glick2. Когда программа запускается, она создаёт новое пространство имени точек монтирования — это функция ядра Linux, позволяющая смотреть на списки монтирования; после этого файл монтируется при помощи fuse с уже известным префиксом, например, в /opt/bundle — эта точка монтирования доступна только программе и её дочерним процессам. Далее запускается стартовый файл, который читает нужные данные и библиотеки из этой точки. С помощью другой функции ядра — разделяемых поддеревьев (англ. shared subtrees) имеющееся пространство имён открывается в общий доступ в систему, например, появится возможность использовать USB носитель, вставленный после запуска программы. Если установить дополнительное ПО, то установка составит собой лишь перемещение в папку (иначе в списке программ она не появится), а также появится слежение за дубликатами при помощи сравнения хешей SHA-1.

Преимущества в сравнении с другими системами пакетов:

  • возможна лёгкая установка в виде перемещения файла приложения в папку ~/Apps
  • приложение работает даже если в системных пакетах будут несовместимые изменения;
  • приложение работает как на старых, так и на новых ОС — не нужно заботиться о системе;
  • можно устанавливать сразу несколько версий приложения;
  • достигается высокий уровень кросс-платформенности; однако, из-за того, что разработчик приложения не распространяет xserver или kernel, есть ограничения в системных вещах.

На основе Glick2 был создан фреймворк bundler, который повторял идеи первого.

xdg-app

В 2013 году в ядро Linux добавили нативную поддержку контейнеров — LXC. На Hackfest2013 Алекс Ларсон опубликовал свои идеи насчёт будущего Flatpak. Первые публичные работы начались в 2014 году, а первый релиз состоялся в 2015 году.

Flatpak

xdg-app с версии 0.6 стал именоваться Flatpak.

Flatpak 0.8 имеет долгосрочную поддержку.

Flatpak 1.0 была выпущена 20 августа 2018 года.

1 июля 2017 года Valve добавила в SteamOS поддержку Flatpak.

С сентября 2018 года поддерживается и Windows 10 при помощи WSL.

Flathub

Flathub — это магазин приложений для приложений Flatpak. В нём присутствуют сборки GIMP, VS Code, Steam и других популярных программ. До некоторого времени приложения находились в репозитории приложений GNOME.

Проблемы безопасности

Команда исследователей создала сайт flatkill.org, на котором публикуются различные вопросы безопасности относительно Flatpak. Основные проблемы — наличие устаревшего ПО в Flathub и недоработки в песочнице.



Имя:*
E-Mail:
Комментарий:
Информационный некоммерческий ресурс fccland.ru © 2020
При цитировании и использовании любых материалов ссылка на сайт обязательна