Nix (package manager)/pt: Difference between revisions
Created page with "Há um esforço contínuo para reimplementar o Nix, do zero, no Rust." Tags: Mobile edit Mobile web edit |
Created page with "Os pacotes criados pelo Nix são colocados no ''armazenamento Nix'' somente leitura, normalmente encontrado em <code>/nix/store</code>. Cada pacote recebe um endereço exclusivo especificado por um hash criptográfico seguido do nome do pacote e da versão, por exemplo <code>/nix/store/nawl092prjblbhvv16kxxbk6j9gkgcqm-git-2.14.1</code>. Esses prefixos fazem o hash de todas as entradas para o processo de compilação, incluindo os arquivos de origem, a árvore de dependê..." |
||
(15 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
NixOS: O Nix está sendo instalado enquanto você instala o NixOS. | NixOS: O Nix está sendo instalado enquanto você instala o NixOS. | ||
Se você pretende utilizar o Nix em uma distribuição Linux diferente ou em um computador Mac, você pode executar uma instalação autônoma: O [https://nixos.org/manual/nix/stable/installation/installation installation section of the Nix manual] descreve a instalação do Nix autônomo a partir do binário ou do código-fonte. | |||
< | <span id="Nix_commands"></span> | ||
=== Nix | === Comandos Nix === | ||
O [[Nix command|Nix commands]] esta documentado em [https://nixos.org/manual/nix/stable/command-ref/command-ref Nix reference manual]: Comandos principais, utilitários e comandos experimentais. Antes da versão 2.0 (lançada em fevereiro de 2018), havia comandos diferentes. | |||
=== Configuração === | |||
=== | No NixOS, o Nix é configurado através do [https://search.nixos.org/options?query=nix. <code>nix</code> option]. | ||
O Nix autônomo é configurado através de <code>nix.conf</code> (geralmente encontrado em <code>/etc/nix/</code>), que define uma série de configurações relacionadas à avaliação, compilações, coleta de lixo, sandbox e permissões de usuário. Detalhes sobre as opções disponíveis estão disponíveis. Detalhes sobre as opções disponíveis são [https://nixos.org/manual/nix/stable/command-ref/conf-file found in the Nix reference manual]. | |||
É possível uma configuração ainda mais completa com [[Home Manager]] para gerenciar ambientes declarativos para um único usuário. Para configuração de todo o sistema no Linux, você pode usar System Manager. Para configuração de todo o sistema no macOS, [nix-darwin nix-darwin] é a solução preferida. | |||
< | <span id="Internals"></span> | ||
== | == Internos == | ||
=== Nix store === | === Nix store === | ||
Os pacotes criados pelo Nix são colocados no ''armazenamento Nix'' somente leitura, normalmente encontrado em <code>/nix/store</code>. Cada pacote recebe um endereço exclusivo especificado por um hash criptográfico seguido do nome do pacote e da versão, por exemplo <code>/nix/store/nawl092prjblbhvv16kxxbk6j9gkgcqm-git-2.14.1</code>. Esses prefixos fazem o hash de todas as entradas para o processo de compilação, incluindo os arquivos de origem, a árvore de dependências completa, sinalizadores do compilador, etc. Isso permite que o Nix instale simultaneamente diferentes versões do mesmo pacote e até mesmo diferentes compilações da mesma versão, por exemplo, variantes compiladas com compiladores diferentes. Ao adicionar, remover ou atualizar um pacote, nada é removido do repositório; em vez disso, links simbólicos para esses pacotes são adicionados, removidos ou alterados em "profiles". | |||
< | <span id="Profiles"></span> | ||
=== | === Perfis === | ||
Para construir um ambiente de usuário ou sistema coerente, o Nix cria links simbólicos para entradas do repositório Nix em "perfis". Estes são o front-end pelo qual o Nix permite reversões: como o repositório é imutável e as versões anteriores dos perfis são mantidas, reverter para um estado anterior é simplesmente uma questão de alterar o link simbólico para um perfil anterior. Para ser mais preciso, o Nix cria links simbólicos para binários em entradas do repositório Nix que representam os ambientes do usuário. Esses ambientes do usuário são então criados por links simbólicos para perfis rotulados armazenados em <code>/nix/var/nix/profiles</code> que por sua vez são vinculados simbolicamente ao usuário <code>~/.nix-profile</code>. | |||
=== Sandboxing === | === Sandboxing === | ||
Quando as compilações em sandbox estão habilitadas, o Nix configura um ambiente isolado para cada processo de compilação. Ele é usado para remover outras dependências ocultas definidas pelo ambiente de compilação para melhorar a reprodutibilidade. Isso inclui acesso à rede durante a compilação fora das funções <code>fetch*</code> e arquivos fora do repositório Nix. Dependendo do sistema operacional, o acesso a outros recursos também é bloqueado (por exemplo, a comunicação entre processos é isolada no Linux); veja no manual do Nix para detalhes [https://nixos.org/nix/manual/#sec-conf-file nix.conf section]. | |||
O sandboxing é habilitado por padrão no Linux e desabilitado por padrão no macOS. | |||
Em pull requests para [NixOS/nixpkgs/ Nixpkgs] as pessoas são solicitadas a testar compilações com sandbox habilitado (consulte <code>Testado usando sandbox</code> no modelo de solicitação de pull) porque em [https://nixos.org/hydra/ official Hydra builds]sandboxing é usado também. | |||
Para configurar o Nix para sandbox, defina <code>sandbox = true</code> em <code>/etc/nix/nix.conf</code>; para configurar o NixOS para sandbox defina <code>nix.useSandbox = true;</code> em <code>configuration.nix</code>. O <code>nix.useSandbox</code> option is <code>true</code> por padrão desde NixOS 17.09. | |||
< | <span id="Alternative_Interpreters"></span> | ||
=== | === Intérpretes Alternativos === | ||
Há um esforço contínuo para reimplementar o Nix, do zero, no Rust. | Há um esforço contínuo para reimplementar o Nix, do zero, no Rust. |