Flatpak (ранее известный как xdg-app)[5] — это утилита для развёртывания, управления пакетами и виртуализации[en] для Linux. Предоставляет песочницу, в которой пользователи могут запускать приложения без влияния на основную систему.[6][7][8] Приложения, использующие Flatpak, требуют дополнительных разрешений на использование дискового пространства.[9]
История
Автором Flatpak является Алекс Ларсон (англ. Alex Larsson), одним из мотиваторов стал klik.[11] Название произошло от соединения GNOME и klik, как это обычно происходило в GNOME-сообществе. Проект утилиты претерпел несколько изменений.
Я игрался с системой образов приложений Klik, у которой были интересные идеи | I had played a bit with a application image system called Klik, which had some interesting ideas | |||
— Алекс Ларсон[11] |
Название — это каламбур от старой схемы наименования в KDE и GNOME — первая буква и название, получилось Klik и Glick | 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. | |||
— Алекс Ларсон[11] |
Glick
Изначально идея зародилась в проекте Glick — фреймворк для упаковки (англ. bundling) приложений.[12][13][14] Он позиционировался как приложение, позволяющее разработчикам создавать самодостаточные пакеты для своих приложений. Первая публичная версия 0.1 была выпущена в 2007 году.[15] Позже был выпущен последний релиз 0.2, где удалось обойти ограничение fuse на одновременное выполнение 10 программ.[16]
Особенности реализации:
- для целевой системы не требуется дополнительная среда выполнения: пока fuse правильно работает — программа ничего не требует;
- приложение, установленное в комплекте не должно быть перемещено, так как Glick использует трюк со ссылкой /proc/self, чтобы найти свои файлы на /proc/self/fd/1023. Это значит, что разработчику не нужно менять приложение для работы, просто нужно выполнить configure —prefix /proc/self/fd/1023;
- внутрь файла можно вставить значки и другие файлы, которые хранятся в виде отдельных секций ELF, поэтому их легко извлечь.
Glick2
Вскоре проект перерос в Glick2.[17] В 2011 году появилась первая запись в блоге GNOME о переосмыслении распространения запускаемых файлов, где и был представлен новый Glick2.[18][19] Когда программа запускается, она создаёт новое пространство имени точек монтирования[en] — это функция ядра Linux, позволяющая смотреть на списки монтирования; после этого файл монтируется при помощи fuse с уже известным префиксом, например, в /opt/bundle — эта точка монтирования доступна только программе и её дочерним процессам. Далее запускается стартовый файл, который читает нужные данные и библиотеки из этой точки. С помощью другой функции ядра — разделяемых поддеревьев (англ. shared subtrees) имеющееся пространство имён открывается в общий доступ в систему, например, появится возможность использовать USB носитель, вставленный после запуска программы. Если установить дополнительное ПО, то установка составит собой лишь перемещение в папку (иначе в списке программ она не появится), а также появится слежение за дубликатами при помощи сравнения хешей SHA-1.[20]
Преимущества в сравнении с другими системами пакетов:
- возможна лёгкая установка в виде перемещения файла приложения в папку ~/Apps
- приложение работает даже если в системных пакетах будут несовместимые изменения;
- приложение работает как на старых, так и на новых ОС — не нужно заботиться о системе;
- можно устанавливать сразу несколько версий приложения;
- достигается высокий уровень кросс-платформенности; однако, из-за того, что разработчик приложения не распространяет xserver или kernel, есть ограничения в системных вещах.
На основе Glick2 был создан фреймворк bundler, который повторял идеи первого.
xdg-app
В 2013 году в ядро Linux добавили нативную поддержку контейнеров — LXC.[21][22] На Hackfest2013 Алекс Ларсон опубликовал свои идеи насчёт будущего Flatpak.[23] Первые публичные работы начались в 2014 году,[24] а первый релиз состоялся в 2015 году.[25]
Flatpak
xdg-app с версии 0.6 стал именоваться Flatpak.[26]
Flatpak 0.8 имеет долгосрочную поддержку.[27][28]
Flatpak 1.0 была выпущена 20 августа 2018 года.[29][30]
1 июля 2017 года Valve добавила в SteamOS поддержку Flatpak.[31][32]
С сентября 2018 года поддерживается и Windows 10 при помощи WSL.[33]
- Flatpak в Linux – Telegraph
- Flatpak в Linux …
- Flatpak на Ubuntu
- Как установить Flatpak | Losst
- Flatpak в Linux …
Пакеты Snap и Flatpak
Иногда так случается, что у сборки Линукс, стоящей на PC, нет своего пакета с «Телеграмом». Это значит, что она, скорее всего, поддерживает пакеты с форматами Snap или Flatpak, к примеру, Ubuntu поддерживает Snap начиная с версии
Потребуется всего лишь по одной команде для каждого вида:
- «sudo snap install telegram-desktop» для Snap.
- «sudo flatpak install – из » для Flatpak. Здесь при установке потребуется согласиться с добавлением репозитория Flathub.
Чтобы удалить «Телеграм» теми же путями, в первой команде install меняется на remove, во второй – на uninstall, где после этого слова добавляется
Flatpak – руководство для начинающих
Существует инструмент Ubuntu Snaps. Snaps начал внедряется компанией Canonical для операционной системы Ubuntu, а позже он был принят другими дистрибутивами Linux, такими как Arch, Gentoo и Fedora и т.д. Snap – это единый бинарный пакет, содержащий все необходимые библиотеки и зависимости, и вы можете установить его на любой дистрибутив Linux, независимо от его версии и архитектуры. Подобно Snaps, есть еще один инструмент под названием Flatpak. Как вы уже знаете, упаковка распределенных приложений для разных дистрибутивов Linux довольно трудоемкая и сложная. Каждое распределенное приложение имеет различный набор библиотек и зависимостей для различных дистрибутивов Linux. Но, Flatpak, новая инфраструктура для настольных приложений, которая полностью снижает это бремя. Теперь вы можете создать одно приложение Flatpak и установить его в разных операционных системах. Как здорово, не так ли?
Кроме того, пользователям не нужно беспокоиться о библиотеках и зависимостях, все в комплекте в самом приложении. Самое главное, что приложения Flaptpak изолированы и изолированы от остальной операционной системы хоста и других приложений. Еще одна заметная особенность – мы можем одновременно установить несколько версий одного и того же приложения в одной и той же системе. Например, вы можете установить VLC-плеер версии 2.1, 2.2 и 2.3 на ту же систему. Таким образом, разработчики могут тестировать разные версии одного и того же приложения за раз.
- Flatpak в Linux …
- Ubuntu и другие Linux …
- Как установить Flatpak | Losst
- Flatpak, Snap и Appimage
- Snap в Linux Mint 20 …
В этом уроке мы увидим, как установить Flatpak в GNU / Linux.
Установка программ из архивов (тарболов)
Дистрибутив с программой, представляет из себя архив с кучей файлов и обычно имеет расширение .tar , , .bz, .tgz ну или что то похожее.
Для архивов сжатых с помощью GZIP (gz, gz2 и т.д.) выполняем:
tar -xvzf имя_файла
Для архивов сжатых с помощью BZIP (bz, bz2 и т.д.) выполняем:
tar -xvjf имя_файла
Команды Tar:
- x — извлечь файлы из архива;
- v — подробный вывод информации на экран;
- f — Обязательная опция. Если не указать, Tar будет пытаться использовать магнитную ленту вместо файла;
- z — обработать архив сжатый gzip’ом;
- j — обработать архив сжатый bzip’ом.
После выполнения, будет создана папка с именем, идентичным названию пакета.
Далее необходимо открыть эту созданную папку
cd имя_папки
Далее все зависит от того, как была собрана программа, в виде исполняемого файла, или в исходном коде, который сначала необходимо скомпилировать и лишь потом устанавливать. В любом случае для начала лучше прочитать инструкцию, которая должна присутствовать в распакованном архиве и, как правило, называется README, или что то похожее.
Если программа собрана в виде исполняемого файла, то в папке будет находиться файл, с расширением .sh, обычно он так и называется Его достаточно просто запустить на исполнение:
./
Если же программа представлено в исходном коде, выполняем следующие команды:
./configure make make install
После установки делаем:
make clean
Все, как ведите ничего сложного в установке программ в Linux нет.
Будущее выглядит ярко?
Вам не нужно выбирать между Snap и Flatpak прямо сейчас. Те, кто потратил время на установку любого из них, обнаружат, что сейчас не на что смотреть . Вы можете установить оба на свою машину сегодня, но если вы не разработчик или тестировщик, в этом нет особого смысла.
- Установить Flatpak в Ubuntu …
- Установка Spotify в Ubuntu 20.04 | Losst
- Flatpak 1.2.0. Критика Flatpak
- Как установить Flatpak в Ubuntu …
- Linux-дистрибутива Manjaro 20.0
На данный момент это в основном выбор между подходами, идеями и сообществами. Вы предпочитаете программное обеспечение, поддерживаемое Canonical или GNOME? Что вы доверяете, чтобы играть лучше с более широкой экосистемой с открытым исходным кодом? Что вы представляете в других дистрибутивах с большей готовностью принять? Должны ли все только что принять AppImage вместо этого? Поделитесь своей точкой зрения в комментариях!