LINUX.ORG.RU

Чем отличается Flathub от Fedora Flatpaks

 , ,


1

2

Всегда было интересно, зачем Федоре свой репозиторий флатпаков, если есть Flathub, и чем они отличаются. И вот приехала статья на эту тему в Fedora Magazine.

Итак, коротенько для Ъ своими словами.

Я думал, что флатпаки от Федоры родом чисто из Silverblue (кто не в курсе, там прикладной софт категорически рекомендуется использовать из флатпаков), но об этом в статье ни слова. Оказывается, смысл в том, чтобы пользователи Федоры могли получать свежие RPM-ы от Fedora Project без необходимости обновлять свою операционную систему до последней версии.

Способ упаковки (точнее перепаковки) федоровских флатпаков сильно ограничен по сравнению с Flathub-ом; они используют строго один источник — уже существующие rpm-пакеты от Fedora Project, и в отличие от Flathub-а, распространяют только свободный софт. Flathub же упаковывает и перепаковывает из разных источников, например, Chrome из deb-пакета, UnityHub из Appimage, Spotify из Snap-а, Android Studio из официального тарболла и тд, в том числе собирают из исходников.

Конечно, софта в Fedora Flatpaks кот наплакал, по сравнению с Flathub-ом. На данный момент вот так

$ flatpak remote-ls --app fedora | wc -l
86
$ flatpak remote-ls --app flathub | wc -l
1520

Интересно, что форматы распространения флатпаков у Fluthub и Fedora Flatpaks совершенно разные. Fluthub использует формат OSTree (родной формат для Flatpak), а Fedora Flatpaks использует формат OCI.

OSTree — это инструмент похожий на Git, только для двоичных файлов. Когда вы скачиваете программу, OSTree ищет разницу между установленной версией и обновленной, затем скачивает и применяет только то, что имеет различия, а остальное оставляет нетронутым. Это называется дельта-обновления.

OCI (Open Container Initiative) — это формат, который работает подобно Docker, он позволяет Проекту Fedora расширять свой Docker registry, складывая туда флатпаки в виде докер-образов, и потом использовать этот самый Docker registry вместо того, чтобы создавать дополнительную инфраструктуру для репозитория флатпаков.

Среда выполнения (runtimes) соответственно тоже отличается для программ из Fluthub и Fedora Flatpaks. Вообще флатпаковские рантаймы — это ключевые зависимости, необходимые для работы программ, они нужны для так называемой дедупликации, то есть один и те же программы могут использовать одинаковые рантаймы и таким образом нет необходимости дублировать необходимые зависимости, в общем как в классическом Linux. Одни рантаймы базируются на других, какие-то сами по себе.

В Flathub дела обстоят так, что для GTK-программ используется GNOME runtime (org.gnome.Platform), а для KDE-программ — KDE runtime (org.kde.Platform), и они оба строятся поверх freedesktop.org runtime (org.freedesktop.Platform), который используют независимые от гнома и кед программы. И все это хозяйство поддерживается соответствующими организациями. В результате, если вы, например, совсем не используете программ на GTK или KDE, будут установлены только необходимые рантаймы.

В Fedora Flatpaks все по-другому. Они используют одну среду выполнения для всего, независимо от размеров программы. Если вы установите любую одну программу из Fedora Flatpaks, то она скачает и установит весь федоровский рантайм (org.fedoraproject.Platform).

Вот такие дела.

За пределами Fedora Linux тоже можно поюзать федоровские флатпаки, небо не упадет на землю

flatpak remote-add --if-not-exists fedora oci+https://registry.fedoraproject.org

они используют строго один источник — уже существующие rpm-пакеты от Fedora Project, и в отличие от Flathub-а, распространяют только свободный софт.

Какие-то взаимо-исключающие тенденции ...

kto_tama ★★★★★
()
Ответ на: комментарий от kto_tama

У Федоры вообще очень строго по поводу свободы, иначе быть не может.

Кстати, в флатхабе тоже скоро отделят свободный софт от остального, я не стал об этом, а интересно…

Flathub plans to separate proprietary applications from free and open source applications, as stated by a recent blog post from GNOME.

papin-aziat ★★★★★
() автор топика

Спасибо на инфу. Тоже не мог догнать зачем они дублируют флатпаки отдельно для дистрибутива.

Sunderland93 ★★★★★
()

OCI (Open Container Initiative) — это формат, который работает подобно Docker

Это и есть формат Docker.

anonymous
()

Спасибо, познавательно.

Aceler ★★★★★
()
Ответ на: комментарий от anonymous

У меня нет компетенции, чтобы хорошо своими словами описать, поэтому я просто примерно повторил за автором статьи

This format is similar to how Docker works …

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от papin-aziat

OCI - это Open Container Initiative, организация поддерживающая стандарт на runtime и на образы для контейнеров. Docker, Podman и т.п. все используют совместимые с этим стандартом технологии.

То есть то что Flatpak использует OCI не значит, что он использует внутри себя Docker, но значит что он следует тем же стандартам.

alpha ★★★★★
()
Ответ на: комментарий от Minona

Это разные вещи.

Убунту — это типичный паразит на теле Линукс, основанный довольно беспринципным богачем, хотя ее некоторые продукты жизнедеятельности и бывают как-то случайно полезны для опенсорса.

Федора — это настоящий лидер в мире Линукс, который не только отражает текущее положение дел в этом мире, но и самым активным образом реализует все достижения, при поддержке корпорации, глубоко заинтересованной в развитии опенсорса, и совместно они делают все эти достижения доступными для других, в том числе для убунту.

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от alpha

Как я понял, эти docker images по сути инструкции по созданию контейнеров (в том числе flatpack), основанные на этом стандарте OCI. А чем они отличаются от рабочих контейнеров я не знаю.

Вопрос вот какой. Получается эти федоровские флатпаки можно себе устанавливать в виде докер-контейнеров командой docker pull bla-bla/baobab?

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от papin-aziat

Федора — это настоящий лидер в мире Линукс, который не только отражает текущее положение дел в этом мире, но и самым активным образом реализует все достижения, при поддержке корпорации, глубоко заинтересованной в развитии опенсорса, и совместно они делают все эти достижения доступными для других, в том числе для убунту.

о боги, тебе бы в газету на зарплату, тем временем Fedora становится все более трудной в установке на старое железо – очень современно ага, позорище.

anonymous
()
Ответ на: комментарий от anonymous

У меня самого стремительно стареющий компьютер, и я уже скоро два года как перешёл на RHEL 8. На гном 40+ перейду наверное только если куплю новое железо.

По ссылке человек поймал конкретный баг, что необычного, ты там линуксоид?

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от Minona

Не, на это у космонавта силенок не хватило…

Помяни мое слово, убунту сойдёт на нет, просто надо подождать, люди не быстро меняют привычки.

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от papin-aziat

человек поймал конкретный баг, что необычного

ну да, обычный такой баг. «нет вайфая – нет консоли, пишите письма до востребования.»

anonymous
()
Ответ на: комментарий от anonymous

Согласен, эпично, я вот не поверил, что такое возможно :-)

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от Minona

Во-первых я не специалист, надеюсь тебе ответят другие, во-вторых убунту я для себя закрыл ещё тогда, когда космонавт решил пилить десктоп в одно лицо, (помнишь юнити, мир и тд), поэтому совсем не в курсе чем они там живут.

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от James_Holden

Флатпак умеет сам обновлять ПО и в случае неудачного апдейта откатываться на предыдущую версию?

Minona ★★☆
()
Ответ на: комментарий от Minona

Обновлять умеет как и любой пакетный менеджер. Откатываться тоже умеет, там принцип коммитов, как в гите. Можно откатиться на любой коммит.

James_Holden ★★★★
()
Ответ на: комментарий от Minona

У флатпака же вроде атомарные обновления, значит они просто не будут применены в случае неудачи, не?

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от Minona

Если голый флатпак, то вручную. Если в комбинации с менеджером приложений - то фоном работает. Насчёт отката обновлений в случае неудач (автоматически) не в курсе.

Sunderland93 ★★★★★
()
Ответ на: комментарий от papin-aziat

в snap это работает так:
разработчик публикует новую версию софта.
snapd на девайсе запускает процесс обновления, в случае неудачи (пропала сеть, ...) ничего не сломается, будет позже предпринята попытка повторного обновления.

а как в флатпак?

Minona ★★☆
()
Ответ на: комментарий от papin-aziat

Вопрос вот какой. Получается эти федоровские флатпаки можно себе устанавливать в виде докер-контейнеров командой docker pull bla-bla/baobab?

Я не разбиралась в деталях, но скорее всего да.

При этом flatpak вероятно делает кучу других полезных вещей, типа складывания этих образов отдельно от просто контейнеров, прокидывания правильных каталогов внутрь, расшаривания устройств по необходимости, создания desktop-файлов, настройки профилей и т.д. и т.п.

То есть всё это можно было бы сделать и руками запустив контейнер из образа, но только это было бы сравнимо с однострочником для установки генты.

alpha ★★★★★
()
Ответ на: комментарий от Minona

snapd на девайсе запускает процесс обновления, в случае неудачи (пропала сеть, …) ничего не сломается, будет позже предпринята попытка повторного обновления.

У самого флатпака вроде такого нет. Демона никакого точно нет Авто-обновления надо как-то делать отдельно, по крону например. Если в процессе обновления обломится, то ничего не сломается и можно запускать опять, обновления атомарные.

Но учти, что флатпак не затачивается совсем под серверные нужды, даже не знаю что ты через него на сервер будешь ставить. Он для десктопа.

James_Holden ★★★★
()
Ответ на: комментарий от papin-aziat

Получается эти федоровские флатпаки можно себе устанавливать в виде докер-контейнеров командой docker pull bla-bla/baobab?

Этим ты спуллишь себе запакованный ostree коммит, естественно docker run так просто приложение не запустит

vrutkovs ★★
()
Последнее исправление: vrutkovs (всего исправлений: 1)
Ответ на: комментарий от vrutkovs

Тогда просто интересно для кого это ещё полезно, кроме тех, кто из этого делает потом flatpak-bundle.

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от Minona

есть ли в мире Федоры альтернатива Ubuntu Core + Snap?

Нет.

Ubuntu Core, кстати прикольное решение для IoT.

Flatpak завязан на десктоп. Максимально кривое и оверхедноне решение для возильщиков — не более. Этакий тестовый полигон для OSTree. В итоге целью является не качество конечного продукта, а тестирование на пионерах технологии. Почти все сторонние разработчики его сторонкой обходят.

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 1)
Ответ на: комментарий от alpha

Из статьи получается такая цепочка.

  • Берут готовый RPM.

  • Делают из этого rpm-а некий Flatpak-compatible file (он же Docker image) и помещают его в Fedora Registry.

  • Потом видимо из этого докер-образа пакуют Flatpak app и помещает его в Flatpak remote, откуда пользователь скачивает программу вместе с рантаймом.

Из статьи складывается впечатление, что докер-образ и фталпак-программа это одно и то же, а Fedora Registry и Flatpak remote как-то совмещены, но это походу не так, должен же быть отдельный репозиторий для готовых пакетов и рантаймов.

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от anonymous

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

anonymous
()

софта в Fedora Flatpaks кот наплакал, по сравнению с Flathub-ом

Есть ли в Fedora Flatpaks что-то интересное? Или там просто дублируется на свой лад ПО из Flathub’а?

nvl ★★★
()
Ответ на: комментарий от nvl

Или там просто дублируется на свой лад ПО из Flathub’а?

Читал по-диагонали? Они не пересекаются.

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от Sunderland93

Впервые вижу …

Бывает, с возрастом пройдёт.

… фаната Snap

Не, мимо, ты тред не читал.
Я смотрел на трубе доклад с какой-то конференции.
Там чел увлечённо вещал какая это клёвая штука для IoT.
Папа-Азиат похаял Космонавта и Убунту, вот я и задал вопрос про альтернативу этой штуки.

Fedora IoT похожа на альтернативу.

Minona ★★☆
()
Ответ на: комментарий от papin-aziat

Ничем не полезно кроме этого, разве что не нужно поддерживать отдельную ostree репу - любой OCI registry работает как хранилка

vrutkovs ★★
()
Ответ на: комментарий от Sunderland93

Впервые вижу живого фаната Snap

Это не реально. У Snap проприетарный сервер. Это уже отсеивает всех религиозных фанатиков.

А так он сам по себе кривоват, то это добивает.

Но выше сказано верно: аналога со стороны Fedora для IoT по факту не водится. Get the fact.

PS: а вот фанатиков каноничных у Flatpak хоть пруд напруживай

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 2)
Ответ на: комментарий от papin-aziat

можно и снап накатить на Федору или Шапку, вроде работает.

Ключевое слово «вроде»

fornlr ★★★★★
()
Ответ на: комментарий от fornlr

У Snap проприетарный сервер. Это уже отсеивает всех религиозных фанатиков.

Чем это хуже готовых .deb или бинарных инсталляторов?

AVRS ★★
()

и они оба строятся поверх freedesktop.org runtime (org.freedesktop.Platform)

Интересно, возможно ли runtime от микрософта (com.microsoft.Windows11.Platform) во flatpak засунуть с возможностью исполнения ms-windows-программ?

nvl ★★★
()
Ответ на: комментарий от Minona

Я не хочу сказать, что убунту плохо работает, как раз наоборот, это им удается хорошо, ибо ресурсы приличные были вложены и сообщество большое получилось, не говоря о той фундаментальной базе — Debian — на которой они сидят.

Мне просто с ними не по пути по философским соображениям. Я вижу все это так. Когда намечается новый вектор развития в опенсорс, то сразу появляются желающие хайпануть на этом. Что делают такие ребята?! Они хватают сырые технологии, пользуясь открытостью, и начинают костылять, пытаясь изо всех сил бежать впереди паровоза, но этот самый паровоз медленно, но верно, всегда их догоняет и переезжает….

С тех пор как Марк показал себя именно с этой стороны, он для меня пустое место, вместе с убунту. Он даже хуже оказался, ибо постоянно норовит стянуть одеяло со всего опенсорс-сообщества на себя, создавая альтернативные проекты (видимо очень хочется стать ещё одним Гейтсом или Джобсом).

Я глубоко убежден, что всё это канет в лету, ибо это так не работает, а если это таки сработает так, то это конец всему тому, за что мы любим Линукс.

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от papin-aziat

Если wine то

org.freedesktop.Platform <- wine <- ms-soft

со всеми недостатками.

Я об

com.microsoft.Windows11.Platform <- ms-soft

Понятно, что это влажные мечты, микрософт на это никогда не пойдет. Это получится анти-wcl. Есть узкоспециализированный проприетарный софт, который под wine работает плохо или вообще не работает. Под него приходится отдельный ноут держать.

nvl ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.