Como instalar e remover pacotes no NixOS

Como instalar e remover pacotes no NixOS

Pode ser um pouco diferente ao instalar e remover pacotes no NixOS. Aqui, explicamos para facilitar as coisas.

O sistema de empacotamento no NixOS é seu ponto mais forte. O gerenciador de pacotes Nix usa uma sintaxe muito diferente do apt, dnf e outros gerenciadores de pacotes.

É também uma das razões pelas quais se deve tentar usar o NixOS.

Neste guia, compartilharemos duas maneiras de instalar e remover pacotes no NixOS:

  • Usando o gerenciador de pacotes Nix
  • Usando arquivo de configuração configuration.nix

Usando o gerenciador de pacotes Nix, você só pode instalar pacotes, mas não serviços como SSH ou servidor Plex. Para a instalação de serviços, você teria que usar um arquivo de configuração Nix. Para instalar qualquer pacote, é necessário saber seu nome exato, e para isso, vamos começar com como você pode procurar pacotes no NixOS.

Pesquisa de pacotes

Para procurar pacotes, você pode usar sua web search usando seu navegador preferido.

Você pode utilizar sua pesquisa na web usando as etapas:

  1. Digite o nome do pacote na barra de pesquisa
  2. Selecione o pacote apropriado (decida a partir da descrição fornecida)
  3. Clique na opção nix-env
  4. E copie o comando para NixOS (primeiro)

Por exemplo, se quisermos o pacote librewolf, executaremos o seguinte:

Procurando o pacote necessário

Você pode fazer o mesmo através do terminal.

Para pesquisar pacotes usando o terminal, você pode seguir a sintaxe de comando fornecida:

Comandos para usar no terminal

nix-env -qaP --description nome_do_pacote

Por exemplo, aqui, procurei o librewolf:

nixos_1

Você terá que copiar a primeira linha da saída, pois esse é o nome do pacote que você precisa instalar.

Aqui, foi nixos.librewolf.

Sim, pode não parecer tão conveniente quanto os nomes dos pacotes ao usar APT ou DNF. Mas, não é tão ruim também.

Instalando um pacote no NixOS

Para instalar um pacote, tudo o que você precisa fazer é usar a seguinte sintaxe de comando:

Comandos para usar no terminal

nix-env -iA nome_do_pacote

E se você usar a pesquisa na web para procurar o pacote, você já terá o comando exato que você precisa para a instalação.

Então, digamos que eu queira instalar librewolf, então vou usar o seguinte comando:

Comandos para usar no terminal

nix-env -iA nixos.librewolf

E se você quiser executar uma instalação em todo o sistema (disponibilizar este pacote para todos os usuários), execute o comando de instalação com sudo:

Comandos para usar no terminal

sudo nix-env -iA nixos.librewolf

É isso! Você terá seu pacote favorito instalado em pouco tempo.

Desinstalando um pacote no NixOS

Para remover um pacote, você pode consultar a sintaxe de comando fornecida:

Comandos para usar no terminal

nix-env --uninstall nome_do_pacote

Então, se eu tiver que remover o pacote librewolf, eu tenho que usar o seguinte comando:

Comandos para usar no terminal

nix-env --uninstall librewolf

Se você notar de perto, usamos librewolf em vez de nixos.librewolf.

Isso significa que você terá que pular a parte nixos durante a remoção do pacote, o que torna as coisas fáceis e rápidas.

Instalando serviços no NixOS

Como mencionado anteriormente, você não pode usar o gerenciador de pacotes nix para instalar serviços como OpenSSH, servidor Plex, Flatpak, etc.

Desde a busca pelo serviço até o processo de instalação, ele difere do que você viu acima.

Então, vamos começar com como você pode procurar um serviço:

  1. Para procurar o serviço, dirija-se à página web para a pesquisa de pacotes Nix.
  2. Selecione NixOS options (3ª opção na linha superior do menu da página).
  3. Digite o nome do serviço que você está procurando.
  4. Copie o nome do serviço.

Por exemplo, aqui, estamos procurando o serviço OpenSSH:

Procurando um serviço

Depois de ter o nome, abra o arquivo configuration.nix usando o seguinte comando:

Comandos para usar no terminal

sudo nano /etc/nixos/configuration.nix

E adicione o nome do serviço no final da linha (antes de }) da seguinte maneira:

Comandos para usar no terminal

nome_do_serviço = true;

Como queremos ativar o OpenSSH, adicionaremos o seguinte:

services.openssh.enable = true;

nixos_2

Quando terminar de adicionar o serviço ao arquivo de configuração, salve as alterações e saia do editor de texto nano.

Para habilitar o serviço, recrie o arquivo de configuração e alterne para as alterações usando o seguinte comando:

Comandos para usar no terminal

sudo nixos-rebuild switch

É isso! Você tem o serviço habilitado.

Desinstalando serviços do NixOS

Para desinstalar um serviço, tudo o que você precisa fazer é remover ou comentar a linha desse serviço do configuration.nix arquivo.

Então, primeiro, abra o arquivo de configuração usando o seguinte comando:

Comandos para usar no terminal

sudo nano /etc/nixos/configuration.nix

Procure o serviço e remova a linha ou comente-a com #:

nixos_3

Com o comentário adicionado #, estamos ignorando o serviço OpenSSH para carregar, pois não queremos mais no sistema.

Uma vez feito, salve a alteração e saia do editor de texto.

E, finalmente, reconstrua o arquivo de configuração e faça a troca:

Comandos para usar no terminal

sudo nixos-rebuild switch

Instalando pacotes usando o arquivo de configuração Nix

O arquivo de configuração permite que você gerencie facilmente pacotes de uma só vez.

Para instalar um pacote usando o arquivo de configuração Nix, você precisa digitar o nome do pacote no arquivo de configuração, reconstruir e alternar para o arquivo de configuração, e pronto.

Primeiro, abra o arquivo configuration.nix:

Comandos para usar no terminal

sudo nano /etc/nixos/configuration.nix

Se você quiser instalar um pacote para um usuário conectado específico, adicione o nome do pacote ao perfil do usuário.

O perfil do usuário tem esta aparência:

users.users.nome_do_usuario = {
   isNormalUser = true;
   description = "Sagar";
   extraGroups = [ "networkmanager" "wheel" ];
   packages = with pkgs; [
     firefox
   ];
 };

Claro, ele mostrará seu nome de usuário em vez de nome_do_usuario.

E você deve adicionar o nome do pacote usando a sintaxe packages = with pkgs; nome_do_pacote;

Então, vamos supor que queremos instalar o Thunderbird também, então vamos adicionar seu nome como mostrado abaixo:

nixos_4

Você deve adicionar todos os nomes de pacotes dentro do colchete sem vírgulas. Tem que estar em uma nova linha como a captura de tela descreve.

Mas se você quiser instalar este pacote em todo o sistema, então você terá que adicionar o nome do pacote em environment.systemPackages como:

environment.systemPackages = with pkgs; nome_do_pacote

nixos_5

Depois de terminar de adicionar o nome do pacote necessário no perfil do sistema ou perfil de usuário, ou mesmo ambos, você terá que seguir o mesmo comando para concluir a instalação:

Comandos para usar no terminal

sudo nixos-rebuild switch

E pronto!

Removendo pacotes usando o arquivo de configuração Nix

Para remover um pacote, tudo o que você precisa fazer é seguir os passos simples fornecidos:

1.Abra o arquivo de configuração do Nix

  1. Remova ou comente o nome do pacote 3.Reconstrua a configuração e faça a troca

Então vamos começar com o primeiro passo (abrir o arquivo de configuração):

Comandos para usar no terminal

sudo nano /etc/nixos/configuration.nix

Em seguida, comente o nome do pacote do perfil de usuário ou do sistema:

nixos_6

Salve as alterações e saia do arquivo de configuração.

E, finalmente, recompile a configuração e faça a troca para remover o pacote:

Comandos para usar no terminal

sudo nixos-rebuild switch

É isso!

Atualmente, não existem ferramentas GUI oficiais para ajudá-lo com a instalação/remoção de pacotes. Você pode encontrar alguns projetos como nix-gui e nix42b desenvolvidos pela comunidade, mas eles não são mais mantidos ou simplesmente estão em seus estágios iniciais de desenvolvimento.

Última atualização deste artigo: 18 de july de 2023