LINUX.ORG.RU

Поясните про NixOS

 


0

4

Смотрю, ее тут прям рекламируют. Я почитал на сайте, почитал в тырнете, посмотрел в ютубе, но все равно кое-чего не осилил.

  1. Получается, на все есть единый конфиг. Каким образом, допустим, какой нибудь vim (для примера, на месте него может быть любая другая софтина), у которого свой «язык», конфигурируется в никсе? Тупо просто тот же конфиг, что у меня щас в .vimrc, копипастнуть в конфиг никса?

  2. Как быть с теми програми, у которых нет дефолтного конфига в никсос? Типо, в репах дистра есть и можно поставить, но в дефолтном конфиге нет описания конфига проги. Самому писать с нуля?

  3. Насколько жирнеет система со временем? Если для обычного дистра для меня хватает 15-20 гигов на корень, а остальное в хомяк, то как тут не проалёшиться с разметкой? Сколько нужно под корень для хранения всех состояний?

И вообще, насколько сложно освоить работу с никсом обычному юзеру (щас на арче сижу). Хочу взять никсось ради простой воспроизводимости (дома 4 компа) и надежности (если сказка про простые откаты в случае бага/неработоспособности состояния правда).


ради простой воспроизводимости

Воспроизводимость в Арче можно сделать так: ставишь на новый комп базовую систему через pacstrap, копируешь на неё базу установленных пакетов с «образцового» компа, и запускаешь переустановку всех пакетов.

надежности

Когда я сидел на Генте - постоянно приходилось пользоваться снапшотами Btrfs. С переходом на Manjaro надобность в этом полностью отпала, я ни разу ими не пользовался, так что вернул обратно ext4

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

Воспроизводимость в Арче можно сделать так: ставишь на новый комп базовую систему через pacstrap, копируешь на неё базу установленных пакетов с «образцового» компа, и запускаешь переустановку всех пакетов.

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

Когда я сидел на Генте - постоянно приходилось пользоваться снапшотами Btrfs. С переходом на Manjaro надобность в этом полностью отпала, я ни разу ими не пользовался, так что вернул обратно ext4

Ваще не понял к чему это.

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

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

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

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

Mirwnn
() автор топика

Каким образом, допустим, какой нибудь vim

Как-то так: https://github.com/rycee/home-manager/blob/master/modules/programs/vim.nix

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

За конфигурацию ответственны не пакеты, а модули. Если модуля для твоей программы нет, то его стоит написать.

Сколько нужно под корень для хранения всех состояний?

Зависит от того, как часто делать nix-collect-garbage.

насколько сложно освоить работу с никсом обычному юзеру

Ну вим-то ты освоил.

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

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

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

Ясно понятно, буду дальше на арче сидеть и не выпендриваться.

Аналогично.

А что у тебя с либрой в арче было-то? Есть ли где обсуждение проблемы (можно на инглише)?

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

Можно его и не использовать же. У меня он только для установки программ без рута.
И вообще, перед тем как бежать в панике, вещи стоит немного потыкать.

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

Хотя на repology.org у NixOS больше всего пакетов в репозитории. Был бы идеальный дистрибутив если бы они не выдумывали велосипед с конфигами.

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

Наоборот же. Вместо того, чтобы лежать где попало, конфиг системы лежит в одном месте. Никто же не возмущается наличием /etc/conf.d в Gentoo? Так чем же Nix хуже?

quantum-troll ★★★★★
()
  1. Да
  2. Самому писать (это несложно)
  3. Система жирнеет прямо пропорционально времени пользования обычно, у меня сейчас ~160ГБ в /nix/store , но я мусор не вычищал уже полгода и у меня там лежат системы на базе 19.03 и 19.09pre.

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

Из недостатков – для всего нужно писать пакеты на nix и модули nixos, и как язык nix – довольно хреновый, много магии и костылей. Удачи, приходи в группу в tg (https://t.me/ru_nixos) если что.

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

Новомодная какашка, слака рулит

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

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

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

Пердолятся, вот и работает со скрипом

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

Снапшоты на генте? Нахрена? Ни разу не сломалась серьёзно за 10 лет, разве что цхост 1 раз пытался поменять — в итоге развернул свой stage4 прошлогодний только чтобы не страдать больше.

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

И это, поверь я с ней извращася хорошо. Graphite с lto ломали и libreadline и libcurses и zlib (в том числе неочевидно), ни разу не пришлось откатываться. Без извращений подобных проблем вообще не возникнет. Не осилил так и скажи, хотя казалось бы дистрибутив для домохозяек что там не осилить.

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

ни разу не пришлось откатываться

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

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

Так ли это удобно чем править всё в /etc или ~/.config? Я имею ввиду не полностью систему, а отдельную программу.

P.S. сам NixOS ставил только на VM и подумываю о миграции.

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

Это очень удобно для стопицот машин, ибо везде одинаковый конфиг одной командой. А вот для «повседневного» использования удобнее было бы ручками покопаться, да.

balsoft ★★
()

Каким образом, допустим, какой нибудь vim (для примера, на месте него может быть любая другая софтина), у которого свой «язык», конфигурируется в никсе?

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

Как быть с теми програми, у которых нет дефолтного конфига в никсос? Типо, в репах дистра есть и можно поставить, но в дефолтном конфиге нет описания конфига проги. Самому писать с нуля?

«в репах дистра есть и можно поставить, но в дефолтном конфиге нет описания конфига проги» - это как? Справочник https://nixos.org/nixos/options.html генерируется автоматически, в нем есть все, что предусмотрено в nixpkgs.

Насколько жирнеет система со временем? Если для обычного дистра для меня хватает 15-20 гигов на корень, а остальное в хомяк, то как тут не проалёшиться с разметкой? Сколько нужно под корень для хранения всех состояний?

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

И вообще, насколько сложно освоить работу с никсом обычному юзеру (щас на арче сижу).

Освоить не сложнее, чем арч. Понять устройство - сложнее.

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

Воспроизводимость в Арче можно сделать так: ставишь на новый комп базовую систему через pacstrap, копируешь на неё базу установленных пакетов с «образцового» компа, и запускаешь переустановку всех пакетов.

Это ерунда, а не воспроизводимость. NixOS, конечно, не фонтан, но вполне реально иметь на 100% декларативно описанный сервер.

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

Далеко не для каждого пакета есть соответствующий модуль.

Что ты называешь модулями, для каких пакетов их нету и какие проблемы из этого следуют? Я немного понимаю nix expression language и знаю, что для каждого пакета есть функция, которая возвращает derivation set для его сборки, и некоторые функции помимо необходимого для сборки принимают параметры для кастомизации пакета. Функция, которая возвращает derivation set для сборки профиля системы, принимает configuration set (options), который возвращает функция из /etc/nixos/configuration.nix, и который перерабатывается в список зависимостей системы и параметры для функций этих зависимостей. Ты о том, что конкретно эта функция умеет находить в configuration set и использовать? Или о том, что справочник options все же не обязательно содержит все, что она умеет?

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

Модулями я называю, очевидно, модули из nixos. Буквально на прошлой неделе сам писал модули для mautrix-whatsapp и mautrix-telegram (пакеты в nixpkgs есть, а модулей – нет). Это совсем несложно в абсолютном большинстве случаев. Достаточно просто описать сервисы, запускающие программулину, и сгенерировать её конфиг.

Если не понимаешь, в чем отличия пакетов от модулей, то учи матчасть.

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

Т. е. configuration.nix тоже считается модулем. Причем модуль может влиять на профиль системы как по факту его импорта, так и через использование опций, которые он предоставляет, в модуле, который его импортирует.

Кстати, ты не знаешь, Nix позволяет как-то выяснить, откуда берется значение атрибута в scope, т. е. увидеть нечто вроде графа вызовов со ссылками на функции в исходниках?

shatsky ★★
()
Последнее исправление: shatsky (всего исправлений: 1)
Ответ на: комментарий от shatsky
  1. Да. «По факту импорта» влияет атрибут config возвращаемого сета, а декларация опций – в options. Для удобства, если модуль не возвращает ни config, ни options, то все возвращаемые аттрибуты считаются за config.
  2. Нет, такого пока не видел (разве что --show-trace делает нечто похожее при ошибке)
balsoft ★★
()
Ответ на: комментарий от xaTa

Всегда лоллирую с того, как гентушники умудряются писать шизофазию типа «гента не требует красноглазия, ты просто её не осилил», причём даже не понимают, что сами себе противоречат 😂

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

почему?

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

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

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

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

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

shatsky ★★
()

Слез с генты на NixOS года три назад, до сих пор кайфую. Как же это круто, когда сборки воспроизводятся. И баги вопроизводятся. Никакого больше «у миня фсё работает чини руки» - если пакет собрался на машине разработчика гидре, он собирается у всех, ныне и присно и во веки веков. Специально пробовал собирать пакеты пятилетней давности, с полностью отключенным бинарным кэшем - всё собирается! Настолько непривычно, после традиционных дистров, где всё соплями склеено, что даже вообще.

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