LINUX.ORG.RU

NixOS - начало

 


1

6

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

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

В общем, хочу попробовать NixOS на реальном железе в полевых условиях (не виртуалка). Читал тут уже несколько обсуждений, на какие-то вопросы нашел ответ. Осталось непонятным для меня:

  • Если я сижу, допустим, в кедах, и существенно меняю настройки кед, которые доступны в Системных настройках, в единый конфиг NixOS автоматом вносятся изменения? Или для достижения постоянного эффекта от изменения настроек мне вручную нужно будет все вносить?
  • Насколько сложно было тебе, $USER, освоить язык для свободного редактирования конфига? По шкале от 1 до 10. Я понимаю, что NixOS скорее всего юзают адвансед юзеры и выше, а я вроде пре-адвансед.
  • Какие типичные проблемы в NixOS по сравнению с традиционными дистрибутивами? О чем заранее подумать до перехода?
  • Не нашел в гугле, есть ли возможность диференциации задейсвуемых частей конфига в зависимости от условий. Например, единый конфиг для пекарни и ноута. У них есть что-то общее, но отличаются, например, разрешение, сервисы и прочее. Есть возможность ставить условия, какие описанные в конфиге сервисы грузить в зависимости от $HOSTNAME или других параметров.

Если я сижу, допустим, в кедах, и существенно меняю настройки кед, которые доступны в Системных настройках, в единый конфиг NixOS автоматом вносятся изменения?

Нет.

Или для достижения постоянного эффекта от изменения настроек мне вручную нужно будет все вносить?

Вот это ^ да.

Насколько сложно было тебе, $USER, освоить язык для свободного редактирования конфига? По шкале от 1 до 10. Я понимаю, что NixOS скорее всего юзают адвансед юзеры и выше, а я вроде пре-адвансед.

Элементарно.

Какие типичные проблемы в NixOS по сравнению с традиционными дистрибутивами? О чем заранее подумать до перехода?

Это так и не исправлено.

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

Нет „конфига“ есть язык программирования. Ещё вопросы?

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

Вот это ^ да.

Тогда как решается ситуация, когда обновляется некий софт, у которого или кардинально меняется конфиг и нет обратной совместимости, или добавляются новые опции, которых нет в старом конфиге? Как система будет разруливать такое?

Нет „конфига“ есть язык программирования. Ещё вопросы?

Про это не понял, что имеешь ввиду.

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

Кстати, вопрос к знатокам NixOS

Пример. Если я поставлю Dolphin, оно потащит за собой часть кед, QT5 и т.д.

Далее я ставлю, к примеру, Digikam - оно так же за собой (в свою директорию /nix/store/*) потащит за собой эту же часть кед, снова QT5 или те же самые модули каким-то образом «пролинкуются» и заново грузиться не будут?

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

Не стоит вскрывать эту тему

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

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

Знатоки подъехали

Вот именно знатоки. Оппа

Nix is a purely functional package manager. This means that it treats packages like values in purely functional programming languages such as Haskell — they are built by functions that don’t have side-effects, and they never change after they have been built.

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

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

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

Тогда как решается ситуация, когда обновляется некий софт, у которого или кардинально меняется конфиг и нет обратной совместимости, или добавляются новые опции, которых нет в старом конфиге? Как система будет разруливать такое?

О каком „конфиге“ разговор? О том, что в ~/.что-то-там? Или о том что в /etc/где-то-там?

Про это не понял, что имеешь ввиду.

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

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

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

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

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

…системный конфиг как то меняет то что Nix ЯП?

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

Весь разговор с самого начала про /etc/nixos/configuration.nix, который, как выше упомянул аноним, по всему гайду упомянаеся как конфиг.

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

сижу на стабильном дебиане
Пару раз система дохла
хочу попробовать NixOS
я вроде пре-адвансед

amd_amd ★★★★★
()
Ответ на: Кстати, вопрос к знатокам NixOS от neocrust

Далее я ставлю, к примеру, Digikam - оно так же за собой (в свою директорию /nix/store/*) потащит за собой эту же часть кед, снова QT5

Нет

или те же самые модули каким-то образом «пролинкуются» и заново грузиться не будут?

До вот именно это.

init_6 ★★★★★
()

Тебе нужна убунту.

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

Весь разговор с самого начала про /etc/nixos/configuration.nix, который, как выше упомянул аноним, по всему гайду упомянаеся как конфиг.

А мне плевать что говорит аноним. „Конфиг“ /etc/nixos/configuration.nix обозван так только потому что да по назначения сей файл конфигурирует всю систему. А по своему формату /etc/nixos/configuration.nix это ЯП а не файл настроек в xml/ini формате. А если /etc/nixos/configuration.nix это ЯП то в нём можно ВНЕЗАПНО писать всякие операторы а следовательно и иметь один файл настроек который будет генерировать разные ОС в зависимости от иных условий.

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

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

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

Твои попытки слиться просто умиляют. Учи, что такой файл в линуксах, что такое конфиг, что такое яп. Потом сравни полученные данные. Если не тупой, то догонишь, а если тупой, то тебе уже не помочь, соре.

anonymous
()

Какие типичные проблемы в NixOS по сравнению с традиционными дистрибутивами?

Недавно тоже так же, решил попробовать на реальном железе. Все вроде нормально. Какие у меня были трудности?

При установке пришлось изучить, что такое wpa_supplicant и как с его помощью подключиться к wifi (интернет необходим для установки). Команда из мануала

wpa_supplicant -B -i <интерфейс> -c <(wpa_passphrase <сеть> <пароль>)
не работала, пришлось запускать через конфиг.

Второй для меня трудностью оказался bluеtooth, а точнее подключение наушников — методом научного тыка перебрал все комбинации, подошла эта:

  hardware.bluetooth.enable = true;
  hardware.bluetooth.package = pkgs.bluezFull;
  hardware.pulseaudio.package = pkgs.pulseaudioFull;

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

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

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

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

Всё и вся во всём корне nixos за исключением /etc/nixos, /nix и даже /home/USER/* не материально а просто набор симлинков на основе того что написано в /etc/nixos и того что прилетает в nixpkgs.

Тогда как решается ситуация, когда обновляется некий софт, у которого или кардинально меняется конфиг и нет обратной совместимости, или добавляются новые опции, которых нет в старом конфиге? Как система будет разруливать такое?

Если у тебя в /etc/nixos старые настройки а в nixpkgs прилетит новая версия с принципиально другими настройками nix при обновлении обругает тебя ошибками.

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

Это так и не исправлено.

У меня все исправилось после:

    environment.systemPackages = with pkgs; [
        ...
        kdeFrameworks.kxmlgui.out
        kdeFrameworks.kio.out
        kdeFrameworks.kconfigwidgets.out
        kdeFrameworks.ki18n.out
        kdeFrameworks.ktexteditor.out
    ];

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

При установке пришлось изучить, что такое wpa_supplicant и как с его помощью подключиться к wifi (интернет необходим для установки)

Ну да ты не осилил сразу поставит NM и до этого в глаза не видел wpa_supplicant? Незачет.

Второй для меня трудностью оказался bluеtooth, а точнее подключение наушников — методом научного тыка перебрал все комбинации, подошла эта:

Мне не пришлось делать ничего. Но да вот этот загон про System-Wide PulseAudio у меня наоборот ломал звук.

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

В кедах «Приложения/Привязки файлов» в остальных по своему вплоть до того что тупо через консоль… Если надо найдешь.

Четвертая, это сторонние бинарники. Например какой-нибудь проприетарный софт так просто не запустишь

Можно либо патчением elf-а либо fhs chroot.

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

У меня все исправилось после:

Сейчас проверю.

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

В кедах «Приложения/Привязки файлов» в остальных по своему вплоть до того что тупо через консоль… Если надо найдешь.

С привязками все в порядке, в диалоге ФФ, сохранить-запустить, есть запустить с помощью KTorrent, но лиса его почему-то не может найти, наверное ищет по полному пути, а он в NixOS несколько иной, чем в остальных дистрибутивах...

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

У меня это так не работает. И да решения из того багрепорта я тоже пробовал.

init_6 ★★★★★
()

Если я сижу, допустим, в кедах, и существенно меняю настройки кед, которые доступны в Системных настройках, в единый конфиг NixOS автоматом вносятся изменения? Или для достижения постоянного эффекта от изменения настроек мне вручную нужно будет все вносить?

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

Насколько сложно было тебе, $USER, освоить язык для свободного редактирования конфига? По шкале от 1 до 10.

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

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

Точно не скажу, но Nix lang Тьюринг-полный, и builtins.readFile у него есть.

shatsky ★★
()

Если я сижу, допустим, в кедах, и существенно меняю настройки кед, которые доступны в Системных настройках, в единый конфиг NixOS автоматом вносятся изменения? Или для достижения постоянного эффекта от изменения настроек мне вручную нужно будет все вносить?

Руками.

Насколько сложно было тебе, $USER, освоить язык для свободного редактирования конфига? По шкале от 1 до 10. Я понимаю, что NixOS скорее всего юзают адвансед юзеры и выше, а я вроде пре-адвансед.

Не пришлось осваивать совсем.

Какие типичные проблемы в NixOS по сравнению с традиционными дистрибутивами? О чем заранее подумать до перехода?

  1. Бинарное ПО из коробки (без обертывания) работать в основном не будет.
  2. Некоторое ПО будет сложно собрать самостоятельно.

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

Что-то вроде mkIf (fqdn == "example.com") ― как раз то, что тебе нужно.

Deleted
()

Ахаха хаха, 2, пробуй давай, естественно да.

Поставить быстрее, чем треды рожать.

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

Ну да ты не осилил сразу поставит NM и до этого в глаза не видел wpa_supplicant

А при установке, когда еще нет сети, как поставить network-manager? Я скачал минимальный образ, записал на флеху и загрузился. Открыл мануал на tty8 (Alt+8) и начал настраивать wifi. Делал все правильно, имя интерфейса я запомнил, сеть и пароль записал на бумажке, долго ничего не получалось, так как в одну строку:

wpa_supplicant -B -i wlp4s0 -c <(wpa_passphrase ssid pass)
не отрабатывало, что-то было не так и ругалось на какой недопустимый параметр. В результате сначала создал /etc/wpa_supplicant.conf, а потом уже подключил сеть.

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

Я скачал минимальный образ, записал на флеху и загрузился.

Вот и я о том. А надо было качать полный образ в нем там цельная плазма а главное это кеш пакетов. В результате из интернета качать меньше.

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

Понятно, главное сейчас все в порядке.

anonymous
()

Советую поставить в виртуалбокс, настроить до минимально юзабельного вида и уже потом банально перенести конфиг на железку. Конфиг желательно сразу же в гит засунуть, ибо оно такое, что один раз сделал и забыл, а если проебешь, то будет обидно и больно.

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

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