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:
- Razões para usar nixOS
- Instalando o NixOS em uma máquina virtual
- Coisas para fazer depois de instalar o NixOS
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:
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:
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:
nix-channel --update
E, finalmente, use o seguinte comando para instalar o gerenciador de casa:
nix-shell '
Durante a instalação, ele pode lançar o seguinte erro:
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:
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:
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:
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:
sudo nix-channel --update
Em seguida, abra o arquivo configuration.nix
usando:
sudo nano /etc/nixos/configuration.nix
E adicione a seguinte linha dentro do imports []
:
Agora, pule para o final da linha e adicione o seguinte antes de }
:
home-manager.users.{username} = { pkgs, ... }: {
home.packages = [ ];
};
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:
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
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 = [ ];
};
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:
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:
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:
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:
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:
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