В этом руководстве мы увидим, что такое Flatpak, как установить Flatpak на Linux, а затем как использовать пользовательский интерфейс командной строки Flatpak для установки приложений.

Введение в 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 написан на C и выпущен под лицензией LGPL.

Runtimes (Среды выполнения)

Каждое приложение Flatpak зависит от среды выполнения, чтобы правильно работать на хост-системе.

Среда выполнения — это не что иное, как набор основных зависимостей (библиотек), необходимых для приложения. Когда мы устанавливаем приложение с помощью команды 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
Flatpak доступен в репозиториях по умолчанию Debian Buster и более новых версий.
Чтобы установить Flatpak на Debian, запустите:
$ 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
Плагин Flatpak для приложения GNOME Software позволяет устанавливать приложения без использования командной строки.
Чтобы установить этот плагин, запустите:
$ 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
В Pop! _OS 20.04 по умолчанию установлен Flatpak и настроен Flathub.
Если вы используете Pop! _OS 19.10 или более ранние версии, запустите:
$ sudo apt install flatpak
elementary OS 5.1 и новее поставляется с поддержкой 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
Как видите, в приведенной выше команде перечислены репо, которые вы добавили в свою систему.
В моем случае я добавил репозиторий flathub для всей системы.

3. Установка приложения с Flatpak.

В этом разделе мы увидим, как устанавливать приложения Flatpak.

Чтобы установить приложение Flatpak, например коробки GNOME, запустите:

$ flatpak install flathub org.gnome.Boxes

Приведенная выше команда установит приложение в масштабе всей системы.

Если вы не хотите устанавливать приложения в масштабе всей системы, вы также можете установить приложения Flatpak для каждого пользователя, как показано ниже.

$ flatpak install --user <name-of-app>
Все установленные приложения будут храниться в папке $HOME/.var/app/location.
$ 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
Эта команда вернет все приложения, соответствующие строке «gimp», со всех удаленных репо.

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
С этого момента оставшиеся файлы кэша Flatpak будут очищаться при запуске.

 

Поделитесь статьей:

Добавить комментарий