LINUX.ORG.RU

Flatpak, Snap - технологии ради кроссплатформенности

 ,


0

1

У меня есть вопросы по поводу Snap, Flatpak:

  1. Конкретно для каких целей, кроме отвязки пакетов от дистрибутивов, делаются эти технологии?
  2. Snap и Flatpak позволяют запускать приложения, привязанные к x86 и x64, на устройствах с процессорах ARM?

кроме отвязки пакетов от дистрибутивов

Для отвязки от дистрибутивов — это главная задача. Помимо этого, ещё изоляция программ в песочнице с управлением правами, как приятный бонус.

на устройствах с процессорах ARM?

Да.

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

Да.

А как это делается? Разве бинарь не должен быть собран под целевую платформу или содержать какие-от костыли в пакете? Или там тащится весь обвяз под все платформы \ собирается под все платформы?

Но более важнее - дай фулл аватарки, пожалуйста ^_^

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

Дополню.

Snap в меньшей степени тянет за кроссдистрибутивную замену пакетных менеджеров, чем Flatpak. Для сборки Snap нужна Ubuntu, внутри базовых образов Ubuntu, а программы поставляются через единственный Snap Store, то есть это дикая централизация и нужно плясать под дудку Canonical. Ещё песочница не на всех дистрибутивах полноценно работает и программы часто ведут себя странно на не-Ubuntu, вроде Fedora.

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

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

А как это делается?

Собирается под разные архитектуры, конечно же. E.g.

[commagray@Canterlot ~]$ flatpak remote-ls --arch=aarch64
Name                         Application ID                                              Version Branch     Arch
RedNotebook                  app.rednotebook.RedNotebook                                         stable     aarch64
ConfClerk                    at.priv.toastfreeware.ConfClerk                                     stable     aarch64
escript                      au.edu.uq.esys.escript                                              stable     aarch64
adriconf                     br.com.jeanhertel.adriconf                                          stable     aarch64
invesalius                   br.gov.cti.invesalius                                               stable     aarch64
Nestopia                     ca._0ldsk00l.Nestopia                                               stable     aarch64
dconf-editor                 ca.desrt.dconf-editor                                               stable     aarch64
asunder                      ca.littlesvr.asunder                                                stable     aarch64
JClic                        cat.xtec.clic.JClic                                                 stable     aarch64

собирается под все платформы?

This.

дай фулл аватарки, пожалуйста

Осторожно, NSFW! Derpibooru: 1502437 (скетч-версия) && 1591080 (чистая версия).

commagray ★★★★★ ()

Flatpak - это такая попытка изобрести «стандартный» (т.е. ещё один) дистрибутив. Почему? Приложения в flatpak очень сильно изолированы от хост системы. Вот например - https://github.com/flathub/com.jetbrains.IntelliJ-IDEA-Community/issues/3, IDEA упакованной во flatpak нужет JDK внутри flatpak-а, системный по-просту не доступен.

snap в этом плане лучше.

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

системный по-просту не доступен.

Это, по идее, пофиксили в последнем мажорном выпуске.

https://github.com/flatpak/flatpak/releases/tag/1.7.1

If an app has filesystem access, the host /lib is accessible as /run/host/lib, etc.
New filesystem permission «host-etc» and «host-os» give access to system /usr and /etc.

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

Для сборки Snap нужна Ubuntu

На хосте не нужна.

внутри базовых образов Ubuntu

В сущности, это не важно.

программы поставляются через единственный Snap Store

Многие поставляются как релизы на гитхабе. Даже так всяко надёжнее, чем васяносборки на flathub.

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

На хосте не нужна.

Ага, виртуалку скачает и будет в ней компилировать.

Даже так всяко надёжнее, чем васяносборки на flathub

На Flathub васяносборки собирает робот из манифестов, которые проходят ревью. А быть всем-всем на Flathub необязательно, разработчик может сам создать репозиторий или просто распространять .flatpak-пакет. Даже AppImage в этом плане лучше Snap. =/

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

Конкретно для каких целей, кроме отвязки пакетов от дистрибутивов, делаются эти технологии?

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

Для отвязки от дистрибутивов идеи AppImage больше подходят

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

Ага, виртуалку скачает и будет в ней компилировать.

Ну да, не вижу ничего плохого. Можно ещё LXD использовать, так оно шустрее шевелится.

anonymous ()
  1. Конкретно для того, чтобы можно было скачать последнюю версию приложения с сайта разработчика и запустить её на любом дистрибутиве. То есть так, как это принято в нормальных десктопных ОС. Правда у костылинукса и тут ожидаемый обсёр — ни Snap, ни Flatpack, ни AppImage не работают в 100% случаях.
anonymous ()
Ответ на: комментарий от Kolins

Для отвязки от дистрибутивов идеи AppImage больше подходят

А когда пришло время обновлений (о которых еще надо как-то узнать), снова бегаешь по помойкам ищешь где бы его скачать. Если приложение одно – допустим. А если их таких хотя бы пять? Даже в винде уже придумывают пакетные менеджеры с обновлениями, а кто-то не может отказаться от мамкиной сиськи в виде install.exe и Programm Files.

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

Для этого есть пакетный менеджер:

Расчёт обновлений… Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
  binutils-i686-linux-gnu cpp-7-i686-linux-gnu cpp-8-i686-linux-gnu efibootmgr gcc-7-i686-linux-gnu-base
  gcc-8-i686-linux-gnu-base libappstream-glib8 libasan4-i386-cross libasan5-i386-cross libatomic1-i386-cross
  libc6-dev-i386-cross libc6-i386-cross libcilkrts5-i386-cross libfwup1 libgcc-7-dev-i386-cross libgcc-8-dev-i386-cross
  libgcc1-i386-cross libgomp1-i386-cross libitm1-i386-cross libllvm8 libmpx2-i386-cross libopts25 libquadmath0-i386-cross
  libstdc++6-i386-cross libubsan0-i386-cross libubsan1-i386-cross linux-libc-dev-i386-cross
Для их удаления используйте «sudo apt autoremove».

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

Flatpack/Snap - требуют подключение к интернету для нормальной работы, так что не особо отличаются от классических пакетных манагеров. AppImage это просто бинарь, который можно хоть голубиной почтой на флоппике переслать. Да есть вероятность что не запустится, но по кане встречал подобных.

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

Судя по всему, оффлайновое использование flatpak так же возможно:

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

AppImage это просто бинарь

Именно так. Отсюда и все его недостатки. Я не хочу просто бинарь. Я хочу обновляемый пакет. Кому надо оффлайн передавать на флоппи, пусть сами решают что им использовать. Когда у меня была такая ситуация, я заказывал срез дебиановских реп на двд.

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

Для сервисов RedHat предлагает свой вендорлокнутый аналог Docker — Podman. Дальше там не менее залоченный вариант K8s под названием OpenShift.

Snap неплохо подходит для простых сервисов, в отличие от Flatpak, использую временно для tor и cloudflared. Собираю сам, конечно.

anonymous ()

flatpak делается васянами из гнома, решившими что существующих механизмов безопасности в linux совершенно недостаточно и запилившими свои костыли, прибитые гвоздями к dbus и прочим гномолибам. А поскольку вендорлочить софт ради непонятно чего никто почему-то не спешит, то что сделали эти васяны? Правильно: зафлудили весь свой flathub пакетами с максимальными разрешениями. Хмм, где же мы это уже видели?

snap, в свою очередь, делается васянами из каноникал. Эти решили, что их пользователи - полные идиоты, неспособные самостоятельно нажать кнопку «update». Если не ошибаюсь, там еще и нельзя добавить свои источники софта. А еще именно у них в сторе пользователи ЛОРа однажды нашли майнер - ну подумаешь, с кем не бывает.

Подводя итог. Snap и flatpak - полное дерьмо и не нужно, пользуйтесь стандартными репозиториями своего дистра.

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

решившими что существующих механизмов безопасности в linux совершенно недостаточно и запилившими свои костыли

Бред. Никаких новых механизмов безопасности во flatpak нет. Тем более костылей.

А поскольку вендорлочить софт

Причем тут вендорлочить и кто вообще что вендорлочит? Ты бредишь.

Правильно: зафлудили весь свой flathub пакетами с максимальными разрешениями.

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

Хмм, где же мы это уже видели?

И где, интересно?

curufinwe ★★★★★ ()
Ответ на: комментарий от Vsevolod-linuxoid

Ни разу такого не было, всё работает.

У меня было. Версия libc в центоси была не та. Аналитики ЛОРа говорят, что appimage можно приготовить так, чтобы запускался везде. Но вот простые разработчики, походу, про это не в курсе.

С флатпаком же такой херни не будет. Если он в принципе работает на твоём ядре/дистре, то и любое флатпак-приложение заработает.

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

Мне попадались на глаза обычные бинарники, скомпилированные под Линукс. Разве сейчас это невозможно?

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

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

С флатпаком же такой херни не будет. Если он в принципе работает на твоём ядре/дистре, то и любое флатпак-приложение заработает.

Это если ещё зависимости нормально поставятся. Полгода чего-то там с openh264 воду в ступе молотили.

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

Это если ещё зависимости нормально поставятся.

А почему они должны не поставится?

Полгода чего-то там с openh264 воду в ступе молотили.

Пока они молотили, зависимостью openh264 ни у кого не был.

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

Бред. Никаких новых механизмов безопасности во flatpak нет. Тем более костылей.

One of Flatpak’s main goals is to increase the security of desktop systems by isolating applications from one another. This is achieved using sandboxing and means that, by default, applications that are run with Flatpak have extremely limited access to the host environment

Portals have already been mentioned in the Introduction to Flatpak. They are a framework for providing access to resources outside of the sandbox

https://docs.flatpak.org/en/latest/sandbox-permissions.html

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

лол, тогда нафига нужны эти порталы? Хотя даже если их выкинуть, flatpak останется дерьмищем. Свободный текстовый редактор, который не может найти системный питон, потому что эти клоуны смонтировали твой /usr в /var/run или еще куда. Юзабилити 80-го уровня, лол.

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

This is achieved using sandboxing and means that, by default, applications that are run with Flatpak have extremely limited access to the host environment

И что? Ответишь на вопрос, когда в линуксе появился chroot, при помощи которого это все реализовано? Или ты первый раз про chroot слышишь?

Ты утверждал, что

существующих механизмов безопасности в linux совершенно недостаточно и запилившими свои костыли

а теперь выясняется, что костыли - это - барабанная дробь - chroot! Вот это поворот.

тогда нафига нужны эти порталы?

Чтобы пакеты были независимыми от системы. Без порталов это невозможно.

Хотя даже если их выкинуть, flatpak останется дерьмищем.

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

Свободный текстовый редактор, который не может найти системный питон

Ты просто бредишь. Какой к черту системный питон? Зачем кроссдистрибутивному пакету твой СИСТЕМНЫЙ питон? Чтобы он работал только в одном дистрибутиве - в котором питон нужной версии? Так вот это и есть твой любимый вендор лок.

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

Flatpak избавляет от вендор лока. Теперь на любой маргинальщине может работать что угодно, даже без малейшего участия разработчика и мейнтейнера.

curufinwe ★★★★★ ()