Email or username:

Password:

Forgot your password?
Андрей Ситник

В своём Линуксе перенес больше приложений в Flatpak.

github.com/ai/environment/comm

Это аналог Докера, но для десктопных приложений.

Кроме изоляции в контейнерах, это полезно для авторов приложений — один пакет для всех дистрибутивов Лунукса.

11 comments
Maxim Syomochkin

@sitnik_ru а интеграция с окружающей средой бесшовная или через отдельные точки расширения типа подключенных разделов?

Андрей Ситник

@msemochkin как в Докере — иногда контейнер имеет доступ ко всему и разница нет, иногда есть доступ только к нескольким папкам.

Но при переезде вообще никаких проблем, всё тут же подключилось. Включая интеграция с виджетами GNOME Shell.

Ещё качество настроек пакета бывает разным. Но тут все пакеты от команды GNOME — они знают, что делать.

Andrey Sitnik

В Линуксе, правда, как обычно, один стандарт невозможен.

Есть аналог Flatpak — Snap.

Но сделать два пакета (для Flatpak и Snap) всё равно на порядке ещё, чем делать пакет для каждого дистрибутива.

Если делаете приложение — пакуйте в эти современные контейнеры.

Андрей Ситник

Ладно, с переводом браузеров на Flatpak я погорячился.

Из-за изоляции сломалась поддержка .local-доменов из Avahi и FIDO2-ключей типа YubiKey.

Создал ишью. Пока исправляют, перешёл обратно на rpm-пакеты для браузеров (а GNOME-приложения работают из Flatpak отлично).

Artemis

@sitnik_ru По моему опыту, с Flatpak пока всё равно есть проблемы и проблемки. Текстовый редактор Helix, например, доступен в виде Flatpak... Но по умолчанию в нём не настроены права на чтение практически ничего, так что работать из Flatpak невозможно.
А в GIMP у меня не подхватывается нормально системная тема.

eakukin

@sitnik_ru Андрей ты не пробовал Silverblue? Тут universal-blue.org/ ребята пошли еще дальше, и на основе базовой версии Fedora Silberblue собирают решение под себя. По сути система со всеми нужными тулами собирается как "докер" в CI. Можно использовать их готовый дистрибутив, а можно форкнуть и заточить под свои нужды. Все что не входит в образ — ставить можно только из Flatpak.

Андрей Ситник

@eakukin я использую похожую штуку на домашнем сервере — CoreOS. Но на ноуте, что-то боюсь пока.

top.ofthe.top

> > А чем именно бесят? На севере Докер используешь?

Тем что overengineered bloatware. Докер использую и не только на сервере, а в том числе и на рабочей машире в процессе разработки, когда нужно развернуть аналогичное окружение, а если проект у тебя не один, то разные проекты могут требовать разные версии библиотек и прочего, докер позволяет держать на одной машине одновременно разные версии ПО. И он с этим худо бедно справляется. Впрочем, до докера с этим и chroot справлялся, просто приходилось чуть больше руками самому делать.

А Snap и Flatpak эту проблему решают плохо, хотя изначально и преподносились якобы как решение. Но ставить одновременно разные версии одного и того же ПО там вроде как толком всё равно нельзя, проблему dependency hell "решили" тем что устроили ещё больший hell, просто перенесли в другое место. По факту цель обоих разработок это вендорлок ради навязывания корпорациями своих инфраструктур Flathub и Snapcraft.

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

Конкретно с dependency hell прекрасно справлялся и тарбол, ну может ценой чуть большего места на диске, но это меньшее из зол. Зато формат универсальный и не зависит ни от дистра, ни от каких-то дополнительных сервисов. AppImage аналогично (AppImage я так понял чем-то похож на формат пакетов в макоси). После того как Canonical ради навязывания своего поделия перенёс Firefox в Snap, выпилив его из своих репозиториев, я просто перешёл на официальные тарболы с сайта Мозилы. Кстати, Firefox из Snap у меня тупо не запустился, выдав ошибку "Sorry, home directories outside of /home needs configuration. See https://forum.snapcraft.io/t/11209 for details." Тратить время на разбирательство мне было некогда и незачем, просто перешёл на официальные тарболы. Да, виндовенько, но лучше уж так.

Ну а функционал песочницы по хорошему следовало делать отдельным инструментом, не привязанным к форматам пакетов, как Firejail, например.

> > А чем именно бесят? На севере Докер используешь?

Тем что overengineered bloatware. Докер использую и не только на сервере, а в том числе и на рабочей машире в процессе разработки, когда нужно развернуть аналогичное окружение, а если проект у тебя не один, то разные проекты могут требовать разные версии библиотек и прочего, докер позволяет держать на одной машине одновременно разные версии ПО. И он с этим худо бедно справляется. Впрочем, до докера с этим и chroot справлялся, просто приходилось...

Андрей Ситник

@top ну какие плюсы я вижу:

1. Как и Докере в Флетпак больше воспроизводимость. Runtime будет создавать предсказуемую среду для приложения. Поэтому разработчику не надо затачивать программу под кучу вариантов дистрибутива.
2. При этом не надо все библиотеки паковать внутрь дистрибутива, они шарят Runtime
3. Изоляция вне пакета, SELinux например, сложно было пользоваться. Можно, конечно, мечтать о какой-то другой идеальной система, но на практике те что есть неудобны

Андрей Ситник

@top Но да, можно сказать, что тебе не нужна изоляция.

Но что смысл остаётся Флетпак именно для авторов приложений. Какие у них есть альтернативы? tar не скейлиться, так как работает только для прокачанных авторов.

top.ofthe.top

> > Как и Докере в Флетпак больше воспроизводимость. Runtime будет создавать предсказуемую среду для приложения. Поэтому разработчику не надо затачивать программу под кучу вариантов дистрибутива.

А под все 100500 красноглазых дистров затачивать и ни к чему, достаточно потестить на паре тройке мажорных, остальные ССЗБ. Но вон опять же, что Firefox, что Thunderbird, да даже Discord, есть на официальных сайтах просто в виде тарбола и никаких проблем, работают. Будут ли работать в генте или рачлинуксе? Не знаю, но авторы этих дистров должны сами позаботиться о том чтобы их система не отклонялась сильно от устоявшихся стандартов. Но в большинстве случаев всё сводится к версиям библиотек типа libc6.

> > При этом не надо все библиотеки паковать внутрь дистрибутива, они шарят Runtime

Это сильно переоценено. Я лучше пожертвую местом на диске. А с учётом последних тенденций в софтостроении, flatpak/snap от этого особо и не пасёт, фреймворки типа Electron мало что шарят. А есть ещё случаи когда авторы приложений модифицируют сторонние библиотеки под себя и тащут с приложением свои модифицированные версии. Ну и библиотеки это мелочь по сравнению с прочими ресурсами приложения. Экономия на спичка. А ещё разные приложения могут требовать разные версии библиотек, одной нужен Qt4, другой Qt5.3, дргой Qt5.7, другой Qt7. А я всё жду когда они осилят во Flatpak/Snap засунуть KDE, например. Ну и за одно и Гном тоже. Но что-то всё пока не получается у них, видимо не всё так просто с этими flatpak/snap.

> > Изоляция вне пакета, SELinux например, сложно было пользоваться. Можно, конечно, мечтать о какой-то другой идеальной система, но на практике те что есть неудобны

Тем не менее, в Андроиде это удалось, а там я могу просто установить apk из файлового менеджера. Ну или та же винда, больше свободы, при этом если нужен сандбоксинг, была куча сторонних инструментов ещё в нулевых под XP.

> > Но да, можно сказать, что тебе не нужна изоляция.

Сандбоксинг мне больше нужен был бы для запуска проприетарных приложений, Дискорд, например, Телеграм, или там Оперу изредка приходилось запускать и т.д. Но инструменты в принципе есть, при желании можно использовать. Последний раз использовал proot, есть ещё booblewrap (кажется это как раз от flatpak), firejail, да и chroot на худой конец (использовал его годами ранее когда не было ещё даже докера).

> > Но что смысл остаётся Флетпак именно для авторов приложений. Какие у них есть альтернативы? tar не скейлиться, так как работает только для прокачанных авторов.

А куда там "скейлить", тем более на десктопе? На винде, макоси и ведроиде всё ок с этим без flatpak/snap. Ну а собрать самодостаточное приложение гораздо проще чем заморачиваться со сборкой специально для flatpak/snap, да ещё и выполнять какие-то дополнительные требования по оформлению приложения чтобы приняли в свой маркетплейс (Flathub/Snapcraft и т.п.).

> > Как и Докере в Флетпак больше воспроизводимость. Runtime будет создавать предсказуемую среду для приложения. Поэтому разработчику не надо затачивать программу под кучу вариантов дистрибутива.

А под все 100500 красноглазых дистров затачивать и ни к чему, достаточно потестить на паре тройке мажорных, остальные ССЗБ. Но вон опять же, что Firefox, что Thunderbird, да даже Discord, есть на официальных сайтах просто в виде тарбола и никаких проблем, работают. Будут ли работать в генте или рачлинуксе?...

Go Up