
Antes de publicar este artículo, expliqué cómo instalar y eliminar paquetes en NixOS para un sistema de un solo usuario.
Pero si ejecuta múltiples usuarios, hay una buena manera de satisfacer las necesidades de cada usuario por separado.
En esta guía, le mostraré cómo configurar Home Manager en NixOS y usarlo para instalar paquetes.
Si es nuevo aquí, algunos de los recursos discutidos en esta serie incluyen:
Configuración de Home Manager en NixOS
En esta guía, le mostraré dos formas de configurar Family Manager:
- Family Manager independiente (usa archivos de configuración separados)
- como un módulo nix (que usa internamente
configuration.nix
documento)
Entonces, comencemos con la opción independiente.
Instalación independiente de home-manager
Si está utilizando una versión estable de NixOS, puede configurar el administrador de inicio con el siguiente comando:
nix-channel --add home-manager
Al momento de escribir esta guía, la versión estable es 22.11
.
y Si usa un canal inestableusando lo siguiente:
nix-channel --add home-manager
Los siguientes pasos seguirán siendo los mismos ya sea que esté utilizando una versión estable o inestable.
Una vez hecho esto, actualice el canal:
nix-channel --update
Finalmente, instala Home Manager con el siguiente comando:
nix-shell '' -A install
🛠️ Durante la instalación, puede aparecer el siguiente error:
Reinicie su sistema y use el comando de instalación nuevamente y comenzará la instalación.
Una vez completado, mostrará la ubicación de la instalación independiente de Home Manager:

Instale home-manager como un módulo de NixOS
⚠️
Si elige usar HomeManager como un módulo de NixOS, necesitará privilegios de sudo.
Si es un canal estable (22.11 al momento de escribir), puede usar el siguiente comando para agregar el canal estable de homemanager:
sudo nix-channel --add home-manager
y Si está utilizando un canal inestable o maestrousando lo siguiente:
sudo nix-channel --add home-manager
Cuando haya terminado de agregar canales usando cualquiera de los comandos que se muestran arriba, actualice el canal con:
sudo nix-channel --update
A continuación, abre configuration.nix
uso del archivo:
sudo nano /etc/nixos/configuration.nix
y agregue la siguiente línea dentro imports []
:

Ahora, vaya al final de la línea y agregue lo siguiente antes }
:
home-manager.users.{username} = { pkgs, ... }: {
home.packages = [ ];
};

Las líneas anteriores se agregaron para facilitar la instalación y eliminación de paquetes, que le mostraré a continuación.
Ahora, guarde sus cambios y salga del editor de texto nano.
A continuación, reconstruya la configuración y cambie:
sudo nixos-rebuild switch
Pero si está usando una versión estable y usa el comando anterior, arrojará un error:
🛠️ Error: opción ‘home-manager.users.user.home.stateVersion’ utilizada pero no definida:

Para solucionar esto, debe agregar home.stateVersion
en su área de administrador de inicio.
Al momento de escribir, estoy ejecutando 22.11, por lo que todo el bloque del administrador de inicio se verá así:
home-manager.users.{username} = { pkgs, ... }: {
home.stateVersion = "22.11";
home.packages = [ ];
};

Guarde los cambios y salga del editor de texto nano presionando Ctrl + O
haga clic para entrar y Ctrl + X
.
Ahora, intente reconstruir la configuración y cambie nuevamente, eso debería solucionar el problema.
Cómo usar el paquete home-manager en NixOS
Ahora que tiene instalado Home-Manager, cómo usarlo para instalar paquetes:
Usando una instalación independiente de Home-manager
Primero, abra el archivo de configuración con el siguiente comando:
nano /home/$USER/.config/nixpkgs/home.nix
Salta al final de la línea y agrega el siguiente bloque de código al frente }
:
home.packages = [];
Ahora todo lo que tienes que hacer es escribir el nombre del paquete entre estas dos llaves.
Por ejemplo, si quiero instalar ultimo pisotendría que ingresar lo siguiente:
home.packages = [pkgs.htop];
Sí, generalmente tiene que agregar el nombre del paquete con pkgs.
Pero si quieres deshacerte del uso pkgs.
Usado cada vez que se instala un nuevo paquete, cambie la sintaxis del bloque de código de la siguiente manera:
home.packages = with pkgs; [];
Ahora ya no necesitas usar pkgs.
Para cada instalación:
home.packages = with pkgs; [htop];
Por ejemplo, aquí, quiero instalar htop, firefox y LibreOffice Entonces mi bloque de inicio se ve así:

Una vez que haya terminado de agregar sus paquetes favoritos, guarde el archivo de configuración e instale los paquetes con:
home-manager switch
Uso de módulos de NixOS
Primero, abre configuration.nix
Cree el archivo con el siguiente comando:
sudo nano /etc/nixos/configuration.nix
En la sección de configuración, he agregado el bloque del administrador de inicio, por lo que todo lo que queda es agregar el nombre del paquete dentro home.packages = [ ];
En el formato que se muestra:
home.packages = [ pkgs.package_name ];
💡
Ya mencioné cómo puedes deshacerte de usar pkgs.
antes del nombre del paquete en la sección anterior (para instalar el paquete en un administrador doméstico independiente).
Por ejemplo, si quisiera instalar htop, Firefox y LibreOffice, agregaría:
pkgs.htop pkgs.firefox pkgs.libreoffice
Mi bloque de administrador de inicio se ve así:

Ahora, guarde los cambios y salga del editor de texto.
A continuación, reconstruya la configuración y cambie con el siguiente comando:
sudo nixos-rebuild switch
¡Eso es todo! Estos paquetes se instalarán inmediatamente.
se acabó
Creo que debería usar una instalación independiente ya que no necesita usar privilegios de superusuario. Además, si ejecuta un sistema con múltiples usuarios, es muy conveniente tener archivos de configuración separados para diferentes usuarios.
Entonces, a menos que desee un archivo para todos los propósitos, no veo otra razón para usar la opción de módulo.
Esto concluye mi serie de principiantes de NixOS. Espero que le proporcione una plataforma lo suficientemente buena para familiarizarse con esta distribución única de Linux.
💬 ¿Qué opinas de la serie NixOS? ¿Hay algo más que debamos cubrir para los principiantes de NixOS? Por favor proporcione su valiosa opinión.