
eu sou novoNixOSe tentando aprender seus conceitos. Uma das razões pelas quais estou entusiasmado com isso é que espero que ele seja capaz de me fornecer uma configuração de sistema reproduzível, semelhante ao usoAnsible para localhost. No entanto, não tenho certeza de como conseguir isso.
Estou cienteenvironment.systemPackages
em/etc/nixos/configuration.nix
, mas estes são apenas pacotes para todo o sistema. Eu também sei que onix-env
O comando pode instalar um pacote para um usuário, mas prefiro declarar esse pacote em um arquivo que possa verificar no controle de origem.
Existe um arquivo específico que eu possa configurar (semelhante a um manual) onde eu possa declarar um conjunto de pacotes para um usuário? Ou pelo menos especifique seu"ambiente do usuário"ou"perfis"(não tenho certeza de qual termo está correto)?
Idealmente, eu poderia pegar alguns arquivos, copiá-los para outro computador, executar um comando e ele estaria no mesmo estado do computador antigo, incluindo vários usuários com diferentes conjuntos de pacotes.
Finalmente, meu caso de uso significa que eu nunca deveria usarnix-env
instalar pacotes?
Responder1
Então perguntei ao pessoal do canal de IRC Freenode #nixos e eles me levaram a esta resposta.
Eu preciso criar um~/.nixpkgs/config.nix
arquivo. Nesse arquivo, preciso criar umcoleção de pacotesusando oFunção buildEnve instale-o com nix-env
.
Instalando pacotes ad-hoc usandonix-env
não atualiza ~/.nixpkgs/config.nix
, portanto, para meu caso de uso, gostaria de evitar fazer isso. Embora seja importante notar que a instalação de pacotes ad-hoc usando nix-env
ainda é útil para experimentação, uma vez que a instalação da coleção de pacotes usando o --remove-all
switch removeria tudo que não estivesse nessa coleção de pacotes.