Введение в 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 в той же системе.
Если вы разработчик, вы можете тестировать разные версии приложения одновременно.
Runtimes (Среды выполнения)
Среда выполнения – это не что иное, как набор основных зависимостей (библиотек), необходимых для приложения. Когда мы устанавливаем приложение с помощью команды flatpak, автоматически устанавливается среда выполнения. Среды выполнения не зависят от дистрибутива, поэтому они могут работать с любым дистрибутивом Linux.
Одну среду выполнения могут использовать несколько приложений.
В настоящее время доступны три основных среды выполнения: Freedesktop, GNOME и KDE. Все они размещены в репозитории Flathub.
Связанные библиотеки
Библиотеки, которые недоступны в среде выполнения, объединяются разработчиками вместе с приложением.
Библиотеки также могут быть версиями библиотек, отличными от тех, что находятся во время выполнения и/или исправленных версий библиотек.
Песочницы
Приложение Flaptpak создается и запускается в изолированной среде, известной как «песочница».
Другими словами, приложения Flatpak изолированы от остальной части операционной системы хоста и других приложений.
Каждая песочница содержит приложение и его среду выполнения.
По умолчанию приложение Flatpak может получить доступ только к содержимому своей песочницы.
Доступ к пользовательским файлам, сети, графике и устройствам должен быть явно предоставлен пользователем.
Репозитории
Все приложения Flatpak и время их выполнения хранятся в центральном месте, называемом «Репозитории».
Flathub – это официальный репозиторий всех приложений Flatpak.
Мы можем получить доступ и установить приложения и среды выполнения, используя интерфейс командной строки flatpak.
Установка Flatpak на Linux
Flatpak доступен в репозиториях по умолчанию популярных дистрибутивов Linux, таких как Arch Linux, Debian, Fedora, Gentoo, Red Hat, Linux Mint, openSUSE, Solus, Mageia и Ubuntu.
Чтобы установить Flatpak в Arch Linux и Manjaro Linux, запустите:
$ sudo pacman -S flatpak
$ sudo apt install flatpak
Если вы используете GNOME DE на Debian, установите плагин Flatpak для программного обеспечения GNOME с помощью команды:
$ sudo apt install gnome-software-plugin-flatpak
На Fedora Flatpak установлен по умолчанию. Все, что вам нужно сделать, это включить Flathub, как описано в следующем разделе.
На всякий случай, если он по какой-то причине не установлен, запустите:
$ sudo dnf install flatpak
На RHEL 7 запустите:
$ sudo yum install flatpak
В CentOS 7 Flatpak установлен по умолчанию.
Так что никакой настройки не требуется!
Начиная с Linux Mint 18.3, по умолчанию устанавливается flatpak.
Опять же, настройка не требуется.
В openSUSE Tumbleweed Flatpak можно установить с помощью Zypper:
$ sudo zypper install flatpak
В Ubuntu 18.10 (Cosmic Cuttlefish) и более новых версиях Ubuntu установите flatpak с помощью этой команды:
$ sudo apt install flatpak
В более старых версиях Ubuntu добавьте следующий репозиторий и установите Flatpak, как показано ниже.
$ sudo add-apt-repository ppa:alexlarsson/flatpak
$ sudo apt update
$ sudo apt install flatpak
$ sudo apt install gnome-software-plugin-flatpak
На Solus установите flatpak с помощью команды:
$ sudo eopkg install flatpak xdg-desktop-portal-gtk
На Mageia 6 и более новых версиях вы можете установить Flatpak с DNF:
$ sudo dnf install flatpak
Или установите с urpmi, как показано ниже:
$ sudo urpmi flatpak
$ sudo apt install flatpak
Руководство для начинающих по Flatpak
Есть много популярных приложений, таких как Gimp, Kdenlive, Steam, Spotify, код Visual Studio и т. д., доступных в виде флетпактов.
Чтобы установить приложение Flatpak, нам нужно сначала добавить репозитории Flatpak (или удаленные).
1. Добавление удаленных репозиториев
Как я уже упоминал, приложения и среды выполнения хранятся в репозитории или удаленно.
Официальный репозиторий для flatpak – Flathub.
Чтобы включить репозиторий Flathub в Linux, просто выполните эту команду:
$ sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Доступно множество других неофициальных репозиториев Flatpak.
Выполните быстрый поиск в Интернете, чтобы найти их.
2. Список удаленных репозиториев
Чтобы вывести список всех настроенных удаленных репозиториев, запустите:
$ flatpak remotes
Name Options
flathub system
3. Установка приложения с Flatpak.
В этом разделе мы увидим, как устанавливать приложения Flatpak.
Чтобы установить приложение Flatpak, например коробки GNOME, запустите:
$ flatpak install flathub org.gnome.Boxes
Приведенная выше команда установит приложение в масштабе всей системы.
Если вы не хотите устанавливать приложения в масштабе всей системы, вы также можете установить приложения Flatpak для каждого пользователя, как показано ниже.
$ flatpak install --user <name-of-app>
$ ls $HOME/.var/app/
com.github.calo001.fondo com.github.tchx84.Flatseal org.gnome.Boxes
4. Запуск приложений Flatpak.
Вы можете в любой момент запустить установленные приложения из средства запуска приложений. Из командной строки вы можете запустить его, например, окна GNOME, используя команду:
$ flatpak run org.gnome.Boxes
Flatpak добавит пункты меню всех приложений Flatpak.
Таким образом, вы можете напрямую запустить файл из меню или средства запуска приложений.
5. Найдем приложения Flatpak.
Для поиска приложения:
$ flatpak search gimp
Вывод:
Name Description Application ID Version Branch Remotes
GNU Image Manipulati… Create images and edit photographs org.gimp.GIMP 2.10.20 stable flathub
GIMP User Manual GIMP User Manual org.gimp.GIMP.Manual 2.10 2.10 flathub
Resynthesizer Set of GIMP plug-ins that heal (in-paint), synthesize texture, theme an image, and more …p.GIMP.Plugin.Resynthesizer 2.0.3 2-3.36 flathub
GimpLensfun GimpLensfun is a Gimp plugin to correct lens distortion using the lensfun library and database. org.gimp.GIMP.Plugin.Lensfun 0.2.4 2-3.36 flathub
Fourier A simple GIMP plug-in to do fourier transform on your image. org.gimp.GIMP.Plugin.Fourier 0.4.3 2-3.36 flathub
BIMP Batch Image Manipulation Program, a GIMP plugin to apply a set of manipulations to an entire gr… org.gimp.GIMP.Plugin.BIMP 2.4 2-3.36 flathub
LiquidRescale LiquidRescale plugin to resize pictures non uniformly while preserving their features, i.e. avo… …p.GIMP.Plugin.LiquidRescale 0.7.2 2-3.36 flathub
G'MIC GREYC's Magic for Image Computing org.gimp.GIMP.Plugin.GMic 2.9.2 2-3.36 flathub
FocusBlur Focus Blur plug-in crete a blurring effect similar to Depth of Field. ….gimp.GIMP.Plugin.FocusBlur 3.2.6 2-3.36 flathub
Glimpse Create images and edit photographs org.glimpse_editor.Glimpse 0.2.0 stable flathub
Scans to PDF Create small, searchable PDFs from scanned documents com.github.unrud.djpdf 0.1.2 stable flathub
6. Перечислим локально установленные приложения и среды выполнения Flatpak.
Чтобы просмотреть все установленные в вашей системе приложения и среды выполнения Flatpak, запустите:
$ flatpak list
Вывод:
Name Application ID Version Branch Installation
Fondo com.github.calo001.fondo 1.3.8 stable system
Flatseal com.github.tchx84.Flatseal 1.5.2 stable system
default …reedesktop.Platform.GL.default 19.08 system
Intel …eedesktop.Platform.VAAPI.Intel 19.08 system
openh264 ….freedesktop.Platform.openh264 2.1.0 2.0 system
GNOME Boxes org.gnome.Boxes 3.36.6 stable system
GNOME Application Platform ve… org.gnome.Platform 3.36 system
Ambiance Gtk theme org.gtk.Gtk3theme.Ambiance 3.22 system
Yaru-light Gtk Theme org.gtk.Gtk3theme.Yaru-light 3.22 system
Если вы хотите просмотреть список установленных приложений и сред выполнения с установленным размером, используйте флаг -d.
$ flatpak list -d
Вывод:
… … … Version Branch Arch Origin Installation Ref Active commit Latest commit Installed size …
… … … 1.3.9 stable x86_64 flathub system com.github.calo001.fondo/x86_64/stable 4755529773f0 - 89.3 MB …
… … … 1.6.2 stable x86_64 flathub system com.github.tchx84.Flatseal/x86_64/stable 4e1efc03269e - 2.9 MB …
… … 19.08 x86_64 flathub system org.freedesktop.Platform.GL.default/x86_64/19.08 f68c8e930d04 - 255.7 MB …
… … 19.08 x86_64 flathub system org.freedesktop.Platform.VAAPI.Intel/x86_64/19.08 19fe8e74d641 - 37.0 MB …
… … … 2.1.0 2.0 x86_64 flathub system org.freedesktop.Platform.openh264/x86_64/2.0 73f998362a6f - 778.2 kB …
… … … 3.36.6 stable x86_64 flathub system org.gnome.Boxes/x86_64/stable 98c619ed7873 - 706.9 MB …
… … … 3.36 x86_64 flathub system org.gnome.Platform/x86_64/3.36 d79ff93caf2d - 934.6 MB …
… … … 3.22 x86_64 flathub system org.gtk.Gtk3theme.Ambiance/x86_64/3.22 73fed99df212 - 16.3 MB …
… … … 3.22 x86_64 flathub system org.gtk.Gtk3theme.Yaru-light/x86_64/3.22 2573259417d8 - 718.3 kB …
Перечислим только среды выполнения с помощью команды:
$ flatpak list --runtime
Вывод:
Name Application ID Version Branch Installation
Locale com.github.calo001.fondo.Locale stable system
default …reedesktop.Platform.GL.default 19.08 system
Intel …eedesktop.Platform.VAAPI.Intel 19.08 system
openh264 ….freedesktop.Platform.openh264 2.1.0 2.0 system
Locale org.gnome.Boxes.Locale stable system
GNOME Application Platform ve… org.gnome.Platform 3.36 system
Ambiance Gtk theme org.gtk.Gtk3theme.Ambiance 3.22 system
Yaru-light Gtk Theme org.gtk.Gtk3theme.Yaru-light 3.22 system
$ flatpak list --app
Вывод:
Name Application ID Version Branch Installation
Fondo com.github.calo001.fondo 1.3.8 stable system
Flatseal com.github.tchx84.Flatseal 1.5.2 stable system
GNOME Boxes org.gnome.Boxes 3.36.6 stable system
7. Список удаленных приложений и сред выполнения.
Вы также можете просмотреть список доступных приложений и сред выполнения из удаленных репозиториев.
Чтобы просмотреть приложения и среды выполнения со всех пультов с помощью команды:
$ flatpak remote-ls
$ flatpak remote-ls --runtime
Перечислить только приложения:
$ flatpak remote-ls --app
Список приложений и сред выполнения из определенного репозитория, например flathub, выполните:
$ flatpak remote-ls flathub
Чтобы вывести список только приложений из удаленного репозитория, запустите:
$ flatpak remote-ls flathub --app
8. Обновление приложения Flatpak
Чтобы обновить все ваши приложения Flatpak, запустите:
$ flatpak update
Чтобы обновить конкретное приложение, мы делаем:
$ flatpak update org.gnome.Boxes
9. Просмотр сведений о приложении Flatpak.
Чтобы отобразить сведения об установленном приложении, запустите:
$ flatpak info org.gnome.Boxes
Вывод:
GNOME Boxes - Simple remote and virtual machines
ID: org.gnome.Boxes
Ref: app/org.gnome.Boxes/x86_64/stable
Arch: x86_64
Branch: stable
Version: 3.36.6
License: LGPL-2.1+
Origin: flathub
Collection: org.flathub.Stable
Installation: system
Installed: 706.9 MB
Runtime: org.gnome.Platform/x86_64/3.36
Sdk: org.gnome.Sdk/x86_64/3.36
Commit: 98c619ed78736e85433bcbecd5c4392ad30d4890a71ddc909f5b4c51dfcde340
Parent: 72ec972e0ce7fdf640f478d406a8acad5f90ebd1f8c0ac330baa7ed3dd5ccd70
Subject: Build vte from git master (a8cf05d9)
Date: 2020-09-02 10:02:20 +0000
10. Удаление приложения Flatpak.
Чтобы удалить приложение Flatpak, запустите:
$ sudo flatpak uninstall org.gnome.Boxes
11. Удаление удаленных репозиториев
Чтобы удалить удаленный репо, например flathub:
$ sudo flatpak remote-delete flathub
12. Удаление неиспользуемых сред выполнения
После удаления всех приложений, зависящих от конкретной среды выполнения, сама среда выполнения не будет удалена автоматически.
Чтобы удалить среды выполнения и расширения, которые не используются никакими установленными приложениями, запустите:
$ flatpak uninstall --unused
13. Как удалить кеш-память Flatpak.
Чтобы удалить оставшийся кеш Flatpak в папке tmp, запустите:
$ sudo bash -c "! pgrep -x flatpak && rm -r /var/tmp/flatpak-cache-*"
Если вы используете systemd в качестве системного менеджера по умолчанию, вы можете автоматизировать задачу очистки оставшегося кэша Flatpak, как показано ниже.
Создайте служебный файл с именем clear_flatpak_cache.service в каталоге /lib/systemd/system / со следующим содержимым:
[Unit]
Description=Flatpak cache cleaner
[Service]
ExecStart=bash -c "! pgrep -x flatpak && rm -r /var/tmp/flatpak-cache-*"
[Install]
WantedBy=multi-user.target
Запустите и включите эту службу при загрузке:
$ sudo systemctl enable --now clear_flatpak_cache
![]()
