LINUX.ORG.RU

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

 , ,


0

3

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

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

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

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

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

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

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

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

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

★★★★★

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

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

Если в генте понимаешь, что происходит в системе, то в никсоси этого лишен. Система, основанная на доверии.

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

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

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

Без отхода от FHS реализовать прозрачную установку libfoo-1.0.1 и libfoo-1.0.2 нельзя, если авторы самой либы такого не предполагают(а они обычно предполагают только для мажорных версий).

Слоты в Gentoo этого не позволяют также и вообще, если глянуть под капотом делятся на три типа:
- Легкие и ненапряжные для установки разных версий софта, в котором это предусматривает автор;
- Немного замороченные - для софта, где автор не предусмотрел подобного, потому что его это не интересует, но и принципиально против такого никаких палок в колеса не вставлено;
- Адская хтонь для случаев, когда это не предусмотрено и все костыли только мешают. Обычно от таких слотов после длительных срачей избавляются.

Так вот, установка libfoo-1.0.1 параллельно с libfoo-1.0.2 в терминах гентушных слотов - это будет вот этот вот случай с «адской хтонью». В 90% случаев тебе этого и не надо - поэтому классические линукс-дистрибутивы вполне себе еще существуют. Но есть остальные 10% случаев.

И вот там начинаются - ручками в чрут пособирать, с make install/checkinstall/you_name_that_shit поплясать. Для более современных вариантов - запихать в Docker/Flatpak/Snap.

Сам я NixOS не использую(но пару раз щупал), но считаю ее концепт как минимум заслуживающим внимания.

Да, будет непривычно. Да, придется привыкать к декларативному языку. Да, придется местами повспоминать GoboLinux(тоже не застал в своё время, хотя наслышан).

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

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

Просто в NixOS уровень абстракции выше. В Gentoo если сломается portage я уже знаю как его чинить(бинарные пакеты, статически слинкованный busybox - на случай совсем ахтунга и т.д.) - но это скорее от стажа работы с системой зависит(с 2008 года на ней, во время летит, блин!).

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

Я с 2013) причем на одной и той же. Она уже два станционара пережила и сейчас на втором ноуте.

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

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

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

Даня, который Роббинс, смотрит на тебя с неодобрением.

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

Даня, который Роббинс, смотрит на тебя с неодобрением.

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

Зато из исходников да.

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

стабильности и предсказуемости ждать как минимум глупо.

Мой опыт показывает, что и у тебя бывают провалы в компетенциях ;)
Зашел бы на #crux, заявил про bin и надёжность ;))

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

Мой опыт показывает, что и у тебя бывают провалы в компетенциях ;)

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

Зашел бы на #crux, заявил про bin и надёжность ;))

Фанатиков и тут хватает. Но вообще это дурь конечно, вот так фанатеть от инструмента.

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

проще, когда всё в одном месте лежит и сразу видно, нежели если нужно ту же информацию раскидать по файловому древу.

Совсем немножко осталось до изобретения реестра. Дерзайте!

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

Прописываешь один раз, далее в mount используешь уже точку монтирования, а не источник(с километровым UUID).

Что проще набрать в консоли, /dev/sdXx или километровый UUID.

А если мне надо обратиться к самому устройству? Как мне поможет UUID?

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

Чем?

➜  ttrss-docker git:(build) ls /dev/disk/by-label 
ldt_boot  ldt_efi  ldt_root  ldt_swap
➜  ttrss-docker git:(build) ls /dev/disk/by-uuid 
40133a33-bb42-432a-b23f-7c7cf381cabe  4ab48153-d147-4f04-9c4e-ac2783a8752b  df4dc92f-b797-45ea-aebf-cc4a19980edc  E942-0060

Глядя на UUID невозможно понять что это такое.

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

Если можешь гарантировать уникальность LABEL-ов - вопросов ноль

Тут еще момент. Лабел после форматирования слетает, ууид - меняется. Можно попытаться вкорячить в фстаб by-id, который у меня выглядит примерно так:

ata-AMD_R5SL256G_08172222B3792-part1

это то, что должно быть/dev/sda1

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

Лабел после форматирования слетает, ууид - меняется.

В GPT есть partlabel, я им пользуюсь. На Steam Deck у меня так:

  fileSystems."/" =
    {
      device = "/dev/disk/by-partlabel/ROOT";
      fsType = "ext4";
      options = [ "noatime" "nodiratime" "norelatime" ];
    };

  fileSystems."/home" =
    {
      device = "/dev/disk/by-partlabel/HOME";
      fsType = "ext4";
      options = [ "noatime" "nodiratime" "norelatime" ];
    };

  fileSystems."/boot" =
    {
      device = "/dev/disk/by-partlabel/ESP";
      fsType = "vfat";
    };

  swapDevices = [
    { device = "/dev/disk/by-partlabel/SWAP"; }
  ];
Tsukasa
()
Ответ на: комментарий от Tsukasa

Да, так и есть. Попробовал отформатировал раздел, партлабел остался. Значит надо осваивать этот вариант.

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

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

Посмотреть uuid я смогу, а вот как его к примеру в фстаб занести?

Может руками? Если не удается выделить и скопировать, то переписываете на бумажку, потом печатаете с неё. Ну с паролями то справляетесь? Они сейчас сложнее ууидов.

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

в фстаб занести?

вбивать blkid и запоминать

Оказывается все уже придумано до нас, https://dev.to/bbkr/quick-copy-paste-device-uuid-to-various-linux-configurations-in-console-2ike.
Наверно и с vim можно что-то похожее.

p.s. Но я, как и большинство, «вбиваю и запоминаю». )

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

А если рута не дадут?

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

bread
()
Последнее исправление: bread (всего исправлений: 1)
Ответ на: комментарий от papin-aziat

Да, действительно удобно. У меня оказался установлен уже gpm, оставалось запустить службу.
Проверил на blkid, скопировав мышью uuid и вставив и в командную строку, и в /etc/fstab (vim).

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

У вас очень странные вопросы.

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

Это же обычное семейное использование. Я вот не админ ничего, работу работаю в экселе, линуксы чисто дома, когда припрет. Поэтому есть пяток очень разных пользователей, штук десять компьютеров и vps, какие-то базовые сервисы типа почты и nextcloud, vpn на это все. Все работает и обновляется годами, бэкапы, очевидно, есть.

Это просто обычное домашнее использование.

Все на NixOs, потому что я устал и занят, и убунту с арчем уже не вытаскиваю.

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

Авторы модулей заботятся о всяких нерелевантных закидонах апстрима и пишут сообщения, когда что-то меняется. В традиционном сетапе будет либо тихий фейл (ну типа что-то перестанет работать, а ты думай, в каком конфиге что случилось), фейл с записью в логах (тоже фан), или просто весь сервис перестанет работать, и давай, значит, чини его вот прямо сейчас. Я не могу себе такое позволить. Загрузить NixOs в предыдущий generation и отложить вопрос до выходных — могу.

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

У вас очень странные вопросы.

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

Это просто обычное домашнее использование.

Исходя из описанного это уже мини-офис, где вы вполне себе сисадмин.

Все на NixOs, потому что я устал и занят, и убунту с арчем уже не вытаскиваю.

Но опыт в них видимо все же есть, т.е это не история новичка.

Невозможно просто взять и перенести легаси дистрибутив на новое железо

Речь видимо про переход MBR-EFI, других идей для каких-то проблем с переносом не знаю.

Ну и если честно даже я (разработчик, который работает далеко не в экселе) просто копирую один home при переносе. А настройка рабочей среды и установка библиотек занимает пару часов на чистой ОС.

Так что если честно слабо представляю актуальность проблемы такого переноса вообще.

Я не могу себе такое позволить.

Видимо речь про какие-то сбои, требующие отката обновления? Ну так в более обычных дистрибьютивах их особо и нет. Если не брать генту/федору/арч, в той же убунте каких-то адских сбоев после обновления давно не видел.

Авторы модулей заботятся о всяких нерелевантных закидонах апстрима и пишут сообщения

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

Даже FreeBSD показывает все измененные файлы после апдейта, вообщем вот это:

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

на уровне фантастики, либо совсем уж плохая карма.

и отложить вопрос до выходных — могу.

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

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

alex0x08 ★★★
()