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

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

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

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

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

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

1 ответ

Решение

Поэтому я спросил ребят на IRC-канале Freenode #nixos, и они привели меня к этому ответу.

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

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

Другие вопросы по тегам