LINUX.ORG.RU
ФорумTalks

flatpack vs snap

 , ,


3

1

Наконец, мне объяснили разницу между flatpack и snap.

Отличия Flatpak от Snap сводятся к тому, что Snap предлагает небольшой базовый runtime с начинкой контейнера на основе монолитных выпусков Ubuntu Сore, в то время как Flatpak помимо основного runtime использует дополнительные и отдельно обновляемые runtime-слои (bundle) с типовыми наборами зависимостей для работы приложений. Таким образом, Snap большую часть прикладных библиотек переносит на сторону пакетов (последнее время возможен вынос крупных библиотек, таких как библиотеки GNOME и GTK, в общие пакеты), а Flatpak предлагает общие для разных пакетов bundle-наборы библиотек (например, в bundle вынесены библиотеки, необходимые для работы программ c GNOME или KDE), что позволяет сделать пакеты более компактными.

https://www.opennet.ru/opennews/art.shtml?num=57035

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 2)

А еще снап — вендорлок космонавта. А плоские пакеты — действительно кроссдистрибутивный формат.

hateWin ★☆
()

Они совсем по-разному устроены. Например, механизмы изоляции отличаются чуть более чем полностью.

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

Более того, во флатпаке проделали существенную работу по увеличению гранулярности изоляции: все стандартные механизмы IPC (типа того же D-Bus) и ввода-вывода завернули в прослойки-«порталы». Т. е. если приложению нужен доступ к D-Bus, то вместо того, чтобы прокидывать целиком сокет и таким образом выставлять систему голой жопой, приложению можно дать доступ к конкретному адресу на шине и больше ничего он не увидит. Если приложению нужен доступ к вебке или микрофону, то опять же, приложению не выдаётся «сырой» доступ к /dev/snd или /dev/v4l или сокету PA, а только прослойка, которая сначала спрашивает у юзера, можно ли дать доступ к конкретному устройству, а уже потом пробрасывает поток данных. И так далее. В снапе, насколько я знаю, ничего подобного нет.

Подход флатпака мне видится более правильным. Единственное, что мне в нём совсем не нравится — это то, как они сделали портал для файлов. Он выглядит как один огромный костыль и требует поддержки со стороны каждого конкретного тулкита или приложения.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 9)

flatpack vs snap

Говно с изюмом vs говно с орехами.

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

А еще снап — вендорлок космонавта. А плоские пакеты — действительно кроссдистрибутивный формат.

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

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

из нас двоих я хотя бы знаю, что это такое=)

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

ты предметно ответь ему и мы посмотрим. че флудить зазря.

crypt ★★★★★
() автор топика

Всё немного проще.

Снап это костыль, который нужен ради странных приложений навроде фурифокса, которые вместе с зависимостями обновляются быстрее чем плодятся мухи.

Фатплак это костыль, который старается делать вид, что он не костыль и всё так и надо.

Нужность первого сомнительна, при возможности компилять всё статически.

Нужность второго сомнительна.

ya-betmen ★★★★★
()
Ответ на: комментарий от intelfx

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

А как его ещё можно было реализовать? По-моему, document portal — это настоящая киллер-фича. Не надо приложению давать доступ ко всем файлам, как в Android (хотя в 12 вроде аналогичную возможность притащили), или руками перебрасывать файлы туда-сюда, если разрешён доступ только к определённой директории.

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

О, а вот и интересная информация подъехала. Пиши ещё :)

А вообще тема интересная. Ещё бы к сравнению добавить AppImage, чтобы была полная картина из подобных подходов.

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

чтобы была полная картина из подобных подходов

Полная картина тут:

Наконец, про Flatpak, Appimage, «десктоп» и распространение сторонними разработчиками приложений для него. Flatpak создатели гордо называют «будущим распространения пакетов для GNU/Linux», при этом проблемы, которые он неспособен решить либо сам же и создаёт, попросту игнорируются. Во-первых, даже для установки одного небольшого приложения уже надо тащить сотни мегабайт (а то и гигабайты) зависимостей, дублирующих то, что уже есть в системе. А разным приложениям могут быть нужны разные версии «рантаймов» — «хромбук» с накопителем на 32 ГБ такое уже не потянет. Во-вторых, там огромные проблемы с интеграцией как с системой, так и с остальными приложениями: попробуй, например, завести прокси или KeepassXC в браузере, установленном через Flatpak (или gtk3-nocsd). В-третьих, скачать/установить Flatpak-пакет можно только через пакетный менеджер и только из репозитория. Разработчик не может просто так выложить у себя установщик, нужно обязательно заливать либо на Flatuhub, либо куда-то ещё. Нет человеческого способа скчать пакет для последующей оффлайн-установки или же раздать пакет относительно небольшому количеству людей, не забивая голову всякими там репозиториями.

Appimage, в свою очередь, в основном позиционируется как более простая и легковесная альтернатива Flatpak. При этом его разработчики/сторонники тоже упорно игнорируют тот факт, что пригоден он только для портативных приложений, а не в качестве замены Flatpak или традиционным ПМ. Т. е., например, вполне годится, чтобы поставить что-то «на посмотреть» (в т. ч. для бета-версий), но на постоянной основе этим пользоваться проблематично. Во-первых, нужны костыли для создания .desktop-файлов и прочей интеграции с системой, а также для обновлений. Во-вторых, забит болт на изоляцию и порталы. Для изоляции предлагают использовать Firejail (который требует отдельной кропотливой настройки для каждого приложения и чуть менее, чем полностью непригоден для использования на «десктопе»), т. е. игнорируют объективную реальность и отрицают проблемы, вместо того чтобы хотя бы попытаться их решить. В-третьих, каждущаяся легковесность достигается за счёт сжатия. Но ведь для того, чтобы использовать приложение, нужно его распаковать. И распаковывают в /tmp. Опять же, для использования большого количества приложений на постоянной основе такое не годится. В-четвёртых, там каждое приложение тянет за собой все зависимости. При установке большого количества приложений это неэффективно (и в любом случае небезопасно).

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

зависимостей, дублирующих то, что уже есть в системе.

Для оффтоика с маком это не было никогда проблемой

завести прокси или KeepassXC в браузере, установленном через Flatpak (или gtk3-nocsd).

А их и не нужно тогда заворачивать во flatpack, юзать для прог типа gimp, ff и т.д.

В-третьих, скачать/установить Flatpak-пакет можно только через пакетный менеджер и только из репозитория. Разработчик не может просто так выложить у себя установщик, нужно обязательно заливать либо на Flatuhub, либо куда-то ещё. Нет человеческого способа скчать пакет для последующей оффлайн-установки или же раздать пакет относительно небольшому количеству людей, не забивая голову всякими там репозиториями.

Вот это - проблема, да.

Appimage

это какая-то третья *рень?

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

А плоские пакеты — действительно кроссдистрибутивный формат.

Нет человеческого способа скчать пакет для последующей оффлайн-установки

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

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

Нет человеческого способа скчать пакет для последующей оффлайн-установки

Вот это херово. В традиционных ПМ есть возможность просто выкачать пакет.

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

Для оффтоика с маком это не было никогда проблемой

Просто юзвери этих платформ привыкли, что система откусывает сотни места и даже не догадываются, что можно иначе. А о более глубинных проблемах типа дырок безопасности им вообще не велено знать.

А их и не нужно тогда заворачивать во flatpack

Кого?

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

Ещё бы к сравнению добавить AppImage

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

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

Нет человеческого способа скчать пакет для последующей оффлайн-установки

Это ложное утверждение.

https://docs.flatpak.org/en/latest/usb-drives.html

https://docs.flatpak.org/en/latest/single-file-bundles.html

@hateWin

он еще больше лочит и за пределами своей платформы не радует

Когда говорят, что кто-то кого-то лочит, обычно подразумевается искусственное ограничение свободы пользователя в рамках какой-то административной сущности. Использование термина «лочить» для описания технических ограничений является демагогией — весь смысл термина теряется, а остаётся только эмоциональная окраска.

Это к тому, что у флатпака нет «своей платформы», кто угодно может закинуть флатпак с зависимостями на свой сервер и дать пользователю устанавливать оттуда.

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

А что, snap-пакеты можно устанавливать не через репозиторий космонавта?

Ну да. Типа как в Android.

Установить .snap файл с локальной ФС.

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

Человеческий способ (a.k.a. «как это происходит в Windows/Android/etc»):

  1. На Flathub и/или сайте разработчика нажимаешь кнопку «скачать».

  2. Полученный файл записываешь на носитель.

  3. Подключаешь носитель к ПК, на который нужно что-то установить.

  4. Быбираешь скачанный ранее файл.

  5. Нажимаешь «установить».

  6. Profit.

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

Начнём с того, что в моём комментарии нигде не упоминалось слово Flathub.

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

Разработчик выкладывает *.flatpak

Since single-file bundles don’t include dependencies or AppStream data, the preferred way of distributing applications offline is with the create-usb command; see USB Drives.

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

Начнём с того, что в моём комментарии нигде не упоминалось слово Flathub.

Как будто она где-то ещё есть.

И дальше что?

А зависимости?

Если ты как разработчик выкладываешь файл у себя на сайте, зачем тебе AppStream metadata?

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

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

У человека своя реальность, не мешай ему.

Aceler ★★★★★
()

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

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

Нужна возможность скачать и установить оффлайн-пакет, но не ценой отказа от репозиториев

Ты хочешь скрестить ежа с ужом. Пердолинг с зависимостями в оффлайне неудобен в любом виде — хоть с полным репозиторием на двух десятках DVD, хоть с полумерами твоими.

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

приложение ещё как-то обновлять надо

Сто лет под форточками приложения сами свои обновления проверяют. И приложения из тарболов под онтопиком в том числе (напр., Firefox, Thunderbird, TelegramDesktop, Electrum). Нет — надо какую-то бурду изобрести.

Кстати, мейнтейнеры дистрибутивных пакетов не всегда из приложений встроенную проверку обновлений выпиливают, забавное зрелище выходит.

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

образы приложений с макоса

С учётом того, что probonopd — [латентный] некромакодрочер, AppImage этим вот самым и являются. Даже название намекаэ своей похожестью на dmg.

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

Как будто она где-то ещё есть.

Кто она?

Flathub — это онлайн-репозиторий. Его создатели считают, что оффлайн ненужен. Имеют полное право, т. к. флатпак на флатхаб не завязан никак. Это никак не мешает заинтересованным авторам выкладывать файлы для оффлайн-установки отдельно, равно как не мешает и появлению альтернативных репозиториев для флатпака с кнопкой «скачать».

А зависимости?

Можно положить рядом, можно вообще не положить. Будет как с Visual C++ redistributable в винде.

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

А какое это имеет отношение к тому, что я написал?

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)

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

В итоге предпочитаю юзать софт из AppImage. Особенно удобно что можно его просто на флешку схоронить для будущей пере-установки (особенно когда интернет под рукой только мобильный). А изоляция - реально почти не нужна. Может только браузеру какому-нибудь.

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

Это ж раритет из начала нулевых, не? Я хз, у меня обычные харды

Это распаянная внутренняя память в ноутбуках. Замене и апгрейду не подлежит.

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

Кто она?

Кнопка «скачать».

Будет как с Visual C++ redistributable в винде.

:\ Ну и зачем нам откат к виндовому dependency hell, если можно сделать лучше?

Это никак не мешает заинтересованным авторам выкладывать файлы для оффлайн-установки отдельно

А какое это имеет отношение к тому, что я написал?

А такое, что ты предлагаешь костылить выкладывание файлов вне репозиториев с зависимостями в виде отдельных пакетов.

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

:\ Ну и зачем нам откат к виндовому dependency hell, если можно сделать лучше?

А ты точно знаешь, что такое dependency hell?

А такое, что ты предлагаешь костылить выкладывание файлов вне репозиториев с зависимостями в виде отдельных пакетов.

Определись уже, что ты хочешь — репозиторий или выкладывание файлов? Потому что я перестал тебя понимать.

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

А изоляция - реально почти не нужна. Может только браузеру какому-нибудь.

Какой-то наивный взгляд на мир. Очень многое ПО сейчас имеет космическую сложность, аудитом всего что к тебе прилетает на комп заниматься не реально. Антивирус как концепция тоже устарел, ведь он защищает только после того как погорело определённое кол-во людей.

Поэтому единственный нормальный подход это изоляция по умолчанию. Просто переходить на такой после десятилетий «обычной» работы очень сложно.

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

hateWin в недавней новости про fbreader я искал ссылку на исходник https://snapcraft.io/fbreader и выходит, я перепутал. там снап пакет, а не флат.

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