Назад | Перейти на главную страницу

Воспроизводимые пользователи и пакеты NixOS?

Я новичок в NixOS и пытаюсь изучить его концепции. Одна из причин, по которой мне это нравится, заключается в том, что я надеюсь, что он сможет дать мне воспроизводимую конфигурацию системы, аналогичную использованию Ansible для localhost. Однако я не знаю, как этого добиться.

Я в курсе environment.systemPackages в /etc/nixos/configuration.nix, но это только общесистемные пакеты. Я также знаю, что nix-env может установить пакет для пользователя, но я бы предпочел объявить такой пакет в файле, который я могу проверить в системе контроля версий.

Есть ли какой-то конкретный файл, который я могу настроить (подобно плейбуку), где я мог бы объявить набор пакетов для пользователя? Или хотя бы указать его "пользовательская среда" или "профили" (не уверены, какой термин правильный)?

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

Наконец, означает ли мой вариант использования, что я никогда не должен использовать nix-env устанавливать пакеты?

Я спросил людей на IRC-канале Freenode #nixos, и они привели меня к этому ответу.

Мне нужно создать ~/.nixpkgs/config.nix файл. В этом файле мне нужно создать сбор пакетов используя buildEnv функция и установите его с помощью nix-env.

Установка специальных пакетов с помощью nix-env не обновляется ~/.nixpkgs/config.nix, поэтому в моем случае я бы не хотел этого делать. Хотя стоит отметить, что установка специальных пакетов с использованием nix-env по-прежнему полезен для экспериментов, так как установка коллекции пакетов с помощью --remove-all switch удалит все, чего нет в этой коллекции пакетов.