12 pontos por GN⁺ 2026-03-23 | 6 comentários | Compartilhar no WhatsApp
  • O NixOS, baseado no gerenciador de pacotes Nix, tem uma estrutura em que todo o sistema é definido como código e pode ser restaurado a qualquer momento para um estado determinístico e reproduzível
  • Todos os ajustes e pacotes são gerenciados em um único arquivo de configuração declarativa, permitindo reconstruir o mesmo ambiente a partir de uma única fonte até mesmo em um equipamento novo
  • Oferece lançamentos estáveis em ciclos de 6 meses, atualizações automáticas e, quando necessário, a possibilidade de experimentar software mais recente pelo canal unstable
  • Fornece ambientes de desenvolvimento isolados, permitindo testar várias linguagens e ferramentas sem contaminar o sistema, além de manter uma experiência de desenvolvimento consistente entre macOS e Linux
  • Também se adapta à rápida troca de ferramentas na era da programação com LLMs e garante consistência até na implantação com um modelo de build determinístico e em camadas que o Docker

Filosofia e atrativos do NixOS

  • O núcleo do NixOS não é a distribuição Linux, e sim o gerenciador de pacotes Nix
    • O NixOS é o resultado de um gerenciador de pacotes funcional, determinístico e reproduzível, capaz de compor todo o sistema operacional a partir da Nix DSL fornecida como entrada
    • Ele oferece uma estrutura em que é possível reconstruir o sistema, alterar apenas partes dele e, se não gostar do resultado, fazer rollback
  • Enquanto a maioria dos sistemas operacionais tende a ficar instável com o tempo, o NixOS permite definir o estado e fazer o build dele
    • Evita o acúmulo de estados pouco claros causados por instalação de pacotes, mudanças de configuração e adição ou remoção de ferramentas
    • Como o sistema é definido em código, é possível reproduzir o mesmo resultado sempre que necessário

Configuração declarativa e gerenciamento a partir de uma única fonte

  • No NixOS, é possível definir todo o sistema — pacotes, configurações, mapeamento de teclado etc. — em uma única configuração declarativa
    • Até comportamentos detalhados, como ajustes de extensões do GNOME e mapeamentos de teclado, podem ser descritos em Nix DSL
    • Mesmo em um computador novo, é possível reconstruir o sistema inteiro a partir de uma única fonte
  • Sem depender de ajustes manuais ou de scripts espalhados, é possível manter um estado de sistema consistente

Estabilidade e gerenciamento de atualizações

  • O NixOS mantém lançamentos previsíveis em ciclos de 6 meses e oferece suporte a atualizações automáticas
    • Minimiza problemas comuns em upgrades de SO, como instabilidade, notificações incômodas e drift do sistema
    • Quando necessário, é possível ativar o canal unstable para usar software mais recente de forma experimental
  • Mesmo em um notebook HP, a compatibilidade de hardware e a estabilidade são altas, permitindo uso imediato sem configuração adicional

Experimentação e isolamento do ambiente de desenvolvimento

  • O NixOS oferece um ambiente de experimentação seguro e de baixo custo
    • Em vez de instalar pacotes diretamente no sistema, eles podem ser executados em um ambiente shell isolado
    • Com a Nix DSL, dependências, etapas de build e artefatos podem ser definidos declarativamente, mantendo um ambiente de desenvolvimento sem contaminação
  • Como o mesmo gerenciador de pacotes Nix pode ser usado tanto no macOS quanto no Linux, garante-se consistência no gerenciamento de ferramentas de desenvolvimento e dependências
    • Também existe suporte comunitário para FreeBSD

Afinidade com a era da programação com LLMs

  • Ferramentas de programação baseadas em LLMs frequentemente exigem a troca de versões específicas de utilitários, compiladores e runtimes
    • O Nix atende bem a essa necessidade ao tratar ferramentas como entradas declarativas e executá-las em ambientes isolados
    • Por exemplo, ao fazer o build de um agente de voz para texto em Rust, o Nix carrega automaticamente o toolchain Rust e monta um ambiente de build isolado
    • Sem alterar o ambiente do sistema (~/.cargo, ~/.rustup, PATH etc.)
  • Com flake.nix e nix flake check, é possível fixar o ambiente experimental do agente como um artefato reproduzível
    • Convertendo uma sessão temporária em uma unidade de build verificável

Implantação e modelo de desenvolvimento consistente

  • O Nix oferece um método de build de imagens mais determinístico e em camadas do que o Docker
    • Com dockerTools.buildLayeredImage, é possível criar imagens Docker pequenas e reproduzíveis
    • Com a mesma configuração, também é possível gerar o mesmo resultado em outras arquiteturas
  • O mesmo modelo é aplicado de forma consistente a notebooks, shells, dependências de projeto, pipelines de CI e artefatos de implantação
    • Em vez de combinar várias ferramentas, é possível gerenciar todo o sistema de software com uma única forma de pensar

Conclusão

  • O NixOS é a implementação de um sistema declarativo, reproduzível, reversível e estável
  • Permite experimentar e fazer upgrades sem medo, além de evitar contaminar o sistema mesmo em ambientes de ferramentas que mudam rapidamente
  • Também oferece estabilidade e flexibilidade ao mesmo tempo em fluxos modernos de desenvolvimento, como agentes de programação com LLM
  • O NixOS é a forma que implementa essa filosofia da maneira mais completa no dia a dia

6 comentários

 
dongho42 2026-03-24

Eu também usei o NixOS por quase meio ano antigamente, mas acabei voltando para o Arch porque me deparei com uma tarefa muito simples — daquelas que em outros OS você resolve sem nem precisar procurar muito — e, por mais que eu pesquisasse no Google, não conseguia resolver. Aí vi em um lugar como o fórum do NixOS uma solução registrada por algum especialista? em NixOS, e quando percebi que aquela solução gambiarra de dezenas de linhas era a que tinha recebido mais joinhas, senti que minha vida futura com o NixOS seria sombria...

 
dongho42 2026-03-24

E também não lembro direito, mas era flake ou alguma função assim: em um lugar dizem que é best practice, em outro dizem que é experimental, em outro dizem que é os dois, e vendo isso se arrastar por anos já dava para ver claramente o tanto de dor de cabeça que viria pela frente..

Claro, a experiência de conseguir transformar facilmente todo o ambiente de desktop em código foi prazerosa.

 
pmc7777 2026-03-24

O Firebase Studio também usa Nix

 
ztaka 2026-03-24

Quem conhece, usa meio no boca a boca mesmo kkk
Um setup reproduzível implementado com uma linguagem funcional declarativa

 
ytuniverse 2026-03-24

A curva de aprendizado é absurda. Como garante reprodutibilidade, exige um nível bem alto.
Mesmo usando flake, ainda é complicado.

Além disso, parece usar SQLite internamente, e o desempenho varia bastante, então há uma certa flutuação no tempo que leva para reproduzir o ambiente novamente uma vez.

 
GN⁺ 2026-03-23
Comentários no Hacker News
  • Acho que o NixOS é incomparável em compatibilidade com ferramentas de IA
    Em outros sistemas operacionais é difícil confiar a configuração do sistema à IA, mas no NixOS isso é confiável graças à sua estrutura declarativa e com rollback
    Eu não confiaria ao Claude ou ao Codex a tarefa de migrar de Pulseaudio para Pipewire ou instalar o Hyprland, mas com o NixOS eu confiaria até ao Grok
    O ponto-chave é a estabilidade de poder revisar as mudanças com antecedência e voltar atrás a qualquer momento
    Se você é desenvolvedor, recomendo experimentar o NixOS sonhando com um “desktop Linux gerenciado por IA”. Dá para começar dizendo ao Claude: “crie uma configuração do Gnome baseada em Flake que eu possa demonstrar numa VM”

    • Uso NixOS há 3 anos e Claude há mais de 1 ano. A combinação dos dois é realmente ideal
      É impressionante ver o Claude ajustar configurações dconf do GNOME de forma declarativa
      Ainda assim, como a IA não entende o contexto complexo do ecossistema Nix, às vezes ela produz resultados sem sentido
      Dá para sentir que a estrutura lambda não padronizada do Nix e o escopo implícito entre módulos tornam tudo difícil não só para humanos, mas também para a IA
      Por isso, é importante definir com clareza a estrutura e os padrões do projeto. Mesmo assim, o processo de criar templates baseados em Nix é divertido e produtivo
    • Falando francamente, isso parece uma solução técnica exagerada para um problema que não existe
      Será que realmente precisa usar um LLM para instalar o Hyprland? Simplesmente sudo dnf install hyprland já basta
      Em vez de o Nix ser “amigável para IA”, parece mais que ele é incômodo demais para lidar manualmente, então as pessoas acabam recorrendo a LLMs
    • Tive uma experiência parecida. No passado publiquei um post no HN com o nome “ClaudeOS”, mas na verdade era a combinação NixOS + Flakes + Claude Code
      Eu gerenciava a configuração de várias máquinas como “perfis de negócio” e distribuía automaticamente os repositórios e ajustes necessários para cada máquina
      Um colega de trabalho, que antes era usuário de Windows, agora usa NixOS no dia a dia
      Todas as configurações de hardware também estão sendo gerenciadas de forma declarativa, e minhas configurações estão neste repositório público no GitHub. Feedback é bem-vindo
    • Também já fiz o Claude resolver problemas de configuração do NixOS, e funcionou muito bem
      Ao migrar configurações para uma nova estrutura ou criar vários ambientes de teste de WM/DE, o Claude cuida da maior parte do trabalho repetitivo
      Agora o sistema está completamente estável, então quase não há mais nada para fazer manualmente
      Em outros sistemas operacionais é difícil ter esse nível de confiança
    • Antes o Nix parecia tão difícil que esperei até a IA evoluir
      Em vez disso, eu gerenciava o ambiente de desenvolvimento com scripts Docker, mas agora sinto que a combinação de Nix e IA é perfeita
      Acho que no futuro vão surgir muitos softwares que a IA poderá lidar com mais facilidade
  • Depois de usar Windows por 30 anos, migrei completamente para o Nix há 1 ano
    Agora não tenho absolutamente nenhuma vontade de voltar para o Windows
    Gosto muito do fato de toda a configuração do sistema operacional estar dentro de um repositório Git
    Desenvolver sem Nix é tão ineficiente quanto programar sem Git
    Depois que tudo está configurado uma vez, preparar um novo sistema fica muito simples

    • Gostaria de saber se existe algum projeto que permita criar facilmente contêineres isolados com base na minha configuração NixOS
      Quero executar cada app em um ambiente independente sem afetar o sistema inteiro
      Acho que o NixOS é um dos caminhos para esse futuro
    • Em certo momento pensei em voltar para o Fedora Bazzite, mas fiquei no NixOS porque consegui implementar HDR no Sway de forma mais estável
      A GPU Nvidia também funciona bem, e é muito mais estável que o Gamescope
    • Gostaria de ver exemplos de como usar o nix-shell para executar scripts Python rapidamente. Ainda estou aprendendo como Python e NixOS interagem
  • Eu queria gostar mais do NixOS, mas o maior problema é a falta de documentação
    As informações estão espalhadas entre vários fóruns, blogs antigos e issues

    • Além disso, o fato de existirem duas wikis oficiais (nixos.wiki, wiki.nixos.org) causa confusão
      Ambas são atualizadas, mas na hora de pesquisar nunca fica claro qual está mais atualizada
    • Eu também reclamava da falta de documentação, mas hoje penso que o próprio código-fonte é a documentação
      Clonar o nixpkgs e ler diretamente é o caminho mais rápido
    • O ChatGPT é bastante útil para reunir várias fontes e criar exemplos de código funcionais
    • Na verdade, muitos usuários nem leem a documentação e simplesmente deixam o Claude Code escrever o código Nix
  • Já usei o NixOS como sistema operacional de notebook, e os prós e contras eram bem claros
    A configuração declarativa e os snapshots são revolucionários, mas a distinção entre pacote/serviço e o conceito de Flake eram confusos
    Ao instalar o KDE, só o conjunto mínimo era instalado, então era preciso configuração adicional, e a documentação variava de versão para versão, o que dificultava acompanhar
    No fim, desisti porque precisava de uma máquina estável, mas parece ser uma excelente escolha para administradores de sistema

    • No começo eu também achei Flake difícil, mas na prática é a forma mais intuitiva
      O instalador da Determinate Systems ativa Flake por padrão
      Dá para mover a configuração de /etc/nixos para um repositório Git e implantar uma configuração completa com o comando nixos-install --flake <repo>
      Se usar junto com o Home-manager, também dá para gerenciar declarativamente até o diretório do usuário
      Arquivos em /etc podem ser gerenciados com environment.etc, e arquivos em .config com opções do home-manager
      Links relacionados: opção environment.etc, opções do home-manager
    • Estava procurando documentação sobre mkOutOfStoreSymlink e achei engraçado receber a resposta de que “é tão simples que não precisa de documentação”
      Mesmo assim, as vantagens do NixOS são tão grandes que estou migrando tudo completamente na ordem homelab → notebook → desktop
      Ainda assim, a situação da documentação continua desesperadora
    • O Flake tem duas funções:
      1. declarar as entradas e saídas da base de código
      2. fixar (pinning) a versão das fontes de entrada
        Ou seja, ele faz no nível do Nix o papel de um package.json e de um lock file
    • Acho estranho que ninguém ainda tenha usado LLM para melhorar a documentação
  • Eu já gostava do NixOS antes, mas gosto ainda mais dele desde a era dos LLMs
    Se eu pedir ao Codex “modifique esta configuração de servidor para que um certificado curinga funcione”, em 5 minutos está resolvido
    Gerenciamento reprodutível de servidores nunca foi tão fácil

  • Depois de migrar para o NixOS, a época em que eu gerenciava tudo com apt ou brew parece tecnologia da Idade da Pedra
    Ele também combina muito bem com ferramentas de IA como o Copilot

    • O NixOS é excelente em 95%, mas os 5% restantes são muito dolorosos
      Para resolver problemas, é preciso um entendimento mais profundo do que em Linux comum
      Em compensação, é uma estrutura em que a complexidade é paga de uma vez logo no começo
    • Usei várias distribuições Linux por 20 anos, mas o NixOS foi o primeiro que me deu a sensação de “é isso”
      O melhor é poder fazer instalações temporárias com nix-shell e ver todos os pacotes instalados em um único arquivo de configuração
      Graças aos snapshots automáticos, não tenho medo de experimentar. Se algo der errado, basta inicializar a geração anterior
      Antes eu tinha medo de mexer em parâmetros do kernel, mas agora posso tentar à vontade
      Como gosto de Lisp, também considerei o Guix System, mas em termos de uso prático o NixOS é melhor
  • Eu queria que o NixOS não tivesse essa estrutura de sistema de arquivos tão peculiar
    É uma abordagem para resolver o problema de usar várias versões de Python ao mesmo tempo, mas para mim isso é desnecessário
    Eu só quero manter a mesma configuração em todas as máquinas
    Atualmente estou experimentando imagens Fedora bootc e Podman, mas é incômodo não ter algo com aplicação imediata como nixos-rebuild switch
    No fim, é um trade-off entre o Nix fácil de experimentar e o Fedora com sistema de arquivos padrão

  • A maior vantagem do NixOS é a reprodutibilidade determinística do cache de CI
    Não é preciso reconstruir pacotes toda vez, e configurar o ambiente de desenvolvimento também é simples

    • Usar Nix em CI é realmente uma combinação perfeita
      Por exemplo, a Tangled construiu todo o sistema de CI com Nix e resolveu completamente os problemas de cache do GitHub Actions
  • Eu não uso no sistema inteiro, mas gosto muito do devenv.sh
    Dá para montar um ambiente de desenvolvimento muito mais facilmente do que com contêineres locais

    • Mas a forma de fixar versões (pinning) não é clara
      Faz falta um jeito simples de alinhar versões como no .tool-versions do asdf
      No ecossistema Nix dizem que “essa é a abordagem errada”, mas eu ainda quero fixar versões individuais
    • Queria entender qual é a diferença em relação ao home-manager
    • Também dá para criar um ambiente parecido com um simples pkgs.mkShell, então fico curioso sobre por que usar o devenv
  • Eu gosto do NixOS, mas prefiro o Guix
    A linguagem Guile me é mais familiar, e a documentação também é melhor. Considero os dois sistemas como irmãos

    • Acho que o Guix merece muito mais reconhecimento
      O fato de usar uma linguagem de programação de verdade (Scheme) é uma grande vantagem
      Ele tem uma base muito mais poderosa do que uma simples linguagem de configuração