Обзор Snap vs Flatpak vs AppImage
Чем отличается Snap vs Flatpak vs AppImage?
Как видите, в последнее время было создано очень много решений портативных программ Linux и пора разобраться что лучше и что все-таки использовать. В этой статье мы сравним snap vs flatpak vs appimage. Это самые популярные и известные технологии, хотя были и другие. Попытаемся выяснить у кого больше перспектив для развития, но сначала выясним, что представляет из себя каждая из этих технологий.
Что такое Snap?
Все файлы программы и ее зависимостей упаковываются в один файл, включая исполняемые файлы, файлы конфигурации и нужные библиотеки. В этом плане snap vs flatpack мало чем отличаются. Пакет устанавливается в отдельном каталоге, в домашней папке пользователя и программа может иметь доступ только к этому каталогу. Поэтому программа не может создать проблем в вашей системе, заменив важные файлы других пакетов.
На данный момент Snap пакеты работают кроме Ubuntu, на Arch, Debian и Fedora. Также выполняется подготовка образов для Red Hat, CentOS, Elementary, LinuxMint, Gentoo, OpenSUSE. Более подробно про управление Snap пакетами читайте здесь.
Что такое AppImage?
Про Appimage мы услышали еще в 2011 году, но тогда программа не набрала популярности несмотря на все ее плюсы по сравнению с традиционными системами упаковки программ.
Образ Appimage представляет из себя обычный ISO образ, в котором находятся все необходимые компоненты программы, при запуске он автоматически монтируется и выполняется программа. Поскольку для запуска не нужно никакого программного обеспечения в системе, эта технология может использоваться абсолютно в любом дистрибутиве. Хотя для запуска программы не требуются права root, тут уже нет такого уровня безопасности, программа может спокойно работать с файлами пользователя, как и другие обычные программы, а если каких-нибудь библиотек в образе недостает, программа загружает их из системы. Подробнее про AppImage читайте тут.
Для создания AppImage используется утилита appimagetool. Перед использованием инструмента вам необходимо скопировать все файлы и библиотеки, необходимые программе в специальную папку и сделать конфигурационный файл. Если делать сравнение Flatpak vs AppImage, то там все как-то более организовано и не нужно засорять свою систему.
Что такое Flatpak?
В отличие от Snap, Flatpak ориентирован больше на децентрализацию. Здесь нет одного центрального репозитория или контролирующего органа. Snap пакеты контролируются Canonical, и чтобы добавить свой пакет в репозиторий нужно подписать соглашение. Flatpak работает подобно тому, как PPA в Ubuntu. Вы находите репозиторий, подключаете в систему и можете устанавливать оттуда программы.
Flatpak можно использовать в большинстве дистрибутивов, так же как и Snap. Создавать Flatpack пакеты можно подобным образом, как и snap. Тоже нужно отредактировать файл конфигурации, правда тут все немного проще. Про установку и использование Flatpak читайте здесь.
Выводы
Мы рассмотрели Snap vs Flatpak vs AppImage. Уже сейчас можно, сказать, что AppImage отходит на задний план и гонка за лидерство происходит между Snap и Flatpak. Appimage предоставляет простоту запуска программ, но здесь нет таких важных возможностей, как безопасность, а без этого сейчас никуда. Flatpak разрабатывается командой Gnome, и у них интересная затея, но за Snap взялась компания Canonical, они будут использовать эту технологию не только для обычных компьютеров, но и для серверных решений. Что будет лучше и более удобно пользователям покажет время. А вы используете портативные приложения?
Как установить Flatpak
Насколько бы пакетные менеджеры Linux не были бы удобными, они имеют как преимущества, так и недостатки. Зависимости пакетов, это сильная сторона Linux пока вы не попытаетесь установить старый пакет или пакет из другого дистрибутива. Небольшая ошибка создателей пакета в настройке зависимостей приведет к тому что вам придется потратить уйму времени на то, чтобы во всём разобраться и исправить.
Чтобы решить эту проблему был придуман универсальный формат пакетов flatpak. Все зависимости программы уже находятся в самом пакете, именно такие, какие надо и их не нужно устанавливать отдельно. Поэтому пакеты flatpak могут быть установлены в любом дистрибутиве. В этой статье мы рассмотрим как установить flatpak в Linux, а также как пользоваться этой программой для установки пакетов.
Особенности Flatpak
Примерно в то же время, что и Flatpak, появился менеджер пакетов snap. По своей сути Flatpak очень похож на snap. Здесь тоже все зависимости находятся внутри установочного пакета, программе внутри пакета разрешен доступ только к тем, ресурсам, которые ей нужны. Но в отличие от snap, flatpak более децентрализован. Никто не контролирует какие репозитории вы создаёте и что в них распространяете. Вы можете создать свой репозиторий, вроде PPA и распространять там свое программное обеспечение. В то же время как для того чтобы попасть в Snap Store надо получить разрешение от Canonical.
Установка Flatpak в Linux
В таких системах, как Fedora пакетный менеджер Flatpak уже поставляется по умолчанию. Но если вы захотите использовать программу в Ubuntu, Debian или в Linux Mint, то вам понадобится её установить:
sudo apt install flatpak
Если в репозиториях вашего дистрибутива нет пакета Flatpak, вы можете установить его из PPA:
sudo add-apt-repository ppa:alexlarsson/flatpak
sudo apt update
sudo apt install flatpak
Если всё же вам надо установить flatpak в дистрибутиве, основанном на Red Hat Enterprice Linux, выполните:
sudo yum install flatpak
Для OpenSUSE команда не сильно отличается:
sudo zypper install flatpak
Да и для ArchLinux тоже:
После установки вы можете пользоваться flatpak из командной строки. Чуть ниже мы рассмотрим как это делать, но для удобства можно добавить поддержку flatpak в центр приложений. Для этого в Ubuntu достаточно установить такой пакет:
sudo apt install gnome-software-plugin-flatpak
Как пользоваться Flatpak
1. Поиск программ на FlatHub
Несмотря на то, что Flatpak децентрализованный, большинство самых популярных пакетов вы можете найти на сайте FlatHub. Просто выберите нужную программу из списка:
Откройте её страницу и нажмите кнопку Install для установки программы с помощью центра приложений:
Кроме того, внизу страницы есть инструкция как установить программу с помощью терминала:
2. Добавление репозиториев
$ flatpak remote-add имя_репозитория ссылка_на_репозиторий
Например, для FlatHub выполните:
Кроме того, существует ещё несколько репозиториев, например, репозиторий программ Gnome:
Репозиторий программ KDE:
Другие репозитории вы можете найти в интернете. Посмотреть все добавленные репозитории можно выполнив:
3. Поиск по репозиториям
Вы можете посмотреть все пакеты, которые есть в репозитории. Для этого выполните команду remote-ls и передайте ей имя репозитория:
flatpak remote-ls flathub
Ещё можно искать нужный пакет по имени, для этого используйте:
$ flatpak search имя_пакета
flatpak search pidgin
Для установки программы вам понадобиться имя пакета программы из колонки Application ID и имя репозитория из колонки Remotes.
4. Установка пакетов
Для установки пакета flatpak используйте такую команду:
$ flatpack install имя_репозитория имя_пакета
Например, давайте установим тот же Pidgin, найденный предыдущей командой:
flatpak install flathub im.pidgin.Pidgin
Если вы не хотите добавлять репозиторий в систему, вы можете установить программу по ссылке из сети. Просто скопируйте ссылку на файл flatpakref и передайте её программе:
Если вы уже скачали файл flatpakref, его тоже можно установить.
Посмотреть все установленные программы можно выполнив команду:
5. Запуск программ Flatpak
Программы, установленные с помощью flatpak можно запустить из главного меню. Однако если вы захотите запустить их с помощью терминала. Надо использовать команду flatpak:
flatpak run im.pidgin.Pidgin
6. Удаление программ
Для удаления программы используйте такую команду:
$ flatpak uninstall имя_программы
Например, для Pidgin:
flatpak uninstall im.pidgin.Pidgin
После удаления пакета можно удалить неиспользуемые компоненты, чтобы освободить место на диске:
7. Обновление программ
Как и в любом другом пакетном менеджере, здесь можно обновлять установленные программы до самой новой версии. Для этого выполните:
Иногда устанавливаемые пакеты требуют более новые версии компонентов и поэтому не хотят устанавливаться. Если вы сталкиваетесь с такой ошибкой, просто обновите все пакеты.
Выводы
В этой небольшой статье мы рассмотрели как установить Flatpak, а также как пользоваться этой системой. Как видите, здесь всё немного сложнее по сравнению со snap, зато тут больше свободы. А что вам больше нравится snap или flatpak? Напишите в комментариях!
Как установить и использовать Flatpak в Linux
Linux добился больших успехов в области совместимости программного обеспечения. Точнее, установка программного обеспечения стала более единообразной в различных дистрибутивах и их собственных форматах пакетов. Но всё еще требуется сложная работа создателей пакетов. Им надо взять приложение и настроить его под конкретные требования разных дистрибутивов и даже разных их версий. Но появилось несколько новых универсальных форматов пакетов типа Flatpak, которые обещают: «упаковал однажды — работает везде» (во всяком случае, в Linux).
В сегодняшней статье мы рассмотрим Flatpak, узнаем, что это такое и как его использовать.
Режим работы Flatpak
Flatpak является и форматом пакета, и инструментом для установки и управления этими пакетами. Многие форматы пакетов Linux работают с концепцией зависимостей, означающей, что разработчик может определить, что пакет А зависит от пакета В. Когда пользователь пытается установить мой пакет А, система распознает зависимость и устанавливает пакет В вместе с ним. Так, apt install устанавливает одно приложение и получает сотни пакетов для загрузки и установки, Flatpak, напротив, предоставляет вам и приложение, и всё необходимое для работы в независимом от дистрибутива формате. У этого подхода есть свои плюсы и минусы:
Плюсы Flatpak
Минусы Flatpak
Но основная идея Flatpak привлекательна. Найдя программу, вы легко установите ее и запустите, не беспокоясь, что нечто иное в вашей системе использует несовместимую версию той же библиотеки.
Кроме того, установка приложений в виде Flatpak позволяет одновременно использовать и сопоставлять программы так, как это невозможно с обычной системой пакетов, например:
Несмотря на все эти разговоры о плюсах и минусах, вы можете одновременно использовать любой (или все!) из вышеуказанных форматов на своем компьютере. Это противоречит логике, не так ли? Как разработчики добились этого? Давайте рассмотрим формат Flatpak немного подробнее, чтобы выяснить это.
Становление Flatpak
Но запуск другой инициативы, возможно, более интересен. Проект WinePak использует Flatpak. чтобы облегчить установку программ Windows. Это достигается путем предоставления приложения и оптимизированной установки WINE в формате, который легко установить. Он обещает покончить со всей возней с настройкой, обычно сопровождающей установки в WINE. Хотя выбор на данный момент довольно мал, в нем уже есть несколько топовых игр, включая Overwatch, World of Warcraft и League of Legends. Конечно, установив их, вы можете в конечном итоге установить WINE в своей системе десятки раз. Но они в песочнице, а место на диске дешево, так что безумствуйте!
Анатомия Flatpak
Установка Flatpak создаст файловую структуру для программы и ее сред выполнения, а также некоторые метаданные. Базовая структура состоит из четырех каталогов верхнего уровня в $HOME/.local/share/flatpak или /var/lib/flatpak, в зависимости от того, была ли это системная или пользовательская установка.
Первым из них является repo, содержащий информацию об установленных и внешних приложениях и другие метаданные. Каталог арр — это место, где находятся сами приложения. У каждой программы есть подкаталог с именем, состоящим из трех частей (например, org.gnome.GEdit). Существуют дополнительные подкаталоги, выделенные для архитектуры (например, х86_64). номеров версий и связанных с ними контрольных сумм.
Среда выполнения управляется таким же образом, но хранится отдельно в каталоге runtime. Это связано с тем., что они могут использоваться несколькими приложениями. Последний каталог — exports, содержащий элементы, связанные с программами Flatpak, но находящийся вне песочницы. К ним относятся такие вещи, как значок приложения и файл .desktop (который появится в меню приложений на рабочем столе), а также системные ссылки, такие как подключения к оконной системе. Каталог exports содержит ссылки на вещи внутри Flatpak и является одной из тщательно контролируемых точек соприкосновения между хост-системой и песочницей Flatpak.
На скрине выше показан экспорт команды tree после установки LibreOffice Flatpak.
Распаковка Flatpak
Как и большинство проектов с открытым исходным кодом, Flatpak для достижения своих целей становится на плечи гигантов. Две ключевые технологии, лежащие в основе Flatpak — это ostree и bubblewrap.
Устанавливая Flatpak, вы устанавливаете «комплект» ostree, содержащий приложение. Сайт проекта описывает его как нечто вроде «Git для бинарников операционной системы». В дополнение к другим преимуществам, данный подход обеспечивает атомарные обновления — это такой витиеватый способ сказать, что обновляется только то, что нужно обновлять. Он также обеспечивает механизм отката.
Предположим, у вас есть программа с файлом 1 и файлом 2. Обновление предоставляет новую версию файла 2, который по факту обозначен как файл 3. Программа будет работать довольно успешно, используя файл 1 и файл 3, пока вы не захотите откатить версию. Но вам не надо делать всю операцию удаления или переустановки. Вам просто нужно изменить приложение, чтобы оно использовало файл 2 вместо более нового файла 3 (который всё еще существует на тот случай, если вы хотите выполнить «откат»).
Другой вспомогательной технологией является bubblewrap. программный уровень, который, в свою очередь, использует функцию пользовательского пространства имен ядра Linux. Это позволяет учетным записям обычных пользователей выполнять роль учетных записей root в контейнерах, включив песочницу Flatpak. При запуске приложение Flatpak вызывает подсистему, состоящую из приложения Flatpak и определенного количества системных ресурсов для использования в песочнице. В вики FlatPak на GitHub (https://github.com/flatpak/flatpak/wiki/Sandbox) есть страница, которая подробно описывает содержимое песочницы — вот некоторые ключевые свойства:
Теперь, если вы еще не слишком запутались, мы добавим еще один уровень сложности. Для установки большинства программ в системе Linux требуются права root, но Flatpak могут устанавливать и обычные пользователи. В следующей главе мы рассмотрим разницу между этими «пользовательскими установками» и более традиционной «системной установкой».
Система против пользователя
При установке программного обеспечения бывалые пользователи Linux привыкли предоставлять пароль root. Это программное обеспечение попадает в каталог за пределами вашего $НОМЕ, такой как /usr/bin, /opt или, возможно, даже /usr/local. Но, как упоминалось в списке плюсов, Flatpak поддерживает возможность установки программы для конкретного пользователя, а не для всей системы. Это работает, потому что обычный пользователь имеет доступ к необходимым ресурсам для запуска программы, и песочницы, созданные пользователем, получают такой же доступ.
Когда вы запустите любую из команд установки, вам предложат ввести пароль. Дело в том, что по умолчанию Flatpak будет выполнять системную установку. Это означает, что программа будет доступна всем пользователям, а ее файлы будут храниться в /var/lib/flatpak.
Пользовательская установка возможна благодаря устройству песочницы. Думайте об этом так: как пользователь, вы в состоянии запускать приложение. Это приложение имеет права (через вашу учетную запись) на создание экранного окна, запись файлов на диск и доступ к сетевым подключениям. Когда вы устанавливаете Flatpak как пользователь, любые ресурсы хост-системы ограничиваются теми, что вы сами можете получить с помощью «обычной» программы.
Установка Flatpak
Первый компонент, который вам нужен для установки Flatpaks (формат пакета) — это Flatpak (приложение). Большинство дистрибутивов предоставляют его в своих репозиториях. В Ubuntu вы можете выполнить следующее, чтобы получить и запустить:
Flatpak
Содержание
Установка flatpak [ править ]
# apt-get install flatpak
Для установки приложений при помощи flatpak из-под непривилегированного пользователя следует добавить пользователя в группу fuse:
Добавление репозиториев [ править ]
$ flatpak remote-add name_repository url
После подключения нового репозитория следует выполнить обновление его данных:
Удаление репозитория [ править ]
$ flatpak remote-delete name_repository
Список подключенных репозиториев [ править ]
Поиск пакетов [ править ]
Перед поиском следует выполнить обновление данных в репозитории:
$ flatpak search name_package
Получение списка пакетов в репозитории:
$ flatpak remote-ls name_repository
Установка приложений [ править ]
$ flatpak install name_repository name_package
$ flatpak install flathub firefox
Файлы размещаются по адресу:
Список установленных приложений [ править ]
Запуск-удаление-обновление приложений [ править ]
$ flatpak run appname
где appname, имя приложения вида org.unknown_horizons.UnknownHorizons (см. flathub.org)
$ flatpak update name_package
$ flatpak uninstall name_package
Удаление неиспользуемых пакетов [ править ]
Просмотр и определение разрешений [ править ]
Flatpak использует стандартный набор правил песочницы, которые определяют ресурсы и пути файловой системы для приложений. Чтобы просмотреть разрешения конкретного приложения необходимо узнать его ID:
$ flatpak list | grep name_package
Затем посмотреть разрешения:
Список доступных параметров для разрешений Вы можете найти в документации flatpak.
Изменить разрешения можно командой:
# flatpak override permission_option application_id
Сбросить разрешения до стандартных:
Управление flatpak из GUI [ править ]
Для установки, обновления и удаления ПО из графического интерфейса используется Центр программ Discover. В настройках Discover → Добавить репозиторий flathub.
Можно использовать web-интерфейс. Выбрать приложение скачать для него ярлык и запустить, Discover автоматически перехватит управление, добавит новый репозиторий и начнет установку.
Известные проблемы [ править ]
Для установки приложений при помощи flatpak из-под непривилегированного пользователя следует добавить пользователя в группу fuse:
Не найдено удаленных репозиториев [ править ]
Нет доступного репозитория их следует добавить.
Для второго случая:
Неправильное имя файла [ править ]
Неправильное название файла ярлыка. Например: io.brackets.Brackets.flatpakref
Убрать из имени .flatpakref
Не удается смонтировать fuse fs [ править ]
Добавить пользователя в группу fuse
Discover падает при добавлении новой программы [ править ]
Could not unmount revokefs-fuse filesystem
Failed to execute child process fusermount (Permission denied)
При этом Discover крашится. Нет прав на монтирование файловой системы.
# control fusermount wheelonly
Нет соединения с интернетом [ править ]
Discover сообщает об ошибке соединения с интернетом. Следует установить пакет plasma5-discover-packagekit.
# plasma5-discover-packagekit Перезапустить сеанс
Не добавляет ярлыки в меню приложений [ править ]
Note that the directories
are not in the search path set by the XDG_DATA_DIRS environment variable, so applications installed by Flatpak may not appear on your desktop until the
session is restarted.
Не добавляет ярлыки программ в меню приложений. Сделать файл flatpak.sh исполняемым.
# chmod +x /etc/profile.d/flatpak.sh
Перезапустить сеанс. Это действие в DE kde вызывает вылет при загрузке.
Как установить Flatpak в Ubuntu (пошаговое руководство)
В этом руководстве мы покажем вам, как установить Flatpak на Ubuntu 18.04 LTS и выше, чтобы получить доступ к новым и обновлённым программам через Flathub.
Последние версии Ubuntu поставляются с поддержкой приложений Snap, но это не единственный универсальный формат пакетов приложений в Linux.
Вы скорее всего уже заметили увеличение количества приложений Flatpak, которые мы упоминаем на сайте. Поэтому пришло время рассказать, как установить Flatpak в Ubuntu, как настроить репозиторий Flathub и как установить приложения Flatpak.
На официальном сайте Flatpak есть отличное руководство по установке, охватывающее несколько дистрибутивов. Это руководство адаптировано из официального источника с добавленными скриншотов, подробностями и советами.
Что такое Flatpak?
Он во многом похож на Snappy: приложения помещаются в «песочницу»; идут в комплекте со всем необходимым для запуска; поддерживают автоматическое обновление в фоновом режиме.
Поскольку эти технологии позволяют пользователям Linux устанавливать приложения независимо от того, какой дистрибутив или менеджер пакетов они используют, все больше и больше разработчиков программного обеспечения предпочитают распространять приложения, используя эти новые методы.
А использование OSTree Flatpak позволяет разработчикам создавать полный пакет приложений, который содержит все зависимости, библиотеки и другие файлы, необходимые для запуска их программы.
Поскольку приложения Flatpak запускаются изолированно от остальной системы, можно запускать несколько версий одной и той же программы одновременно (например, ночные или стабильные сборки).
Приложения Flatpak также должны запрашивать разрешение, прежде чем они смогут получить доступ к оборудованию (например к веб-камере), читать или открывать файлы вне песочницы или использовать технологии определения местоположения, такие как geoclue. В целом, Flatpak дает вам гораздо больший контроль над программным обеспечением, которое вы запускаете.
Так зачем использовать Flatpak? Есть несколько ключевых причин:
Существует множество других причин, по которым вы можете использовать этот новый формат приложения, поэтому пишите в комментариях ваши варианты.
Как установить Flatpak на Ubuntu 18.04 LTS и выше
Если вы используете Ubuntu 18.04 LTS или более позднюю версию, вы можете установить Flatpak в Ubuntu с помощью программного обеспечения Ubuntu, но тут необходимо помнить, что он не доступен для поиска.
Вместо этого нажмите эту ссылку: установить Flatpak на Ubuntu
Появится небольшая подсказка с просьбой подтвердить установку:
Нажмите «Установить» и дайте ему сделать свое дело!
Получить последнюю версию
Одним из «уловок» установки версии Flatpak, доступной для установки через Ubuntu Software, является то, что она (зачастую) устарела.
Новые версии Flatpak выпускаются регулярно, но эти обновления не распространяются пользователям Ubuntu автоматически.
Поэтому, если вы хотите установить последнюю версию Flatpak на Ubuntu (и, скорее всего, так и есть), добавьте следующий официальный Flatpak PPA к своим источникам программного обеспечения. PPA поддерживает Ubuntu 16.04 LTS и выше:
Установите программный плагин
Чтобы установить приложения Flatpak без использования командной строки, вам необходимо установить плагин Flatpak для программного обеспечения Ubuntu:
Что приводит нас к.
Как установить Flathub в Ubuntu
Что такое Flathub?
Snappy от Canonical пользуется большим успехом как у разработчиков, так и у пользователей. Часть его успеха заключается в его простоте. Он имеет единый централизованный «магазин приложений» (своего рода), куда разработчики загружают свои приложения Snap, а пользователи устанавливают их.
Snapd (инструмент для установки и управления snap пакетами в Linux) настроен на использование этого хранилища по умолчанию, гарантируя, что каждый пользователь Ubuntu имеет доступ к сотням приложений из коробки.
Хорошей новостью является то, что Flatpak также имеет своего рода «магазин приложений» под названием Flathub. Как и магазин Snap, Flathub действует как централизованное хранилище, из которого любой пользователь может устанавливать приложения Flatpak, а любой разработчик приложений может добавлять свои приложения.
Как добавить репозиторий Flathub
Чтобы установить Flathub в Ubuntu, выполните следующую команду:
Вам будет предложено ввести пароль для авторизации изменений.
Все, что вам нужно сделать после этого, это перезагрузить компьютер, чтобы все необходимые компоненты были правильно зафиксированы.
Когда ваша система перезагрузится, всё будет готово; у вас есть все необходимое для установки приложений Flatpak в Ubuntu с помощью программного обеспечения Ubuntu или веб-сайта Flathub.
Как установить приложения из Flathub
Если вы установили программный плагин Flatpak, упомянутый ранее в этом руководстве, то все готово: вы можете установить приложения Flatpak, выполнив поиск в Центре программного обеспечения Ubuntu.
Следите за текстом «source: flathub.org» в результатах поиска ПО:
Вы также можете просматривать и устанавливать приложения из Flathub с помощью веб-браузера. Для начала просто откройте в браузере веб-сайт Flathub.
Здесь вы можете просматривать приложения из Flathub в зависимости от их категории («Утилиты», «Игры» и т. д.) Или искать приложения по названию (например, «GIMP», «Spotify» и т. д.).
Начнется установка Программного обеспечения:
Ubuntu Software откроется, и вы сможете увидеть программу установки.
Вот как вы можете включить Flatpak и установить приложения Flatpak из Flathub в Ubuntu. Оставьте комментарий ниже, если вы столкнулись с трудностями с flatpak.



















