NixOS usuários e pacotes reproduzíveis?

3

Sou novo no NixOS e estou tentando aprender seus conceitos. Uma das razões pelas quais estou entusiasmado com isso é que espero que possa me fornecer uma configuração de sistema reproduzível, semelhante a usar Ansible para localhost . No entanto, não tenho certeza de como conseguir isso.

Estou ciente de environment.systemPackages in /etc/nixos/configuration.nix , mas eles são sistemáticos somente pacotes largos. Eu também sei que o comando nix-env pode instalar um pacote para um usuário, mas eu em vez disso, declare esse pacote em um arquivo que eu possa verificar no controle de origem.

Existe algum arquivo específico que eu possa configurar (semelhante a um playbook) onde eu possa declarar um conjunto de pacotes para um usuário? Ou, pelo menos, especifique seu "ambiente do usuário" ou " profiles " (não sabe qual termo está correto)?

Idealmente, eu poderia pegar alguns arquivos, copiá-los para outro computador, executar um comando e estar no mesmo estado do computador antigo, incluindo vários usuários com diferentes conjuntos de pacotes.

Por fim, meu caso de uso significa que eu nunca devo usar nix-env para instalar pacotes ?

    
por arussell84 23.08.2015 / 09:32

1 resposta

3

Então eu perguntei para as pessoas no canal de IRC #nixos da Freenode, e elas me levaram a essa resposta.

Eu preciso criar um arquivo ~/.nixpkgs/config.nix . Nesse arquivo, preciso criar uma coleção de pacotes usando o função buildEnv e instale-o com nix-env .

A instalação de pacotes ad-hoc usando nix-env não atualiza ~/.nixpkgs/config.nix , portanto, para meu caso de uso eu gostaria de evitar fazer isso. No entanto, vale a pena observar que a instalação de pacotes ad-hoc usando nix-env ainda é útil para experimentação, pois a instalação da coleção de pacotes usando a opção --remove-all removeria tudo que não estivesse na coleção de pacotes.

    
por 24.08.2015 / 06:03