
Soy nuevo enNixOSy tratando de aprender sus conceptos. Una de las razones por las que estoy entusiasmado es que espero que pueda brindarme una configuración de sistema reproducible, similar a usarAnsible para localhost. Sin embargo, no estoy seguro de cómo lograrlo.
Estoy consciente deenvironment.systemPackages
en/etc/nixos/configuration.nix
, pero estos son sólo paquetes para todo el sistema. También sé que elnix-env
El comando puede instalar un paquete para un usuario, pero prefiero declarar dicho paquete en un archivo que pueda registrar en el control de código fuente.
¿Existe algún archivo en particular que pueda configurar (similar a un libro de estrategias) donde pueda declarar un conjunto de paquetes para un usuario? O al menos especificar su"entorno de usuario"o"perfiles"(¿No estás seguro de qué término es correcto)?
Lo ideal sería tomar algunos archivos, copiarlos a otra computadora, ejecutar un comando y estar en el mismo estado que la computadora anterior, incluidos varios usuarios con diferentes conjuntos de paquetes.
Finalmente, ¿mi caso de uso significa que nunca debería usarnix-env
para instalar paquetes?
Respuesta1
Entonces le pregunté a la gente del canal IRC de Freenode #nixos y me llevaron a esta respuesta.
necesito crear un~/.nixpkgs/config.nix
archivo. En ese archivo, necesito crear uncolección de paquetesutilizando elfunción buildEnve instalarlo con nix-env
.
Instalación de paquetes ad-hoc usandonix-env
no se actualiza ~/.nixpkgs/config.nix
, por lo que para mi caso de uso me gustaría evitar hacerlo. Sin embargo, vale la pena señalar que instalar paquetes ad-hoc usando nix-env
sigue siendo útil para experimentar, ya que instalar la colección de paquetes usando el --remove-all
modificador eliminaría todo lo que no esté en esa colección de paquetes.