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

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

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

Я знаю о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, поэтому для моего варианта использования я бы хотел избежать этого. Хотя стоит отметить, что установка пакетов ad-hoc с помощью nix-envвсе еще полезна для экспериментов, поскольку установка коллекции пакетов с помощью --remove-allswitch удалит все, что не входит в эту коллекцию пакетов.

Связанный контент