LINUX.ORG.RU

Для тех, кто думает перейти на NixOS

 


8

6

Собственно по мотивам ТЫЦ но про NixOS и на основе моего опыта эксплуатации сабжа в течение как минимум одного года восьми месяцев и двух дней или шестьсот двенадцати дней кому как угодно. Ибо именно столько у меня стоит NixOS основной системой тыц.

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

Так вот детки. Гента местами хороша… хотел бы я так написать но увы нет. Есть кардинальные проблемы с которыми она не справиться. Основная это toolchain. У вас попросту не может быть консистентной системы с самым распоследним toolchain-ом и довольно старыми выдержанными проверкой временем программами (Либо наоборот). Это не значит что такую проблему нельзя решить костылями chroot-а или некими иными методами… Это значит лишь то что такая проблема у дистрибутива как минимум есть в наличие.

Ты сейчас задвинул некую чушь. {У меня нет}/{Мне не нужны} старые программы.“ - Да дело ведь не только в этом. Те кто прожил с гентой достаточно припомнят не один случай неудачного обновления glibc в результате которого всему приходил северный полярный лис. „Бэкап спасёт“ да не без этого. Однако бэкап не исправляет саму изначальную проблему.

Так вот последние два абзаца написаны собственно только ради того что… Да детки в NixOS таких проблем нет. И быть не может by design. И я скромно умалчиваю про другие архитектуры, контейнера, FHS environment и прочие побочные плюшки.

Дальше меня ждала «ломка» поскольку во всех дистрибутивах корень системы это важная штука которую можно пощупать своими загребущими ручёнками… Да а в то время как в NixOS из всего корня так сказать материальны только /etc/nixos, /root и /nix а остальное симлинки… Тудумс! Занавес.

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

Канпельять нинада. nixos ацтой. Моя отсельда мухожук.“ Однако стоит лишь переопределить дефолт и если это столь необходимо пакетный манагер сам пересоберёт то что нужно пересобрать. Вкуснятина!

Дальше сам процесс разработки. Про генту я скромно умолчу. А вот NixOS разрабатывают на гитхабе открыто, свободно и без бюрократии и 1770 запросов на слияние и 3753 проблемы тому доказательство.

Я скажу так в генте для меня всегда была головной болью настроить gnome/kde/plasma. Полные метапакеты натащат столько что ппц а минимальные как правило просто обрезаны по самое немогу и для комфортного существования приходилось искать ту самую золотую середину самостоятельно. В NixOS просто дефолтный выбор мне что называется зашел на ура. Одной проблемой меньше.

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

В NixOS пакетный менеджер заведует не просто версией хромиума но и всеми его настройками и да даже его расширениями.

Любые нативные игрушки steam-run спасает и делает не просто хорошо а прям прекрасно.

Да ладно… Вот прям взял и описал идеал. Не верю.“ Есть и баги. Дальше о них.

Ну не то чтобы это было проблемой но как с самой первой инсталлиции так и до сих пор - Only english language available in plasma regional settings #33987, Missing a lot of translation in plasma5-based system. #37741 Да все преведенные решения перепробовал но баг как был так и есть.

Из того что заметил в последнее время HDD not mounted, system don't boot #32588 это про btrfs на luks. Но оно тоже странное то есть то нет… В общем закономерности я не заметил но у себя наблюдал.

Ну и покамест на этом всё. Надеюсь мои многобукав помогут кому нибудь сделать свой выбор.

★★★★★

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

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

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

У меня так кипятком писался от радости знакомый, когда впервые приобрел макбук эйр. Прям «щастье» какое неописуемое было, аж песец. А я прошелся по форуму Apple и сразу понял, что это всё временная эйфория, вызванная поверхностным знакомством с интересующим предметом. Так и случилось. Через некоторое время он обратился ко мне за помощью в даунгрейде макоси. В итоге, ему пришлось это выполнить самому в консольке :) Винду обсирать он не перестал, но прежняя радость куда-то улетучилась.

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

Пользуюсь nixos уже 5 лет.

Дистрибутив пригоден для ремонта без переустановки? Как с этим обстоят дела? Наверняка за 5 лет что-нибудь ломалось.

В свое время я только с 7-й попытки научился настраивать и собирать Gentoo с нуля. До этого я просто не вникал в хэндбук и всегда что-то упускал. Заново раскатывал stage3, правил конфиги и т.д. … и так до полного просветления.

P.S. Мануал сабжа напоминает гентушный хэндбук местами переусложненный, имхо.

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

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

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

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

RedEyedMan666
()

Отпишитесь те, кто юзал nix пакетный менеджер на других дистрах. Истории успеха? Что на счет его же в контейнерах?

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

например способом установки.

В генте при установке тоже правят сгенерированный конфиг?

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

В генте правят дефолтный make.conf, в принципе в обоих случаях юзер правит дефолтные конфиги.

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

Дистрибутив пригоден для ремонта без переустановки? Как с этим обстоят дела? Наверняка за 5 лет что-нибудь ломалось.

Ты так и не понял сути NixOS. В NixOS каждое обновление — это полная переустановка. Неважно, сколько лет твоей системе, она всегда как новая.

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

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

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

Для каждого обновления (если обновляться где-то раз в неделю или реже) необходимо скачать около десяти гигабайт пакетов! И это всё на stable и довольно обычном десктопном наборе.

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

нормальных людей не существует

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

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

На моём десктопе с кедами и кучей софта /nix/store занимает 18 ГБ, вместе с тремя предудыщими версиями системы. На серваке - 2 ГБ.

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

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

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

И это слишком жирно для бинарного дистрибутива (по дефолту).

RedEyedMan666
()

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

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

При следующем nixos-rebuild должны исчезнуть.

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

Столько, сколько есть и ещё чуть-чуть!

Нет, в самом деле. Проще оказалось сделать ход конём и установить NixOS в подтом btrfs, чтобы оно делило свободное место с /home и всем остальным. Тут не годится обычная схема, когда мы выделяем под / где-то гигабайт 10-15, ну максимум 20, ещё сколько-то под /var и всё остальное под /home — именно из-за ~+10G в каждом обновлении. Нет, предыдущие версии системы, конечно, можно удалить, но очевидно, что сделать это можно будет только после обновления и переключения на него. И до этого момента они продолжат делать своё чёрное дело занимать свободное место. И если вы не готовы выделить под корень около двадцати дополнительных гигабайт раз и навсегда — предпочтительнее ставить её вышеописанным способом. Будет немного неловко, если на очередное обновление вдруг не хватит места, и взять его будет просто неоткуда без манипуляций с разделами.

Но в действительности со свободным местом всё чуть менее печально, чем может показаться. Но только чуть-чуть. Очевидно, разработчики NixOS прекрасно осведомлены, что с каждым обновлением прилетает множество «нового старого», то есть таких новых пакетов, у которых хэш деривации сменился, а внутри они остались в точности такими же. Ну или даже не в точности, но с каким-то ненулевым количеством строго идентичных файлов по сравнению с предыдущими состояниями. И на этот случай предусмотрена команда nix optimise-store (она же, но в несколько другом исполнении nix-store --optimise), которая проходится по всему /nix/store и заменяет идентичные файлы на жёсткие ссылки. Экономия места выходит весьма заметная! Где-то около 18 гигабайт (но это вместе с пятью предыдущими апстримными версиями). Но до выполнения этой команды пакеты всё равно занимают дополнительное место на диске. Как же быть? А для этого предусмотрена опция nix.autoOptimiseStore, вместе с которой Nix делает то же самое, но автоматически при каждой установке пакетов. И вот вместе с ней каждое обновление занимает не десять, а всего лишь около шести дополнительных гигабайт на диске. Вот как-то так.

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

Показывай давай readlink -f /nix/var/nix/profiles/system | sed 's/.*-//', а потом nixos-rebuild dry-build --upgrade 2>&1 | grep 'these paths will be fetched' :3 С десктопа, разумеется.

Ну и можно nix-store -q --references /run/current-system/sw /etc/profiles/per-user/${USER} ~/.nix-profile для полноты картины.

toyo-chi
()
Последнее исправление: toyo-chi (всего исправлений: 1)

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

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

ноут для экспериментов.

поставил Kubuntu

Отличный эксперимент.

anonymous
()

Ставил я как-то NixOS. В целом интересная задумка, но очень напряг медленный ПМ, для новичка не совсем понятна логика его работы.

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

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

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

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

медленный ПМ

Для раз поюзать без установки в систему есть [inline]nix-shell -p mypackage[/inline] - работает быстрее apt-get install, вызывает привыкание.

Сам конфиг составлять довольно сложно из-за отсутствия документации или сложности в её нахождении.

https://nixos.org/nixos/options.html же.

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

Для раз поюзать без установки в систему есть nix-shell -p mypackage - работает быстрее apt-get install, вызывает привыкание.

Сам конфиг составлять довольно сложно из-за отсутствия документации или сложности в её нахождении.

https://nixos.org/nixos/options.html же.

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

Для раз поюзать без установки в систему есть [inline]nix-shell -p mypackage[/inline] - работает быстрее apt-get install, вызывает привыкание.

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

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

https://nixos.org/nixos/options.html же.

Это не документация, просто список пакетов. Допустим ты не гуру и пытаешься интуитивно понять, что и как пример:

https://github.com/NixOS/nixpkgs/blob/release-19.09/nixos/modules/services/security/tor.nix

Лапша на 700+ строк. Теперь для того что бы сделать под себя рабочий конфиг и почувствовать все прелести NixOS, «скопировал конфиг, у тебя готовая настроенная тобой система»,
нужно перелопатить 50-100 таких лапша-nix файлов и понять что да как.

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

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

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

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

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

А https://nixos.org/nixos/manual, https://nixos.org/nixpkgs/manual и https://nixos.wiki кто?

Ты же мне предлагаешь набор аналогов ебилдов

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

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

А А https://nixos.org/nixos/manual

Гайд по установке и первичной настройке, порог вхождения = научись программировать на ЯП.

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

Я ничего не путаю, «опция» в конфиге по сути = пакет. Точнее просто ссылка на сборочный файл .nix

Речь шла про то, что этот список опций ни на что не годится, допустим хочу я вим сконфигурировать, что я там найду? Правильно гулькин нос.

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

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

Везде какой-то пердолинг и кодинг. Красноглазие во все поля.

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

Речь шла про то, что этот список опций ни на что не годится, допустим хочу я вим сконфигурировать, что я там найду? Правильно гулькин нос.

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

А, я понял. Ты

  1. теоретик с рача, NixOS и не пробовавший
  2. но завидующий, что у рача не только клевого списка опций, самих-то опций и нет.

Соболезную, че.

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

А, я понял. Ты

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

Судя по ТСу для «попробовать» это год с лишним"

Хотя конечно, в реальности красноглазиков попробовавших пердолинг всего сборочного утилитариума + всех исходников = нормальная практика для «обычного пользователя».

УМВР и лицемерие, зачем все эти заявления про «простоту», стабильность.

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

теоретик с рача, NixOS и не пробовавший

Воск с рук отскребать не устал там?

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

Это стандартное оправдание потраченного года на «попробовать» у Nix`овиков или твоё личное ноу-хау?

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

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

https://rycee.gitlab.io/home-manager/options.html#opt-programs.vim.enable и далее вниз. Еще что-нибудь за тебя сделать? Я добрый, даром что красноглазик.

УМВР и лицемерие, зачем все эти заявления про «простоту», стабильность.

Простоту? Стабильность? NixOS???

Друг, тебя жестоко разыграли. Нет в NixOS ни первого, ни второго, это я тебе как ярый фанат NixOS говорю.

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

Это стандартное оправдание потраченного года на «попробовать» у Nix`овиков или твоё личное ноу-хау?

Мое личное ноу-хау - это, например, https://github.com/t184256/nix-on-droid. А твои смешные намеки на то, что я якобы слез с NixOS откровенно смешны. Пока больше никто в декларативное конфигурирование не умеет, слезать с нее и некуда.

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

https://rycee.gitlab.io/home-manager/options.html#opt-programs.vim.enable и далее вниз. Еще что-нибудь за тебя сделать? Я добрый, даром что красноглазик.

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

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

В 30 местах разбросанные куски всего, и лапша на 14к строк в которой надо всё искать, что бы сделать конфиг для одного вима.

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

А, сейчас начнутся оды про «сервера, у меня 15 локалхостов, на которые я каждый день ставлю свою атомарную, стабильную, воспроизводимую NixOS»

Друг, тебя жестоко разыграли. Нет в NixOS ни первого, ни второго, это я тебе как ярый фанат NixOS говорю.

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

Мое личное ноу-хау - это, например, https://github.com/t184256/nix-on-droid

Молодец, правда хрен редьки не слаще.

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

Стандартные басни, что конкретно даст мне твоё «декларативное конфигурирование» с точки зрения пользователя локалхоста, чего не я не могу получить без него?

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

О, красноглазик накопал

Что тут копать, когда у меня через соседнюю neovim настроен?

Теперь за меня будь добр, опровергни первоначальный посыл.

А подсоби мальца, озвучь посыл.

В 30 местах разбросанные куски всего, и лапша на 14к строк в которой надо всё искать, что бы сделать конфиг для одного вима

Просто нет. Читаешь описания опций, пишешь конфиг. Все.

А, сейчас начнутся оды про «сервера, у меня 15 локалхостов, на которые я каждый день ставлю свою атомарную, стабильную, воспроизводимую NixOS».

Это можно. «У меня были сервера, 15 локалхостов, на которые я каждый месяц ставил неатомарный стабильный невоспроизводимый Debian при помощи костылей, Ansible и гипотетического общего прародителя, потому что Ansible в декларативное конфигурирование не умеет. А теперь я перешел на NixOS и волосы у меня стали чистые и шелковистые, благо теперь отпала необходимость эмулировать декларативное конфигурирование судорожной переустановкой всего и вся».

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

Какой из?

Стандартные басни, что конкретно даст мне твоё «декларативное конфигурирование»

Задача: привести систему в состояние X. Почтовый сервер настроить или шрифт в терминале сменить - не суть.

Решение вручную: проанализировать текущую ситуацию, придумать набор действий, приводящий систему в состояние X, молиться.

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

Решение при наличии декларативного конфигурирования: применить конфигурацию.

с точки зрения пользователя локалхоста

Одного? С которого ты ЛОР браузишь? Ничего.

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

Что тут копать, когда у меня через соседнюю neovim настроен?

УМВР

Просто нет. Читаешь описания опций, пишешь конфиг. Все.

14700 строк. Конфиг вима 50 строк.

Какой из?

Тот который первый.

Это можно. «У меня были сервера, 15 локалхостов, на которые я каждый месяц ставил неатомарный стабильный невоспроизводимый Debian при помощи костылей, Ansible и гипотетического общего прародителя, потому что Ansible в декларативное конфигурирование не умеет. А теперь я перешел на NixOS и волосы у меня стали чистые и шелковистые, благо теперь отпала необходимость эмулировать декларативное конфигурирование судорожной переустановкой всего и вся».

ССЗБ во все поля.

Задача: привести систему в состояние X. Почтовый сервер настроить или шрифт в терминале сменить - не суть.

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

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

Стандартные басни, что конкретно даст мне твоё «декларативное конфигурирование»

Довести систему до состояния Х можно и без декларативного конфигурирования.

Решение при наличии декларативного конфигурирования: применить конфигурацию.

Говорю же ССЗБ. Поставить систему ради того, что бы настраивать систему, настраивать ради настраиваемости. Почему-то вопросы которые ты решаешь через своё декларативное Г, по большей части порождает само же это декларативное Г.

Одного? С которого ты ЛОР браузишь? Ничего.

А какая там формула, в соответствии с которой число Х-локалхостов = можно использовать божественную NisOS ?

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

так никто и не отписался по поводу импользования пм никс в других дистрах. что это дает и удобно ли?

Кто хотел уже обсосал. В остальных дистрах плюшки те же самые.

init_6 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.