Interested Article - Flatpak
- 2020-04-27
- 1
Flatpak (ранее известный как xdg-app ) — это утилита для развёртывания , управления пакетами и для Linux. Предоставляет собой песочницу , в которой пользователи могут запускать приложения без влияния на основную систему. Приложения, использующие Flatpak, требуют дополнительных разрешений на использование дискового пространства.
Описание
Для работы с Flatpak пакетам возможно использовать как Flathub (репозиторий разработчика), так и сторонние репозитории, что отличается от подхода Snappy .
Выполнение приложений происходит в изолированном контейнере.
Библиотеки приложений могут находиться в одном пакете вместе с приложением или же находиться в окружениях, общих для нескольких пакетов
История
Автором Flatpak является Алекс Ларсон ( англ. Alex Larsson ) , одним из мотиваторов стал klik . Название произошло от соединения GNOME и klik, как это обычно происходило в GNOME-сообществе. Проект утилиты претерпел несколько изменений.
Я игрался с системой образов приложений Klik, у которой были интересные идеи | I had played a bit with a application image system called Klik, which had some interesting ideas | |||
Алекс Ларсон
|
Название — это каламбур от старой схемы наименования в KDE и GNOME — первая буква и название, получилось K lik и G lick | The name is sort of a pun on the old KDE/Gnome first-letter naming scheme, although neither Klik or Glick are really desktop-specific. | |||
Алекс Ларсон
|
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 был создан фреймворк , который повторял идеи первого.
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 .
Источник приложений
— магазин приложений для Flatpak. В нём присутствуют сборки GIMP , VS Code , Steam и других популярных программ. До некоторого времени приложения находились в репозитории приложений GNOME.
Проблемы безопасности
Команда исследователей создала сайт , на котором публикуются различные вопросы безопасности относительно Flatpak. Основные проблемы — наличие устаревшего ПО в Flathub и недоработки в песочнице.
См. также
Примечания
- — 2023.
- — 2006.
- (англ.) . Flatpak FAQ . Дата обращения: 17 октября 2018. 20 сентября 2018 года.
- Larsson, Alexander (англ.) . Блог GNOME (17 февраля 2015). Дата обращения: 17 октября 2018. 29 августа 2018 года.
- . OpenNET . 2015-02-17. из оригинала 28 января 2018 . Дата обращения: 17 октября 2018 .
- Larsson, Alexander (англ.) . Блог GNOME (29 апреля 2016). Дата обращения: 17 октября 2018. 26 августа 2018 года.
- Willis, Nathan (англ.) . LWN.net (12 августа 2015). Дата обращения: 17 октября 2018. 23 августа 2018 года.
- . Losst (9 июля 2016). Дата обращения: 22 марта 2020. 22 марта 2020 года.
- ↑ Larsson, Alexander (2018-06-20). . Блог GNOME (англ.) . из оригинала 20 сентября 2018 . Дата обращения: 17 октября 2018 .
- (англ.) . Сайт Flatpak . Дата обращения: 17 октября 2018. 17 октября 2018 года.
- (англ.) . Страница Glick в проекте GNOME . Дата обращения: 17 октября 2018. 5 июля 2018 года.
- Paul, Ryan (2007-08-24). . Ars Technica (англ.) . из оригинала 20 марта 2014 . Дата обращения: 17 октября 2018 .
- Larsson, Alexander (2007-08-21). . Блог GNOME (англ.) . из оригинала 22 июля 2018 . Дата обращения: 17 октября 2018 .
- Larsson, Alexander (2007-08-23). . Блог GNOME (англ.) . из оригинала 27 августа 2018 . Дата обращения: 17 октября 2018 .
- (англ.) . Дата обращения: 17 октября 2018. 5 сентября 2018 года.
- Larsson, Alexander (2011-09-30). . Блог GNOME (англ.) . из оригинала 9 апреля 2016 . Дата обращения: 17 октября 2018 .
- на YouTube
- Larsson, Alexander (2011-10-12). . Блог GNOME (англ.) . из оригинала 16 марта 2017 . Дата обращения: 17 октября 2018 .
- . Новости LXC (англ.) . 2014-02-20. из оригинала 2 июня 2017 . Дата обращения: 17 октября 2018 .
- . OpenNET . 2014-02-21. из оригинала 9 декабря 2017 . Дата обращения: 17 октября 2018 .
- Larsson, Alexander (2013-02-01). . Блог GNOME (англ.) . из оригинала 27 августа 2016 . Дата обращения: 17 октября 2018 .
- (англ.) . Репозиторий alexlarsson на GitHub (17 декабря 2014). Дата обращения: 17 октября 2018. 17 октября 2018 года.
- (англ.) . Репозиторий alexlarsson на GitHub (23 марта 2015). Дата обращения: 17 октября 2018. 17 октября 2018 года.
- . Пресс-релизы Flatpak (англ.) . 2016-06-21. из оригинала 26 августа 2018 . Дата обращения: 17 октября 2018 .
- Alex, Larsson (2016-12-22). . Блог GNOME (англ.) . из оригинала 5 сентября 2018 . Дата обращения: 17 октября 2018 .
- . OpenNET . 2016-12-23. из оригинала 6 февраля 2018 . Дата обращения: 17 октября 2018 .
- . Пресс-релизы Flatpak (англ.) . 2018-08-20. из оригинала 6 октября 2018 . Дата обращения: 17 октября 2018 .
- . OpenNET . 2018-08-20. из оригинала 17 октября 2018 . Дата обращения: 17 октября 2018 .
- jvert (2017-04-01). . Steam Universe (англ.) . из оригинала 3 ноября 2017 . Дата обращения: 17 октября 2018 .
- . OpenNET . 2017-07-26. из оригинала 8 сентября 2018 . Дата обращения: 17 октября 2018 .
- Larsson, Alexander (2018-09-17). . Блог GNOME (англ.) . из оригинала 17 сентября 2018 . Дата обращения: 17 октября 2018 .
- Sneddon, Joey (2017-06-18). . OMG! Ubuntu! (англ.) . из оригинала 16 мая 2018 . Дата обращения: 17 октября 2018 .
- (англ.) . Дата обращения: 17 октября 2018. 21 декабря 2019 года.
- Larsson, Alexander (2017-11-13). . Блог GNOME (англ.) . из оригинала 20 февраля 2018 . Дата обращения: 17 октября 2018 .
- 2020-04-27
- 1