LINUX.ORG.RU

Nix vs Flatpak

 ,


1

3

Поставим вопрос ребром.

Какие преимущества имеет Nix перед Flatpak на десктопе?

Опираюсь на такую статью

https://serokell.io/blog/what-is-nix

Интересно и достаточно доступно расписано про Nix. Но! Я не могу понять, чем это лучше Flatpak?

Вот такие преимущества у Nix:

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

  2. Бинарный кеш - конечно же есть у Flatpak, только называется не кеш а сами пакеты. Кроме того есть все манифесты для их сборки в гите, и внутри каждого пакета. То есть все как у Nix.

  3. Разные версии пакета одновременно. И там, и там это конечно же возможно.

  4. Распределенная сборка. Flatpak точно так же можно собирать на любой другой машине, результат получится таким же, между машинами передается через OSTree который хеширует все файлы, гарантирует целостность копии и осуществляет атомарное обновление пакета.

  5. Сборка без привилегий для пользователя. Точно так же flatpak-builder не требует никаких привилегий и не использует ничего из хостовой системы.

Как видим, все перечисленное в равной мере характерно для Nix и для Flatpak. Так в чем тогда преимущество Nix?

Далее - у Nix есть возможности еще и по управлению конфигами. Эта функциональность выходит за границы пакетного менеджера и у Flatpak вообще отсутствует. Я предлагаю пока разделить эти сферы, и обсудить отдельно непосредственно сборку и управление пакетами.

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

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

Если в конфиг добавить пакет с приложением, запустить сборку. Допустим я в плазме как графической среде. Мне надо что-то перезапускать чтобы это приложение добавилось в меню KDE? То есть, надо ли перезапускать плазму?

Ничего не нужно перезапускать, в менюшках плазмы софт появляется автоматически после sudo nixos-rebuild switch.

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

гуй для управления конфигом на nix

На реддите не так давно был анонс такой штуки.

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

гуй для управления конфигом на nix

На реддите не так давно был анонс такой штуки.

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

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

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

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

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

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

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

Поставил NixOS, без всяких iso образов, прямо из-под своего LFS с заменой его на NixOS. Оказалось что это сделать крайне просто, я получил систему с Plasma, вайфаем и русской локализацией просто вот моментально. Даже не знаю с чем сравнить, такой быстрой и простой установки я еще не видел.

До этого тыкал NixOS на виртуалке и не прочувствовал.

В целом сабжевый вопрос (Nix vs Flatpak) можно было пояснить одним предложением.

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

Я думаю что этого более чем достаточно для того чтобы понять чем Nix лучше.

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

Я бы сказал, что это утверждение истинное, но неполное. Продолжайте наблюдения =)

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

Вообще основной прикол должен включать в себя переворот в определении «что такое пакет». Вим с плагинами это пакет, патч от ядра это «пакет», виртуаэнв это «пакет», вся ОС это «пакет», и при этом vimrc это «пакет». Приколы не учитывающие этот ход конём я отказываюсь считать основными.

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

Я только не могу понять почему с этого не начинают, а нужно переливать из пустого в порожнее, вместо такого объяснения «пакета», которое сразу очень многое объясняет.

Ну может, человеку который не понимает этой проблематики и не сразу объясняет. Я лично с проблемой классических ПМ где пакет - всего лишь архив + скрипты ломающие систему, воюю уже давно, поэтому оценил.

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

Попробуй! В объяснении Nix есть миллион вещей с которых надо начинать, и без нескольких подходов это не работает. Сейчас тебе кажется, что начинать надо с этого, потому что ты уже понял пять других штуковин.

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

Вообще основной прикол должен включать в себя переворот в определении «что такое пакет».

Если уж совсем давить, то надо так: Вообще основной прикол должен включать в себя переворот в определении «что такое функция». Одно дело, понимаешь, Фортран, а другое - матан! :)

Развив мысль и отправив на лекцию https://youtu.be/dO1aqPBJCPg?list=PLE18841CABEA24090 где после просмотра станет ясно отличие FP и императивного подхода. А дальше ПМ или мир - это уже в силу фантазии.

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

Да не включай ламера. В этом и есть основное отличие от других ПМ - ФП. Побочка ФП - потребление памяти (и в случае ПМ - места на диске).

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

Нет, основное отличие вообще не в этой детали реализации.

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

Во-первых, GNU/Linux это миф, операционной системы GNU не случилось.

Во-вторых, чтобы у вас был якобы GNU/Linux, а у меня не был. Или посягаешь на мою свободу выбора софта?))

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

Тоже локин, над ним тоже работают. Но локин на гнужасы более обиден просто потому что Линукс на данный момент — топовая годнота, а вот про автошлак можно только что-нибудь нехорошее сказать. Особенно в 2021.

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

Я вот собрал руками систему с недефолтным каталогом для либ, и с автошлаком достаточно libdir всегда.

А с cmake хрен ты угадаешь как какой пакет загонять в недефолтный libdir. То так то эдак.

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

Ложная дихотомия; cmake отдельный шлак.

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

Мэйк нужен урезанный обратно до реализатора графа зависимостей без свистоперделок (ninja?), автотулзы не нужны, связи вопроса с тем комментом не вижу.

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

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

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

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

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

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

Вот таких ебанутых в Шапку берут. Запишем. С пеной ненависти к GNU. Заебись.

Это у Шапки такой подход, а люди хорошие

anonymous
()

Флатпак оно само в себе и потому срать хотело в некоторых моментах на системные конфиги. GUI приложение с флетпака которое не подхватило системные темы/звук/шрифты заменились квадратиками - нормальная ситуация. В nix по идее такое должны не допускать. Но это не точно, не проверял. Ах да, чисто в теории в nix должны работать разделяемые библиотеки, когда у тебя несколько софтин на одной версии либы. А вот флетпак - сколько софтин - столько и библиотек.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.