LINUX.ORG.RU

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

 , ,


0

3

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

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

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

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

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

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

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

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

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

★★★★★

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

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

насколько хорошо умение никса конвертируется в деньги, славу и здоровье.

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

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

Коротко не ответишь.

Аналогия твоя сложная, но я попробую. Если NixOS — дырка в полу с керамической плиткой, то типичный квадратно-гнездовой дистр прошлого века — мазанка целиком из дерьма и без дырки, потому что зачем?

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

типичный квадратно-гнездовой дистр прошлого века — мазанка целиком из дерьма и без дырки, потому что зачем

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

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

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

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

в общем, не обязательно ставить nixos, чтобы понять, нужно оно вам или нет. если вообще не изучать nix, то в принципе всё работает, мало чем отличается от любого нормального дистрибутива (за исключением совместимости с чужими бинариками, конечно)

caryoscelus
()

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

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

если ваш любимый дистрибутив (язык/технологию/etc) начнут хайпить, вы с него уйдёте, чтобы быть не такими, как не такие как все?

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

Не обязательно в файл. Можно и в директорию с файлами и в удалённый репозиторий/репозитории с файлами. Можно и в зависимости между всем этим.

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

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

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

NixOS это пакетный менеджер nix который на основе программ, настроек и данных юзера из /etc/nixos генерирует систему.

Эти самые настройки в совокупности с программами, в сущности, такие-же как в любом другом GNU/Linux дистрибутиве. Так-что опыт он опыт. Вне зависимости от дистра.

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

Повторяемость. Если ты не можешь гарантированно повторить работу некоего ПО либо его некий его баг то смысл вообще о чём-то говорить?

Кто сможет раскрыть мне глаза?

Кроме тебя самого? Никто.

Как в никсоси разруливаются зависимости?

Проблемы зависимостей не существует by design.

ЗЫ: Что сие делает в Linux-install вообще отличный вопрос.

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

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

arax ★★
()

Если закрыть глаза на непонятные пути, которые не помещаются в панель фм, то основной недостаток, это чужие бинарники. Могли бы что-то для них придумать, какой-нибудь каталог, например /foreign, в котором автоматом будет создаваться эмуляция FHS, наподобие https://github.com/GermanBread/nixos-fhs

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

Если закрыть глаза на непонятные пути, которые не помещаются в панель фм, то основной недостаток, это чужие бинарники. Могли бы что-то для них придумать, какой-нибудь каталог, например /foreign, в котором автоматом будет создаваться эмуляция FHS, наподобие https://github.com/GermanBread/nixos-fhs

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

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

Придумали и много чего.

Помню напартачил в nix-shell, пытался запустить doublecmd, которого на тот момент еще не было в пакетах, в результате nixos вообще перестала запускаться, надо было конечно иметь в запасе хоть одну рабочую конфигурацию, но я, ССЗБ, их все поудалял ))

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

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

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

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

shell-script ★★★★★
()

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

Хотел сказать – никсос не нужен.

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

Извини, но вся движуха происходит в /nix

Перепутал, прошу прощения.

устанавливать любые версии софта.

Слоты в генте?

NixOS это пакетный менеджер nix который на основе программ, настроек и данных юзера из /etc/nixos генерирует систему.

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

Повторяемость. Если ты не можешь гарантированно повторить работу некоего ПО либо его некий его баг то смысл вообще о чём-то говорить?

Если воспроизводить на идентичном железе, то шансы воспроизведения есть в любом дистре. А если железо отличается, то о чём вообще говорить? Или никсось гарантирует 100% воспроизведение на любом железе в пределах архитектуры?

Проблемы зависимостей не существует by design

Вопрос был не о проблеме зависимостей.

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

Блин, теперь не смогу развидеть в нём снежинку

Как там вообще можно увидеть что-либо, кроме снежинки.

видел шесть лямбд, ещё шестиугольник, образованный ими, посередине

Вам бы провериться.

utanho ★★★★★
() автор топика

Декларативный конфиг. Запихнули все настройки в один файл.

Можешь хоть в 10 запихнуть. Там есть инклуды.

Но потаенный смысл «декларативности» ускользает.

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

Вся движуха происходит в /nixos/ базовая иерархия линуксовых директорий практически не используется.

Нет, не происходит. В /nix руками лазать вообще не надо.

Воспроизводимость системы. Непонятно зачем.

Да нет, вполне понятно зачем.

Кто сможет раскрыть мне глаза?

Санитары.

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

Санитары

Когда сказать нечего, но очень хочется?

Ну, да, санитары тебя и от этого вылечат.

Какого ты ещё ответа ожидал в настолько унылом вбросе? Если ты не знаешь, зачем нужны эти фишки, значит тебе они не нужны. Всё просто.

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

Какого ты ещё ответа ожидал в настолько унылом вбросе

Унылый здесь только вы, со своим бубубу.

Если ты не знаешь, зачем нужны эти фишки, значит тебе они не нужны.

А как я узнаю, нужны ли мне эти фишки, если я не знаю зачем они?

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

А как я узнаю, нужны ли мне эти фишки, если я не знаю зачем они?

Ты – никак.

Всё очень просто. Либо ты сталкивался с проблемами, которые в NixOS решены, либо тебе на них плевать. Сталкивался ли ты с ними? А хрен тебя знает.

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

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

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

Развернуть одинаковую систему на много компов одновременно? Это можно сделать и в других линуксах.

Развернуть можно, а дальше? Обновлять/менеджить результат - сизифов труд. Разве что каждый раз с нуля разворачивать

Кто сможет раскрыть мне глаза?

Открываю - оно тебе не нужно

Как в никсоси разруливаются зависимости?

Они либо есть и автоматически собираются/качаются с кеша, либо их нет

Существует ли разделение на обязательные и необязательные?

Обычно всё собирается со всеми возможными зависимостями, иногда есть всякие имяпакета-full/имяпакета-minimal

И если да, то как это настроить?

Либо взять готовое, если есть, либо использовать овверайды/оверлеи с нужными флагами

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

Костыли, не у каждого диска есть label , а uuid универсальны, но жутко неудобны. ls по by-label и by-uuid показывает разное. И того три варианта наименований, первые прыгают как хотят, но удобны в понимании, вторые надо прописывать самому, третьи всегда работают но неудобные. Так и живём жуя uuid кактус ибо всё иное просто ненадёжно и непредсказуемо =)

LINUX-ORG-RU ★★★★★
()

Смысл достаточно очевиден если иметь отношение к DevOps и разработке и немного почитать:

The Nix package manager was developed by Eelco Dolstra as part of his PhD research in the TraCE project, funded by the Jacquard programme of the Netherlands Organisation for Scientific Research (NWO) and SERC. The first prototype of NixOS was developed by Armijn Hemel as his master’s thesis project. Hydra, the Nix-based continuous build system, was developed as part of the LaQuSo Buildfarm project, funded by NIRICT and LaQuSo.

Вообщем это все про автоматическую сборку и развертывание, для машин а не для людей.

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

Слоты в генте?

Слоты в генте это немного другое.

Для чего этот хтонический ужас с названием конфигураций?

Я в упор «ужаса», тем более «хтонического», в названиях конфигураций не вижу.

init_6 ★★★★★
()
  1. Запихнули все настройки в разные файлы. Можно хоть в разные репозитории.

  2. Всё работает на симлинках + SQLite база как хранилище версий и путей, собственно никакой чёрной магии или мусора.

  3. Это булщит, так или иначе, чтоб писать порты пакетов (а их придётся писать), фиксить ошибки (а их придётся фиксить), то пойдёшь читать ebuild, pkgbuild, изучать пакеты и пошло, поехало.

  4. Для надёжности.

  5. Зависимости на симлинках, можно хоть поставить посгреса 12 и 15, и параллельно запустить.

ЗЫ я бы тоже пересел на NixOS, но уже с Nickel и отполированными flakes

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

Вообщем это все про автоматическую сборку и развертывание, для машин а не для людей.

Похрен, пляшем…

Любой дистрибутив GNU/Linux в вакууме - это совокупность:

  1. набор ПО, библиотек, firmware необходимого для функционирования некоего строго конкретного железа дабы оно могло выполнять возложенные на него задачи;
  2. настройки, файлы конфигурации всего вышеизложенного… ;
  3. Юзер/юзеры со своими правами, группами, задачами и ПО необходимым для выполнения этих задач.

В то время как в любом среднем дистрибутиве GNU/Linux в вакууме 2) и 3) размазано по всей системе с разными форматами и в разном виде - NixOS задумана иначе.

В NixOS и 2) и описание юзеров/групп и всего ПО которое им надо из 3) вместе со всеми их настройками хранится в едином месте /etc/nixos в виде совокупности кода на ЯП nix language для пакетного менеджера nix.

В любом дистрибутиве GNU/Linux в вакууме корень системы это расположенная на неком носителе ФС на которой живёт ОС, ПО, конфиги и данные юзера.

В NixOS корень системы это тоже самое. Но с тонким отличием - абсолютно всё в nixos за пределами «статичных» /etc/nixos и /nix, включая и /home/USER (но это не обязательно), является симлинками на содержимое /nix. Вся ОС это данные на основе которых, в строго определённое время, собран собран снапшот корня в виде набора симлинков.

Как не трудно догадаться обновление в NixOS это создание нового такого снапшота и переключение на него со старого. При этом старый снапшот никуда не девается. И между старым и новым снапшотами можно переключатся так-же как и между разными ОС в дуалбуте. А количество этих снапшотов ограничено лишь объёмом твоего харда.

Для людей NixOS или для машин? Без разницы для кого NixOS. С ней справятся и те и другие.

init_6 ★★★★★
()