Но. Flatpak же - самодостаточные пакеты, значит их можно установить в любом дистрибутиве. А вот это уже интересно.[spoiler] Берём Ubuntu устанавливаем flatpak штатными средствами и добавляем репозитарий eos:
$ flatpak remote-add eos-apps https://ostree.endlessm.com/ostree/eos-apps --no-gpg-verify |
Обратите внимание на отсутствующее sudo — Flatpak сам спросит пароль пользователя для добавления удалённого репозитария. Опция --no-gpg-verify отключает проверку цифровых подписей — я не искал эти подписи в дистрибутиве eos, на боевой системе так делать не надо!
Смотрим содержимое репозитария и диву даёмся:
$ flatpak remote-ls eos-apps |
…253 строки, я выбрал наиболее, на мой взгляд, интересные …
com.github.Slingshot com.google.AndroidStudio com.google.Chrome com.microsoft.Skype com.mojang.Minecraft com.slack.Slack com.spotify.Client com.stencyl.Game com.sublimetext.three com.teeworlds.Teeworlds com.transmissionbt.Transmission com.valvesoftware.Steam com.visualstudio.code.oss io.atom.Atom io.github.Supertux org.codeblocks.App org.eclipse.Eclipse org.freeciv.Freeciv org.frozenbubble.FrozenBubble org.gimp.Gimp org.inkscape.Inkscape org.mozilla.Firefox org.openarena.Openarena org.openscad.Openscad org.pitivi.Pitivi org.platformio.Ide org.stellarium.Stellarium org.tuxfamily.Xmoto org.tuxpaint.Tuxpaint org.videolan.VLC org.wesnoth.Wesnoth |
Установим, для примера, видеоплеер VLC (а вот тут надо sudo, из-за проблем с отсутствием цифровых подписей):
$ sudo flatpak install eos-apps org.videolan.VLC Требуемая среда исполнения для org.videolan.VLC/x86_64/eos3 (com.endlessm.Platform/x86_64/eos3.1) не установлена, поиск... Требуемая среда исполнения com.endlessm.Platform/x86_64/eos3.1 не найдена в настроенных удалённых репозиториях. ошибка: The Application org.videolan.VLC/x86_64/eos3 requires the runtime com.endlessm.Platform/x86_64/eos3.1 which is not installed |
Не тут-то было! Пакет org.videolan.VLC имеет зависимость. К счастью, во Flatpak зависимости бывают только от пакетов к рантаймам. Поэтому нам всего лишь потребуется подключить репозитарий с рантаймами:
$ flatpak remote-add eos-runtime https://ostree.endlessm.com/ostree/eos-amd64 --no-gpg-verify |
Повторяем установку:
$ sudo flatpak install eos-apps org.videolan.VLC Требуемая среда исполнения для org.videolan.VLC/x86_64/eos3 (com.endlessm.Platform/x86_64/eos3.1) не установлена, поиск... Обнаружен удалённый репозиторий eos-runtime, установить? [y/n]: y Установка: com.endlessm.Platform/x86_64/eos3.1 из eos-runtime 1043 metadata, 56516 content objects fetched; 853761 KiB transferred in 1528 seconds Установка: org.videolan.VLC/x86_64/eos3.2 из eos-apps 4 delta parts, 35 loose fetched; 46133 KiB transferred in 10 seconds |
В некоторых случаях можно прямо указать, какой версии пакет нужно поставить:
$ sudo flatpak install eos-apps org.videolan.VLC//eos3.2 |
К счастью, конечному пользователю ни к чему эти заклинания в командной строке — я показал их здесь исключительно для того, чтобы была возможность взглянуть на Flatpak «изнутри». Для конечного пользователя можно сформировать файл flatpakref либо flatpakrepo. Первый содержит в себе всё необходимое для установки пакета и его рантайма, второй — описание репозитария, из которого пользователь затем сможет установить любое ПО при помощи Gnome-software или KDE Adept.
Лично я последнюю неделю в качестве эксперимента использую VLC из набора eos и прекрасно себя чувствую. Пакет интегрирован в систему как родной, файлы играет, ассоциации с расширениями поддерживает, в меню появляется. Единственная разница между пакетом Flatpak и системным — программы из Flatpak не подхватывают тему оформления. Разработчики работают над этим.
Таким образом, Flatpak предлагает нечто среднее между установочным пакетом snap/AppImage/MSI/DMG и пакетом из репозитария. С одной стороны, у нас-таки есть зависимость, но зависимость только одна — от рантайма, а в системе может быть несколько рантаймов, соответственно, мы не попадаем в ситуацию, когда свежую версию ПО нельзя установить из-за старых библиотек в системе. С другой стороны, репозитарии автоматически прописываются в системе и пакеты и рантаймы из них автоматически обновляются, за это мы и любим репозитарии.
Пытаясь совместить преимущества и той и другой системы, по-моему, у разработчика Flatpak получилось весьма неплохо, как вы считаете?