Nix - o gerenciador de pacotes puramente funcionais para Linux

Nix - o gerenciador de pacotes puramente funcionais para Linux

Nix é um sistema de gerenciamento de pacotes poderoso e puramente funcional, projetado para gerenciamento de pacotes confiável e reproduzível, lançado nos termos do GNU LGPLV2.1. É o sistema de gerenciamento de pacotes primário em Nixos, uma distribuição Linux menos conhecida.

O NIX oferece atualizações e reversões atômicas, várias versões de instalação de pacotes, gerenciamento de pacotes de vários usuários e configuração sem esforço de ambientes de construção para um pacote, independentemente de quais linguagens e ferramentas de programação um desenvolvedor está usando.

Sob Nix, Os pacotes são construídos a partir de uma linguagem de pacote funcional chamada “Expressões de nix”. Essa abordagem funcional para gerenciamento de pacotes garante que a instalação ou a atualização de um pacote não possa quebrar outros pacotes.

O NIX também possui suporte para vários usuários, o que implica que os usuários normais (ou não privilegiados) do sistema podem instalar pacotes com segurança e cada usuário é identificado por um perfil (uma coleção de pacotes na loja Nix que aparece no caminho do usuário).

Caso um usuário tenha instalado um pacote, se outro usuário tentar instalar o mesmo pacote, o pacote não será construído ou baixado pela segunda vez.

Atualmente, suporta Linux (i686, x86_64) e Mac OS X (x86_64). No entanto, é bastante portátil, você pode experimentá -lo na maioria das plataformas que suportam threads POSIX e têm um compilador C ++ 11.

Neste artigo, mostraremos como instalar (no modo multi -usuário) e usar Nix Gerenciador de pacotes no Linux. Discutiremos algumas das tarefas básicas de gerenciamento de pacotes em relação às ferramentas comumente usadas.

Como instalar o Nix Package Manager no Linux

Vamos instalar a versão mais recente de Nix (v2.1.3 no momento da redação) no modo de usuário múltiplo. Felizmente, existe um script de instalação preparado pronto que você pode executar do seu shell como um usuário normal usando o seguinte comando curl no seu sistema.

$ sh <(curl https://nixos.org/nix/install) --daemon 

Executa o comando acima baixará o mais recente Tarball binário Nix e você pousará na tela de instalação do Nix Multiususer, como mostrado na captura de tela.

Instale o Nix Package Manager no Linux

Para visualizar uma lista detalhada do que acontecerá durante o processo de instalação, digite y e pressione Digitar. Se você estiver satisfeito e pronto para continuar, digite y e pressione Digitar.

Resumo da instalação do nix

O script invocará o comando sudo muitas vezes conforme necessário. Você precisa permitir que ele use sudo respondendo y e batendo Digitar.

A instalação do nix continua

O instalador executará alguns testes e gerará um relatório de configuração nix, criar usuários de construção entre os IDs de usuário 30001 e 30032, e um grupo com o ID do grupo 30000. Digitar y para continuar quando solicitado. Ele configurará os grupos de construção para os diferentes usuários de construção, fará a estrutura básica do diretório do nix.

Ele modificará o arquivo /etc/Bashrc, (e /etc/zshrc para o Zsh) se eles existirem. Observe que ele primeiro backup dos arquivos mencionados com um .Backup-se antes-Nix extensão e o instalador também cria o arquivo /etc/perfil.d/nix.sh.

O instalador também configurará o serviço Nix-Daemon e o serviço de soquete Nix-Daemon, carrega a unidade Systemd para Nix-Daemon e inicia os dois serviços acima mencionados.

Depois que a instalação estiver concluída, você precisa abrir uma nova janela do terminal para começar a usar o nix. Como alternativa, feche e reabra sua concha para aplicar as mudanças recentes. Em seguida, obtenha o arquivo /etc/perfil.d/nix.sh (Porque não é um arquivo de inicialização do shell, abrir um novo shell não o obtém).

$ fonte /etc /perfil.d/nix.sh 

Em seguida, execute o seguinte comando para baixar alguns caminhos do site oficial do projeto, necessário para Nix para operar. Depois que todos os caminhos são baixados e copiados para os locais corretos, você verá um resumo do tipo de instalação do sistema e Nix, como mostrado na captura de tela.

$ nix-shell -p nix-info-"nix-info -m" 
Resumo da instalação e sistema nix

Como usar o Nix Package Manager no Linux

Sob Nix, O gerenciamento de pacotes é feito pelo nix-env Utilitário. É usado para instalar, atualizar e remover/apagar pacotes e para consultar quais pacotes estão instalados ou estão disponíveis para instalação.

Todos os pacotes estão localizados em um canal nix, que é um URL que aponta para um repositório compreendendo uma coleção de expressões NIX e um ponteiro para um cache binário.

O canal padrão é Nixpkgs e a lista de canais assinados é armazenada em ~/.canais nix, Você pode listá -los usando o seguinte comando (sem saída significa sem canais).

$ nix-channel-Lista 

Para adicionar o canal nix, use o seguinte comando.

$ nix-channel --dd https: // nixos.org/canais/nixpkgs-instantáveis 

Antes de instalar quaisquer pacotes, comece atualizando o canal nix; Isso é semelhante a correr Atualização APT sob o gerente de pacote APT.

$ nix-channel-Atualmente 
Atualize o canal nix

Você pode consultar quais pacotes estão disponíveis para instalação usando o seguinte comando.

$ nix -env -qa 
Pacotes de consulta disponíveis para instalação

Neste exemplo, instalaremos o servidor Apache Tomcat usando o comando anterior em conjunto com o Grep para encontrar o pacote está disponível para instalação, conforme mostrado.

$ nix -env -qa | Grep "Apache-Tomcat" 
Encontre um pacote para instalação

Para instalar um pacote, use o seguinte comando especificando a versão do pacote, por exemplo Apache-Tomcat-9.0.2.

$ nix-env -i apache-tomcat-9.0.2 
Instale um pacote usando Nix

No sistema local, Nix armazena pacotes no Nix Store, que é por padrão o /nix/loja diretório, onde cada pacote tem seu próprio subdiretório exclusivo. Por exemplo, o Apache-Tomcat Os pacotes são armazenados em:

/nix/store/95gmgnxlrcpkhlm00fa5ax8kvd6189py-apache-tomcat-9.0.2 

Neste caminho, os personagens aleatórios 95GMGNXLRCPKHLM00FA5AX8KVD6189PY é um identificador único para o pacote que leva em conta todas as suas dependências.

Você pode listar pacotes instalados com o seguinte comando.

$ nix -env -q 
Lista de pacotes instalados

Para atualizar o Apache-Tomcat pacote, você pode usar o -você Switch de atualização como mostrado.

$ nix-env -u apache-tomcat 

Se você quiser remover/apagar Apache-Tomcat, use o -e bandeira. Aqui, um pacote não é apagado imediatamente do sistema, ele só é tornado não utilizado. Isso é útil porque você deseja fazer uma reversão ou pode estar nos perfis de outros usuários.

$ nix-env -e apache-tomcat 

Depois de remover um pacote, você pode fazer alguma coleção de lixo com o Nix-collect-Garbage Utilitário.

$ nix-collect-Garbage 

Como remover o Nix Package Manager no Linux

Para desinstalar o nix, remova todos os arquivos relacionados ao nix de uma só vez.

$ sudo rm -rf/etc/perfil/nix.sh /etc /nix /nix ~ raiz /.nix-perfil ~ raiz/.nix-Defexpr ~ raiz/.canais nix ~//.nix-perfil ~/.nix-Defexpr ~/.canais nix 

Em sistemas com Systemd, execute os seguintes comandos para interromper os serviços todos relacionados ao NIX e desativá -los.

$ sudo systemctl pare nix-daemon.SOCKET $ sudo systemctl pare nix-daemon.Serviço $ sudo systemctl desative nix-daemon.SOCKET $ sudo systemctl desative nix-daemon.Serviço $ sudo systemctl Daemon-Reload 

Além disso, você precisa remover quaisquer referências ao NIX nesses arquivos: /etc/perfil, /etc/Bashrc, e /etc/zshrc.

Para mais informações, consulte as páginas do homem dos utilitários acima que analisamos.

$ man nix-channel $ man nix-env 

Você pode encontrar a documentação do Nix Package Manager no site do projeto: https: // nixos.org/nix/.

Resumo

Nix é um gerenciador de pacotes puramente funcionais projetado para gerenciamento de pacotes confiáveis ​​e reproduzíveis. Ele fornece um conceito interessante de gerenciamento de pacotes, muito distinto de ferramentas comumente usadas em Linux, como Yum, Apt e muitos outros.

Neste artigo, mostramos como instalar o nix no modo multi -usuário e discutimos como fazer gerenciamento de pacotes com nix. Compartilhe seus pensamentos conosco ou faça qualquer pergunta através do formulário de comentário abaixo. Por fim, em um próximo artigo, explicaremos mais comandos de gerenciamento de pacotes nix. Até então, fique conectado.