Flatpack linux что это
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
Насколько бы пакетные менеджеры 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? Напишите в комментариях!
Обзор 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
Введение в Flatpak
Существует так много дистрибутивов Linux, и упаковочные приложения для всех этих дистрибутивов Linux являются довольно трудоемкой и сложной задачей.
Несмотря на то, что существует множество конвертеров пакетов, все они имеют ограниченную функциональность и проблемы совместимости.
Чтобы решить эту проблему, Canonical представила формат пакетов приложений Snap.
Снапсы изначально разрабатывались для операционной системы Ubuntu, но теперь они приняты в основных дистрибутивах Linux, включая Arch, Gentoo, Fedora, openSUSE и т. д.
Snap – это единый двоичный пакет, объединенный со всеми необходимыми библиотеками и зависимостями. Вы можете установить его в любом дистрибутиве Linux, независимо от его версии и архитектуры. Не нужно разрабатывать отдельное приложение для каждого дистрибутива!
Подобно Snap, есть еще один инструмент форматирования пакетов приложений, называемый Flatpak.
Первоначально он разработан Red Hat.
Flatpak – это система для создания, установки и запуска приложений и сред выполнения в различных дистрибутивах Linux.
Теперь вы можете создать одно приложение Flatpak и установить его в разных версиях Linux.
Вам не нужно беспокоиться о библиотеках и зависимостях, все объединено в одном приложении.
Еще одна примечательная особенность – мы можем установить несколько версий одного и того же приложения одновременно в системе Linux.
Например, можно установить проигрыватель VLC версий 2.1, 2.2 и 2.3 в той же системе.
Если вы разработчик, вы можете тестировать разные версии приложения одновременно.
Как установить и использовать 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 вы можете выполнить следующее, чтобы получить и запустить: