LINUX.ORG.RU

В чём смысл Никсоси?

 , ,


0

3

Вчера решил потыкать палкой в Никсось. Вопросов в итоге больше, чем ответов.

1. Декларативный конфиг. Запихнули все настройки в один файл. В других линуксах это будет комплект файлов. Но потаенный смысл «декларативности» ускользает.

2. Вся движуха происходит в /nixos/ базовая иерархия линуксовых директорий практически не используется. В чем опять же, смысл? Устроить срач в одной отдельно взятой директории? Причем этот срач превосходит изначальный срач в других линуксах.

3. Не релевантность опыта использования Никсоси. Можно десятилетия сидеть в никсоси и не иметь опыта в линуксе. Всё, что происходит в никсоси - остается в никсоси.

4. Воспроизводимость системы. Непонятно зачем. Развернуть одинаковую систему на много компов одновременно? Это можно сделать и в других линуксах. И это не то, что надо делать постоянно.

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

Это всё сугубо мое личное мнение. Возможно, я сильно заблуждаюсь. Кто сможет раскрыть мне глаза?

ДОБАВЛЕНО: Еще один животрепещущий вопрос. Как в никсоси разруливаются зависимости? Существует ли разделение на обязательные и необязательные? И если да, то как это настроить?

И да, чехарда с именами разделов при загрузке - присутствует.

★★★★★

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

NixOS ... новое слово в построении дистрибутивов.

Двадцать лет - это давно уже не «новое слово». Теперь это просто маргинальный think different.
Необязательно плохой, я не щупал, не знаю.

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

nixosConfigurations.scar.options.services.xserver.desktopManager.plasma5.phononBackend.description

Ахренеть, 9 уровней вложенности. Моё почтение к задротам конфигов. Ну и после такого понятно, для чего эта «система». Для прокрастинации, как обычно.

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

Двадцать лет - это давно уже не «новое слово».

Мы в IT, это очень консервативная индустрия. Тут в целом не особо много изменений, так что 20 лет не срок. Тем более, что «новым» слово является для тех, кто его впервые слышит, а это почти все пользователи линукса.

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

Я конечно нуб и все такое, но что такого концептуально нового в дистрибутиве, которому уже 20 лет? Концептуально другому? Да, звучит правильно. Но что нового в концепции, которой скоро четверть века, ума не приложу.

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

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

Опять вы зв меня решаете. Это очень плохая привычка.

За сим, разрешите, откланяться.

Хаерле юл!

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

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

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

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

Никсось почти ровесник рачлинукса и старше убунты. И где сейчас рач с убунтой, и где никсось? Может концептуальная новизна не такая уж и ценность? Тем более когда это уже давно не новизна.

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

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

Для вас это наверное аргумент, а мне до этого нет никакого дела.

И где сейчас рач с убунтой, и где никсось?

Если бы популярность была критерием выбора, зачем бы я вообще на линуксе сидел?

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

Где перечислены все возможные значения того, что можно вписывать в programs.*?

https://search.nixos.org/packages https://search.nixos.org/options

А как добавить в этот перечень понимаемых программ свою?

В NixOS есть и локальные оверлеи и Nix User Repository: User contributed nix packages https://github.com/nix-community/NUR и как угодно. Про остальное аналогично.

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

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

У меня работа связана со сраной вендой. ОС выбирал не я и отвечаю за это безобразие тоже не я.

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

Ну понятно, а вообще опыт применения никоси с этой чудо-концепцией снапшотов и мегаконфигом был? Чтоб по работе? Волонтерство там или помощь по ИТ школьникам?

Чтобы с пользователями, с долгим циклом работы, с обновлениями и бекапами - что-то такое?

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

Если я в паппете скажу, что мне нужен нжинкс, применю, уберу все упоминания нжинкса, применю снова, нжинкс же никуда не денется.

Неверная аналогия. Каждый раз, когда ты применяешь конфигурацию в NixOS, оно разворачивает новый слой с нуля и применяет к нему настройки из конфига. Это равносильно применению ansible/puppet на голой системе. У меня, например, есть в ansible тег clean_install. При его включении система сперва приводится в чистое состояние, а потом только применяются все правила из плейбука. Вот это аналог поведения nix. Чтобы сделать полный аналог, надо только применять плейбук не на живой системе, а каждый раз разворачивать «эталонную» систему из bootstrap. Но это как раз лишнее.

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

Это только вершина айсберга. Проблема с nix в том, что завязав на единый конфиг описание всей системы, он сильно усложняется. Когда у тебя дефолт с парой параметров - всё выглядит красиво. А когда надо кастомизировать систему, во множестве конфигов разных сервисов менять множество параметров, всё становится сильно сложнее. Когда я игрался с nixos, у меня конфигурация тестового бука суммарно со всеми инклудами за полгода выросла до ~3к строк. Конечно, это были опыты и в реальном использовании конечно будет поменьше, но всё же. И поддерживать такое - это задачка не из простых.

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

Неверная аналогия. Каждый раз, когда ты применяешь конфигурацию в NixOS, оно разворачивает новый слой с нуля и применяет к нему настройки из конфига.

Нет там никаких слоёв, садись, два

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

Если бы популярность была критерием выбора, зачем бы я вообще на линуксе сидел?

Какие такие проблемы решает никсось, которые нельзя решить в других линуксах?

utanho ★★★★★
() автор топика
Ответ на: комментарий от shell-script

И поддерживать такое - это задачка не из простых.

Чем сложнее тем больше строк. Всё точно так-же как и в любом другом дистрибутиве GNU/Linux и вообще в любой ОС! Главное чтоб работало как нужно а уж как это держать в таком порядке чтоб тебе самому понятно было так это тебе самому и решать.

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

Тебя примеры применения в суровом продакшене интересуют? Угадаешь где они перечислены или сам сумеешь найти? ;)

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

utanho ★★★★★
() автор топика
Ответ на: комментарий от shell-script

В Guix конфиг (а равно как и всё остальное) это просто код на нормальном ЯП Guile, в котором есть модули, и объекты, и макросы, и вообще всё, что нужно, чтобы 3т строк совершенно не пугали. Я думал в Nix language тоже есть что-то для этого

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

Я про то, что зачастую «костыльный» с вашей(никсовой) точки зрения подход с набором типовых текстовых конфигов/шаблонов и раскладыванием их по файловой системе в реальной жизни проще в поддержке. И при этом ничуть не хуже никсового подхода с генерацией этих конфигов на лету из описания в *.nix.

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

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

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

ugoday ★★★★★
()
Ответ на: комментарий от shell-script

Диривациями можешь называть, слои и снапшоты наталкивают на неправильные концепции и соответственно неправильные выводы

оно разворачивает новый слой с нуля и применяет к нему настройки из конфига

Оно не разворачивает никакие новые слои и ничего ни к чему не применяет. Оно собирает конфиг (исходники), на выходе получается артефакт (бинарник). Этот артефакт сам по себе ни на что не влияет, лежит себе в /nix/store и никого не трогает. Этот артефакт можно активировать (бинарник запускается) и таким образом он превращается в генерацию профиля system. Вроде всё то же самое, но на практике это совершенно разные вещи. Можно этот артефакт сразу на кучу машин скопировать, активировать и везде получится идентичная конфигурация системы. Можно с системы удалить все директории кроме /boot и /nix и получить аналог полной переустановки

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

Мне не хочется их писать, когда можно обойтись без этого.

Ну а как иначе? Если

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

то где-то все эти конфиги и параметры всё равно нужно прописать, сами ж они из астрала не появятся.

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

Если я правильно понял, его интересует, как лично вы применяете никсось.

Лично я за пол первых часа использования nixos в своей жизни сумел повторить своё привычное окружение в gentoo. Это с учётом того что параллельно я спасался с умирающего харда и ещё и мигрировал с x86_64 на aarch64.

Сейчас у меня слабенько: impermanence, home-manager, конфиги под несколько железок.

На nixos ощущение «нихрена не понятно но очень интересно» со мной до сих пор.

Мне это тоже интересно, но у меня не получилось угадать, где об этом почитать.

Юзеры ЛОРа реально настолько обленились?

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

Ну мне можешь это не рассказывать. Я достаточно наигрался с nixos и разобрался, как оно работает внутри. Рассматривал её как альтернативу. Я описываю ситуацию с точки зрения конечного результата.

shell-script ★★★★★
()
Ответ на: комментарий от ugoday

Не появятся. Но поддерживать, например, изменения в файлике, который я положу в /etc/sysctl.d/ при раскатке проще, чем поддерживать описание этого файла на языком nix. И это особенно заметно становится, когда таких конфигов очень много.

shell-script ★★★★★
()
Ответ на: комментарий от init_6

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

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

Вот я рассказываю и показываю BSD и у меня на самом деле есть свои серверы с BSD, понятно что это не «мегакластер метаданных», там нет миллионов юзеров или каких-то адских расчетов и сверхзадач, но так я и не претендую. Но все проблемы эксплуатации вижу, знаю и могу о них рассказать, благо что в BSD их много.

Концепция-то у Никоси интересная, в ней есть смысл, осталось лишь наработать практику, про которую я и спрашивал.

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

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

А вы полагаете очевидным тот факт, что выставление себя нетакусиком - признак незрелости ума?

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

На nixos ощущение «нихрена не понятно но очень интересно» со мной до сих пор.

Интерес есть и у меня, иначе зачем бы я стал разводить весь этот сыр-бор. Но вот момент с «непонятно» мне не очень нравится.

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

Концепция-то у Никоси интересная, в ней есть смысл, осталось лишь наработать практику, про которую я и спрашивал.

Пока ты сам не возьмёшь и не поставишь nixos практики у тебя не появится.

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

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

Поэтому можно совершенно спокойно годами гонять на дескопе линукс и ничего не знать о системном администрировании

Как раз мой случай. Моя профессия никак не связана с ИТ и очень мало с компьютерами. Но это мне не мешает иметь линукс единственной осью уже 15 лет.

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

Интерес есть и у меня, иначе зачем бы я стал разводить весь этот сыр-бор. Но вот момент с «непонятно» мне не очень нравится.

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

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

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

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

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

В нынешнем виде для домохозяйки это не подходит чуть менее чем полностью.

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

Ответа на простой вопрос: есть у уважаемого автора реальный опыт эксплуатации никоси или нет.

Не настройки или ковыряния а полного цикла эксплуатации: с конфигами, бекапами, какими-то работающими сервисами и пользователями.

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

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

Концепция-то у Никоси интересная, в ней есть смысл, осталось лишь наработать практику, про которую я и спрашивал.

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

Лучше всего поставить в виртуалку (советую ставить ручками по мануалу, после установки через Calamares в голове ничего не откладывается), попробовать наваять устраивающий конфиг (сразу напоминаю про git), и если понравится можно такое же раскатить уже на реальной железке с минимальными изменениями. Я так за неделю перелез с дебиана (с dwm) на NixOS на рабочем ноуте, а ещё через две я выкинул дебиан со своих серверов и домашнего NAS. Вот уже пятый год пошел, возвращаться не планирую, а NixOS у меня везде, даже на Steam Deck

Tsukasa
()