LINUX.ORG.RU

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

 , ,


0

3

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

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

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

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

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

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

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

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

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

★★★★★

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

Простите великодушно, но складывается впечатление, что вопросов у вас вообще нету, а ответы вы все знаете заранее. Естественно, если вы заведомо лучше всех знаете как правильно, то реакция на нечто принципиально новое (т.е. отличное от того «как правильно») может быть только одна: „говно какое-то, переделывайте“. Вы её и выдали. Для вас смысла в NixOS нет и не будет никогда, и ничего вы не поймёте, и новому не научитесь, пока находитесь в состоянии гордыни.

ugoday ★★★★★
()

P.S. Я б вообще по другому вопрос поставил. В чём смысл концептуально новых дистрибутивов понятно. А вот в чём смысл делать 100500 сборок, которые относительно дебиана ничего нового, кроме нескучных обоев, не вносят, решают те же задачи теми же методами? Вот тут у меня воображение отказывает.

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

Мне удобней из архива, т.к. там самая новая версия,

Всё ж лучше архив опакетить, а потом уже пакет установить штатными средствами. Если конечно вы не на Слаке сидите, тогда всё равно уже.

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

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

Да нет, отчего же. Puppet/Ansible/etc в руки и вперёд. NixOS (или Guix в моем случае) просто делает следующий шаг в этом направлении.

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

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

Ну а смысл какой? Он обновляться не будет, т.к. даже в AUR версия старее, файлы никуда не раскиданы, все в одной директории, единственный симлинк в $PATH. На гитхаб захожу каждый день и вижу все новости, предложения и дискуссии этого проекта, я даже скрипт для скачки нового релиза (через api.github) не пишу, так как нет необходимости. Раз в три-четыре месяца просто скачиваю архив.

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

С ними либо каждый раз с нуля разворачивать,

В смысле? Чем декларативное описание конечного состояния системы в паппете, отличается от такого же описания в NixOS/Guix?

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


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

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

Я тут бубнил про арч и наркоманские ключи пакмана. Про сравнению с никсосью, арч - образец логичности и понятности.

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

А как? Развёрнуто пожалуйста, а то я тоже могу сказать «Нет», отличная дискуссия получится

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

Дальше продолжать?

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

В смысле? Чем декларативное описание конечного состояния системы в паппете, отличается от такого же описания в NixOS/Guix?

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

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

Ну а смысл какой?

Традиция! А сверх того как-то проще, когда знаешь, что для управления пакетами используется всегда один пакетный менеджер и не нужно помнить удалив директорию в /opt нужно ещё почистить /usr/local/bin и убрать мусор из /var/lib. От забытого симлинка, понятное дело, большой беды не будет, спокойно можно жить и так.

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

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

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

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

Полагаю, что необходимо начать с того, что груб давно уже не нужен.

Отвечу в стиле моей бабушки «да но нет». EFI это круто и решает кучу проблем, если не делать мультибут с кучей разных ОС и не переставлять эти ОС на регулярной основе.

В этом случае да, проблемы не будет.

Но как только в вашей жизни появляется любая из BSD, хакинтош или венды (которые тоже любят EFI но чтоб свой) - сказка заканчивается.

И все снова возвращается к grub.

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

почистить /usr/local/bin и убрать мусор из /var/lib

Там и так ничего нет, что чистить-то? В /tmp только, но там tmpfs, других следов нигде нет, только в хомяке ну и несколько переменных в /etc/environment, но я их сам туда когда-то прописал.

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

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

Github, Gitlab, Codeberg, Sourcehut, и т.д. и т.п. не, не слышал?

Вы уверены, что правильно понимаете термин «домохозяйка»?

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

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

Практически в каждой теме, касающейся требухи линуксов, появляется адепт и вещает, что это всё ненужно, ибо есть никсось. По любому поводу - «а вот с никсоси...»

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

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

а во-вторых, тебе жалко места на экране в загрузчике, или что не так?

Никогда не уважал людей, оперирующих фразой «тебе жалко что ли?» Догадайтесь почему?

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

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

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

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

programs.steam.enable = true;

Где перечислены все возможные значения того, что можно вписывать в programs.*? А как добавить в этот перечень понимаемых программ свою? У них там своё подобие AUR, например?

А автор другой статьи, на Хабре, включает Гном:

services.xserver.desktopManager.gnome.enable = true;

Где я могу найти все поддерживаемые NixOS варианты desktopManager.*? А как добавить свой?

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

А при ближайшем рассмотрении и задавании вопросов

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

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

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

Вот тут у меня воображение отказывает.

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

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

Полностью согласен, тем более не понимаю проблемы с дисками

Нп хочется разводить оффтоп в данной теме. Для этого существуют специально созданные.

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

Но как только в вашей жизни появляется любая из BSD, хакинтош или венды (которые тоже любят EFI но чтоб свой) - сказка заканчивается

Мы тут про домохозяек, если что. Пограничные случаи нп рассматриваем, хорошо?

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

Тогда встает вопрос «для кого это все».

Типичные домашние пользователи исключаются ввиду незнания git, продвинутые домашние пользователи тоже исключаются ввиду необходимости мультибута и перестановок ОС.

Таким образом мы убрали детей, женщин и студентов (даже технических вузов). Ну и кто остается в качестве ЦА?

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

ОП, конечно, попахивал толксами

Я не знал, куда впихнуть. Но так, как разговор о никсоси и её установке/применении, решил сюда.

Вопросов на самом деле очень много. Начать с того, что для установки пакета, надо сначала идти на search.nixos.org и смотреть, как он называется в никсоси.

Собственно сама установка тривиальна, за исключением одного момента. Никсось хочет, чтобы ефи раздел имел размер минимум 512мб и был смонтирован в /boot. В противном случае ядро не установится.

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

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

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

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

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

Никсось хочет, чтобы ефи раздел имел размер минимум 512мб

Ну тут как раз все стандартно:

Using my own machines as a reference, the EFI partitions on the daily workhorses are 1GB in size. The partitions exist on a storage device that is at least 512GB in size. Currently none of the EFI partitions exceed 1.8% utilisation, or 180MB (the lowest is 97MB).

Microsoft recommends 100 MB for its operating systems, while many Linux forums suggest more for Linux based operating systems or for any dual boot or multi booting situations.

The author of gdisk suggests 550 MiB.

As per the Arch Linux wiki, to avoid potential problems with some EFIs, ESP size should be at least 512 MiB. 550 MiB is recommended to avoid MiB/MB confusion and accidentally creating FAT16.

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

исключительно в области домашнего применения

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

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

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

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

различия между дистрами порой очень серьезные.

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

А вот NixOS/Guix — новое слово в построении дистрибутивов.

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

Где я могу найти все поддерживаемые NixOS варианты desktopManager.*?

В Nix есть команда nix repl. С ее помощью можно посмотреть все возможные опции конфига.

nix repl                                                                                          ✔  at 13:51:13   
Welcome to Nix 2.17.0. Type :? for help.

nix-repl> :lf .
Added 9 variables.

nix-repl> nixosConfigurations.scar.config.services.xserver.desktopManager.
nixosConfigurations.scar.config.services.xserver.desktopManager.budgie
nixosConfigurations.scar.config.services.xserver.desktopManager.cde
nixosConfigurations.scar.config.services.xserver.desktopManager.cinnamon
nixosConfigurations.scar.config.services.xserver.desktopManager.deepin
nixosConfigurations.scar.config.services.xserver.desktopManager.default
nixosConfigurations.scar.config.services.xserver.desktopManager.e19
nixosConfigurations.scar.config.services.xserver.desktopManager.enlightenment
nixosConfigurations.scar.config.services.xserver.desktopManager.gnome
nixosConfigurations.scar.config.services.xserver.desktopManager.gnome3
nixosConfigurations.scar.config.services.xserver.desktopManager.kde5
nixosConfigurations.scar.config.services.xserver.desktopManager.kodi
nixosConfigurations.scar.config.services.xserver.desktopManager.lumina
nixosConfigurations.scar.config.services.xserver.desktopManager.lxqt
nixosConfigurations.scar.config.services.xserver.desktopManager.mate
nixosConfigurations.scar.config.services.xserver.desktopManager.pantheon
nixosConfigurations.scar.config.services.xserver.desktopManager.phosh
nixosConfigurations.scar.config.services.xserver.desktopManager.plasma5
nixosConfigurations.scar.config.services.xserver.desktopManager.retroarch
nixosConfigurations.scar.config.services.xserver.desktopManager.runXdgAutostartIfNone
nixosConfigurations.scar.config.services.xserver.desktopManager.session
nixosConfigurations.scar.config.services.xserver.desktopManager.surf-display
nixosConfigurations.scar.config.services.xserver.desktopManager.wallpaper
nixosConfigurations.scar.config.services.xserver.desktopManager.xfce
nixosConfigurations.scar.config.services.xserver.desktopManager.xfce4-14
nixosConfigurations.scar.config.services.xserver.desktopManager.xterm

И описание опций и примеров.


nix-repl> nixosConfigurations.scar.options.services.xserver.desktopManager.plasma5.phononBackend.description
"Phonon audio backend to install."

nix-repl> nixosConfigurations.scar.options.services.xserver.desktopManager.plasma5.phononBackend.example    
"gstreamer"

Или возможные варианты опционала самого пакета.


nix-repl> nixosConfigurations.scar.pkgs.mpv-unwrapped.override.__functionArgs 
{ SDL2 = false; addOpenGLRunpath = false; alsa-lib = false; alsaSupport = true; archiveSupport = true; bluraySupport = true; bs2bSupport = true; cacaSupport = true; cddaSupport = true; cmsSupport = true; config = false; darwin = false; docutils = false; drmSupport = true; dvbinSupport = true; dvdnavSupport = true; fetchFromGitHub = false; fetchpatch = false; ffmpeg_5 = false; freefont_ttf = false; freetype = false; jackaudioSupport = true; javascriptSupport = true; lcms2 = false; lib = false; libGL = false; libGLU = false; libX11 = false; libXScrnSaver = false; libXext = false; libXinerama = false; libXpresent = false; libXrandr = false; libXv = false; libXxf86vm = false; libarchive = false; libass = false; libbluray = false; libbs2b = false; libcaca = false; libcdio = false; libcdio-paranoia = false; libdrm = false; libdvdnav = false; libiconv = false; libjack2 = false; libplacebo = false; libpng = false; libpngSupport = true; libpthreadstubs = false; libpulseaudio = false; libsixel = false; libtheora = false; libuchardet = false; libva = false; libvdpau = false; libxkbcommon = false; lua = false; mesa = false; meson = false; mujs = false; ninja = false; nv-codec-headers = false; openalSoft = false; openalSupport = true; pipewire = false; pipewireSupport = true; pkg-config = false; pulseSupport = true; python3 = false; rubberband = false; rubberbandSupport = true; screenSaverSupport = true; sdl2Support = true; shaderc = false; sixelSupport = true; speex = false; speexSupport = true; stdenv = false; swift = false; swiftSupport = true; theoraSupport = true; vaapiSupport = true; vapoursynth = false; vapoursynthSupport = true; vdpauSupport = true; vulkan-headers = false; vulkan-loader = false; vulkanSupport = true; wayland = false; wayland-protocols = false; wayland-scanner = false; waylandSupport = true; x11Support = true; xcbuild = false; xineramaSupport = true; xvSupport = true; zimg = false; zimgSupport = true; }

Samsky
()

@utanho

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

Как эту задачу решить - пожалуй ни в одном линуксе в чистом виде так не будет, можно пытаться приблизиться к цели. Вот NixOS как раз очень хорошо решает задачу развертывания преднастроенной конфигурации, при этом позволяя легко учесть нюансы, возникающие на разном железе например (при помощи опций). Что не достижимо традиционным методом - накатыванием готового бинарного образа. Он не гибок, туда придется лезть руками и доработать напильником. А в NixOS опция (которую, в теории, GUI установщик может хомячку прописать) - и всё.

Но! Для этого, надо чтобы эти конфигурации были кем-то сделаны! Их нет, то есть NixOS это инструмент, который позволяет это сделать, но готовых решений на нем нету.

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

Разницу между рекомендациями и требованиями понимаем?

У меня раздел ефи - 256мб. На всякий случай. И он практически пустой.

Никсось просто не будет работать, если не следовать её требованиям.

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

Каким образом это оффтоп, если это один из пунктов в первом посте?

Нет, это с дополнении.

Разделы пляшут в никсоси и в дебиане. В остальных пофиксили.

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

А вот технически — они все почти одинаковы.

Вот вообще нет. И дело не в поддержке, а в подходе. Но это лежит за пределами нашего обсуждения.

Что никсось принесла концептуально нового?

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

нажал кнопочку - бац и LAMP сервер.

Хомячку это не нужно. Он даже не знает, что это.

Тут скорее надо чтобы вайн, вулкан и кинчик с музоном.

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

Надо было изначально назвать тему «никсось для домохозяек»

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