Como configurar o home-manager no NixOS

Como configurar o home-manager no NixOS

Veja como você pode facilmente configurar o home-manager para instalar/remover pacotes no NixOS.

Antes de publicar isso, explicamos como instalar e remover pacotes no NixOS para um sistema de usuário único.

Mas se você estiver executando vários usuários, há uma excelente maneira de atender às necessidades de cada usuário separadamente.

E neste guia, vou orientá-lo sobre como você pode configurar um gerenciador doméstico no NixOS e como ele pode ser usado para instalar pacotes.

Se você é novo aqui, alguns recursos discutidos incluem:

Configurando o home-manager no NixOS

Neste guia, vou orientá-lo através de 2 maneiras de configurar um gerente doméstico:

  • Gerenciador da homez autônomo (usa arquivo de configuração separado)
  • Como um módulo nix (usando-o dentro configuration.nix arquivo)

Então, vamos começar com a opção autônoma.

Instalação autônoma do home-manager

Se você estiver usando um canal estável do NixOS, você pode usar o seguinte comando para configurar o gerenciador inicial:

Comandos para usar no terminal

nix-channel --add https://github.com/nix-community/home-manager/archive/release-23.05.tar.gz home-manager

Ao escrever este guia, a versão estável é 23.05.

E se você estiver em um canal instável, use o seguinte:

Comandos para usar no terminal

nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager

As etapas a seguir permanecerão as mesmas, independentemente de você usar estável ou instável.

Feito isso, atualize os canais:

Comandos para usar no terminal

nix-channel --update

E, finalmente, use o seguinte comando para instalar o gerenciador de casa:

Comandos para usar no terminal

nix-shell '' -A install

Durante a instalação, ele pode lançar o seguinte erro:

nixos_1

Reinicie o sistema e use o comando de instalação novamente, e ele iniciará a instalação.

Uma vez feito, ele mostrará o local da instalação autônoma do gerenciador de casa:

nixos_2

Instalando o home-manager como um módulo NixOS

Você precisará de privilégios sudo se optar por usar o gerenciador doméstico como um módulo NixOS. Se você estiver em um canal estável (neste tutorial, é 23.05), você pode usar o seguinte comando para adicionar o canal estável do home manager:

Comandos para usar no terminal

sudo nix-channel --add https://github.com/nix-community/home-manager/archive/release-23.05.tar.gz home-manager

E se você estiver usando unstable ou o canal mestre, use o seguinte:

Comandos para usar no terminal

sudo nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager

Quando terminar de adicionar um canal usando qualquer um dos comandos mostrados acima, atualize o canal usando o seguinte:

Comandos para usar no terminal

sudo nix-channel --update

Em seguida, abra o arquivo configuration.nix usando:

Comandos para usar no terminal

sudo nano /etc/nixos/configuration.nix

E adicione a seguinte linha dentro do imports []:

Comandos para usar no terminal

nixos_3

Agora, pule para o final da linha e adicione o seguinte antes de }:

home-manager.users.{username} = { pkgs, ... }: {
 home.packages = [  ];
 };

nixos_4

A linha acima foi adicionada para facilitar a instalação e remoção de pacotes que mostrarei a seguir.

Agora, salvar alterações e sair do editor de texto nano.

Em seguida, recompile a configuração e faça uma alternância:

Comandos para usar no terminal

sudo nixos-rebuild switch

Mas se você estiver usando a versão estável e usar o comando acima, ele lançará o erro dizendo:

error: The option 'home-manager.users.livreeaberto.home.stateVersion' is used but not defined

nixos_5

Para resolver este problema, você terá que adicionar o home.stateVersion em seu bloco de gerenciamento de casa.

Enquanto escrevo, estou executando 23.05, então todo o bloco de gerenciamento da home ficaria assim:

home-manager.users.{username} = { pkgs, ... }: {
home.stateVersion = "22.11";  
home.packages = [ ];
 };

nixos_6

Salve as alterações e saia do editor de texto nano pressionando Ctrl + O, pressionando enter e Ctrl + X.

Agora, tente reconstruir a configuração e fazer a troca novamente, e isso deve resolver o problema.

Como instalar pacotes usando home-manager no NixOS

Agora que você tem o home-manager instalado, como instalar pacotes com ele:

Usando uma instalação autônoma do Home-manager

Primeiro, abra o arquivo de configuração usando o seguinte:

Comandos para usar no terminal

nano /home/$USER/.config/nixpkgs/home.nix

Pule para o final da linha e adicione o seguinte bloco de código antes de }:

home.packages = [];

Agora, tudo o que você precisa fazer é escrever o nome do pacote entre essas duas chaves.

Por exemplo, se eu quiser instalar htop, terei que digitar o seguinte:

home.packages = [pkgs.htop];

Sim, você terá que geralmente anexar o nome do pacote com pkgs.

Mas se você quiser se safar usando pkgs. usando toda vez que instalar um novo pacote, altere a sintaxe do bloco de código conforme mostrado:

home.packages = with pkgs; [];

E agora, você não é mais obrigado a usar pkgs. para cada instalação:

home.packages = with pkgs; [htop];

Por exemplo, aqui, eu queria instalar htop, firefox e LibreOfficepara que meu bloco inicial ficasse assim:

nixos_7

Instalando vários pacotes usando home-manager (Clique para ampliar a imagem)Quando terminar de adicionar seus pacotes favoritos, salve o arquivo de configuração e use o seguinte comando para instalar pacotes:

home-manager switch

Usando o módulo NixOS

Primeiro, abra o arquivo configuration.nix usando o seguinte comando:

Comandos para usar no terminal

sudo nano /etc/nixos/configuration.nix

Na parte de configuração, já adicionamos o bloco home manager, então tudo o que resta é adicionar o nome do pacote dentro home.packages = [ ]; no formato mostrado:

home.packages = [ pkgs.package_name ];

Mencionamos como você pode se safar usando pkgs. antes do nome do pacote na seção acima (instalando pacotes no gerenciador doméstico autônomo). Por exemplo, se quiser instalar o htop, Firefox e LibreOffice, então adicionamos:

pkgs.htop pkgs.firefox pkgs.libreoffice

E nosso bloco de gerenciamento de casa ficaria assim:

nixos_8

Agora, salve as alterações e saia do editor de texto.

Em seguida, recrie a configuração e faça uma troca usando o seguinte comando:

Comandos para usar no terminal

sudo nixos-rebuild switch

É isso! Os pacotes serão instalados em pouco tempo.

Talvez você deva ir com a instalação autônoma, como você não é obrigado a usar os privilégios de superusuário. Além disso, ter arquivos de configuração separados para usuários separados é bastante conveniente se você executar um sistema com vários usuários.

Então, a menos que você queira um arquivo para cada finalidade, não há outra razão para usar a opção de módulo.

Esperamos que você tenha uma plataforma boa o suficiente para se familiarizar com esta distribuição Linux única.

Via itsfoss.com. Você pode conferir o post original em inglês:

NixOS Series #5: How to set up home-manager on NixOS?

Última atualização deste artigo: 15 de august de 2023