LINUX.ORG.RU

Преимущества Flatpak

 


1

1

В последнее время повсеместно в дистрибутивах стали использовать Flatpak Из преимуществ:

  1. Приложение работает с теми версиями библиотек, с которыми компилировалось
  2. Система не засоряется ненужными пакетами и зависимостями Из недостатков: Некоторые приложения из Flathub работают не так гладко, как нативные. Например может иконка в трее не отображаться.

Какие у него плюсы и как лучше ставить приложения из Flathub или нативно?


Только сейчас и только сегодня!

Статические бинарники

  • Полное отстутствие зависимостей!

  • Возможность перекомпиляции под любую платформу!

  • Полная кроссплатформенность!

  • Запуск без установки любых дополнительных программ!

Parthen
()

Мда.

Приложение работает с теми версиями библиотек, с которыми компилировалось

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

Во-вторых.

Система не засоряется ненужными пакетами и зависимостями

Засоряется в разы больше. Вот представь, в нормальной системе у тебя есть библиотека zlib (она нужна чтобы софт мог на лету работать с .gz файлами, не запуская собственно gzip/gunzip), она одна на всех и всё прекрасно работает. А если ты установишь 10 флатпаков - в каждом будет ещё один zlib (потому что он нужен практически всем), итого у тебя вместо одной библиотеки будет 11 её (1 основная + 10 в флатпаке). Так что пункт 2 это вообще чистое враньё.

Некоторые приложения из Flathub работают не так гладко, как нативные.

А вот это правда.

Вобщем, это ненужный костыль, удали его и забудь.

В последнее время повсеместно в дистрибутивах стали использовать Flatpak

Такие дистрибутивы лучше не использовать.

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

Система не засоряется ненужными пакетами и зависимостями

Ещё как засоряется. Как-то офигел от одного гигабайта KDE в придачу к Telegram.

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

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

Так, помимо зависимостей приходится дублировать еще и конфиги и используемые архивы с ассетами (для игорь).

hargard ★★
()

Flatpak использует изолированные контейнеры, которые не имеют прав на запись (только ли?) в системные каталоги (/bin, /usr, /sys и т.д.). Он подходит только для графических приложений, которые не зависят от системного окружения, например, Telegram… Но не подходит для консольных утилит, а так же IDE, которые используют интерпретаторы, линтеры и пр вещи, которых нет в рантайме (в контейнерах запускается еще одна ОС). Нет смысла ставить через flatpak «стандартные» приложения для Gnome/KDE (в зависимости от того, что используете).

Плюсы:

  • Лучшая безопасность, так как права приложения ограничены;
  • Пакеты меньше весят;
  • При обновлении пакета, скачивается не весь пакет целиком, а только изменения (как pull в git);
  • Приложения преднастроены

Минусы:

  • Рантайм занимает дополнительное место;
  • Мало приложений, хотя есть все популярные;
  • Не работают proxychains и подобные утилиты.
tz4678 ★★
()

Должна быть идеальнай и согласованнай набор приложений и библиотек, а то гогно что не вписывается - паковать в флатпак.

Psilocybe ★★★★
()

Держу в нем офисные пакеты, steam, zoom и другую проприетарь, с которой приходится иметь дело.

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

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

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

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

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

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

А есть ли дистрибутивы, где всё основано на Flatpak и т.п.? В том числе и ядро в Flatpak.

X512 ★★★★★
()

В последнее время повсеместно в дистрибутивах стали использовать Flatpak

В последнее время никто флэтпак насильно не пихает. Хочешь ешь, хочешь – нет. Это вы со снапом перепутали.

Какие у него плюсы

Изоляция, прежде всего. Обычно более свежие версии, чем во многих дистрибутивах, а для некоторых программ в репозиториях пакета может и не быть вообще. Например Obsidian.

как лучше ставить приложения из Flathub или нативно?

Если есть пакет в нативных репах и она устраивает – то нативно. Если нет – из Flathub. Кроме того, если нужно что-то из КДЕ, например, но не хочется засирать систему остальным кде-мусором, то можно тоже ставить из флэтпака. Я так Kdenlive использую.

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

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

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

Нет смысла ставить через flatpak «стандартные» приложения для Gnome/KDE (в зависимости от того, что используете).

Бывает так, что джва года ждёшь какую-то фичу в какой-то программе, и она появляется. И тут – бац, а он будет только в составе следующего релиза DE, который для текущей версии системы не планируется.

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

А у меня не Арч, для меня есть смысл. Подозреваю, что для кого-то тоже есть смысл.

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

В Haiku работает. Загрузчик ОС умеет читать пакеты и читать ядро из них. Причём сам загрузчик меньше чем GRUB (348 КБ для RISC-V).

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

Если есть пакет в нативных репах и она устраивает – то нативно. Если нет – из Flathub.

А если в нативном репо нет или не устраивает, то лучше flatpak или бинарник от разработчика? Допустим, тот же огнелис?

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

Конкретно для меня:

Нативный пакет > flatpak > appimage > архив от разработчика.

У flatpak в этом случае есть серьезное преимущество: его легко обновлять. У меня это выглядит так:

$ which dnf.upgrade 
dnf.upgrade='sudo dnf upgrade --assumeyes && flatpak update --assumeyes && flatpak remove --unused'

И если будешь использовать flatpak, не забудь поставить приложение Flatseal из него же. Оно позволяет легко и просто в гуях управлять разрешениями для flatpak-приложений. Например, многие идут с ограниченными правами, типа Телега сможет читать только ~/Pictures и ~/Downloads и картинки из другого места в нее не сможешь закинуть. Это приложение позволяет настроить так, как удобно.

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

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

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

flatpak - это контейнеры на основе технологии LXC (нативные контейнеры линукс).

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

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

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

Если у тебя есть система, то ничего не забудется. У меня есть директория ~/Applications и ~/Applications/bin для ссылок на бинарники и скрипты. Вторая в PATH. Если нужно приложение из архива, то он просто распаковывается в ~/Applications/CoolApp и при необходимости делается линк в bin. Нигде никакого мусора нет, но обновлять неудобно и вручную, конечно.

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

Fedora Silverblue, EndlessOS, CarbonOS.

В том числе и ядро в Flatpak.

А мсье знает толк!

Aceler ★★★★★
()

Приложение работает с теми версиями библиотек, с которыми компилировалось

Приложение работает с теми версиями библиотек, которые лежат в рантайме. А рантайм обновляется независимо от приложения.

Например может иконка в трее не отображаться.

Ни разу не встречал, но пусть. Чаще заморочки с порталами.

Проблема сегодня в том, что flatpak пытается решить сразу две задачи. Первая - обеспечить переносимость, вторая - обеспечить дополнительную изоляцию. Решали бы одну задачу, проблем было бы меньше. Ну или хотя бы по очереди.

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

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

Такой себе плюс по нынешним временам.

все что не управляется пакетным менеджером - мусор о существовании которого ты забудешь

Здесь согласен.

Нативный пакет > flatpak > appimage > архив от разработчика.
У flatpak в этом случае есть серьезное преимущество: его легко обновлять.

Да обновлять то скриптом не Бог весть какая проблема.
Больше интересны надежность работы приложений, самой песочницы, повышение (или снижение) уязвимости системы хоста в целом.
Я не с целью холивара, действительно нет у меня какого-то сформировавшегося мнения о flatpak «для навсегда». Пользуюсь только «для посмотреть».

mexx
()

В итоге получается, что если ПО предназначено для постоянной работы, то лучше устанавливать пакетным менеджером, а если какие-то временные эксперименты- Flatpak?

Max77
() автор топика
Ответ на: комментарий от Parthen

Статические бинарники

Это полумеры для слабых духом. Выкачиваешь исходники и компиляешь как надо, остальное лукавство.

RussianWarShip
()

Я перевёл большую часть «продуктивного» софта и проприетарщины на flatpak. Первое - для того чтобы обновлять независимо от системы, второе - для изоляции.

Про гладкую работу вроде всё без проблем работает, кроме случаев когда изоляция приводит каким-то косякам (напр. пока не перевёл Krita на флатпак потому что мне нужны мои скрипты на питоне, которые во flatpak версии не работают из-за недоступности библиотек).

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

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

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

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

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

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

Unixson
()

Какие у него плюсы и как лучше ставить приложения из Flathub или нативно?

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

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

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

, он насколько я помню целый имейдж тянет

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

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

Нет, он тянет только разницу между старым и новым коммитом.

Можно информацию на счёт этого?

Это не теория как всегда? Что надо разработчику долбиться во все дыры и щели, чтобы предусматривать эти дельта обновления. Сферическую теорию я нашёл, но такое ощущение, что на практике как всегда.

А во нашёл https://www.phoronix.com/scan.php?page=news_item&px=Flatpak-1.10-Released

Примерно в 2021 выкатили. Я уже не дотерпел этот ужас переносить.

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

То есть через ostree обновляется, дельта тут будет не как у гита - измененная часть файла, а целиком перезаливается измененный файл.

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

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

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

Но это дельты на уровне целых файлов, а не на уровне части файла.

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

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