Imutável não é engessado. Só é outra forma de pensar!

Imutável não é engessado. Só é outra forma de pensar!

Quando alguém ouve falar em “distribuição imutável”, a reação quase automática é: “Ah, então não dá para mexer em nada.” Mas essa conclusão está errada. Imutável não significa engessado, travado ou limitado. Significa apenas que a lógica de funcionamento do sistema é diferente daquela à qual muitos usuários Linux estão acostumados.

E talvez seja justamente essa mudança de mentalidade que cause mais estranhamento.

Um exemplo clássico: o Steam Deck

Um dos casos mais conhecidos de sistema imutável no desktop é o Steam Deck, que utiliza o SteamOS. No SteamOS, os arquivos centrais do sistema ficam em modo somente leitura. A única área totalmente gravável por padrão é a pasta do usuário. Aplicativos são instalados preferencialmente via Flatpak, mantendo tudo isolado da base do sistema.

Isso traz enormes vantagens em estabilidade, previsibilidade e atualizações muito mais seguras. Mas também há críticas, especialmente nas versões iniciais de 64 GB do Steam Deck.

Como o sistema funciona com atualizações atômicas, ou seja, ele baixa uma nova imagem completa da base do sistema, é preciso ter espaço livre suficiente para armazenar essa nova imagem antes da instalação. Em um dispositivo com armazenamento limitado e jogos pesados, isso pode virar um problema rapidamente.

Se você tiver apenas 5 GB livres, por exemplo, talvez não consiga atualizar. Isso não é um defeito conceitual da imutabilidade. É uma consequência prática de como ela funciona. E com modelos mais recentes começando em 256 GB, 512 GB ou mais, esse obstáculo praticamente desapareceu.

Reiniciar para atualizar: inconveniente ou mais seguro?

Outro ponto que costuma incomodar é a necessidade de reiniciar para aplicar atualizações do sistema.

“Mas no Linux tradicional eu não preciso reiniciar!”

Depende.

Distribuições como Fedora já adotam reinicialização em determinadas atualizações do sistema. O Windows faz isso. O macOS também.

A razão é simples: aplicar uma nova base de sistema de forma limpa reduz drasticamente a chance de inconsistências.

Em vez de trocar peças com o sistema rodando, você prepara tudo antes e ativa de uma vez só. Pode ser um pequeno incômodo no fluxo de trabalho, mas aumenta muito a confiabilidade.

“Eu mexi na raiz e perdi tudo!”

Essa é outra crítica comum. Se você desbloqueia a raiz do sistema imutável, altera arquivos internos e depois recebe uma atualização, suas modificações podem ser sobrescritas.

Mas pense pelo outro lado: e se essa modificação não tivesse sido feita por você, mas por um malware? Ou por um erro acidental? Ou por um script mal executado? Na próxima atualização, o sistema volta para um estado íntegro e funcional.

Do ponto de vista de segurança e recuperação, isso é extremamente poderoso.

Para quem gosta de fuçar cada detalhe…

Aqui está um ponto importante: se você é um usuário extremamente avançado, que gosta de controlar cada biblioteca, daemon ou quaquer configuração minuciosa da raiz do sistema, talvez uma distro imutável realmente não seja o ambiente mais confortável.

Mas é importante entender que imutabilidade não remove a capacidade de personalização. Ela apenas muda o nível em que essa personalização acontece.

Em vez de alterar diretamente o sistema base, você trabalha com:

  • Flatpaks para aplicativos;
  • Contêineres para ambientes isolados;
  • Camadas adicionais sobre a imagem base;
  • Construção de imagens personalizadas.

Projetos como o Universal Blue permitem que você crie sua própria imagem customizada do sistema, já com as modificações desejadas, e receba atualizações contínuas preservando suas alterações.

Isso é muito mais próximo de práticas modernas de infraestrutura, DevOps e cloud-native do que do modelo clássico de “editar arquivos manualmente na raiz”. Não é menos poderoso. É apenas outra abordagem.

A maioria das pessoas nem percebe

Aqui vai uma reflexão interessante: usuários comuns de Android raramente reclamam que o sistema é imutável. Eles simplesmente usam, atualizam quando necessário, reiniciam e seguem a vida.

No mundo Linux tradicional, criou-se a cultura de que é quase obrigatório “fuçar” o sistema. Customizar virou parte da identidade. Mas será que todo mundo realmente precisa disso?

Muita gente quer apenas que o computador funcione, atualize sem quebrar e continue produtivo.

Resolver mais problemas do que criar

Se você testar algum sistema como o Bazzite, Aurora ou MicroOS, poderá encontrar limitações específicas, especialmente ao tentar forçar fluxos muito tradicionais dentro de uma arquitetura pensada para isolamento. 

Algumas integrações podem exigir contornos. Certos comportamentos podem parecer menos diretos. Mas, para a vasta maioria dos usuários, esses sistemas resolvem muito mais problemas do que criam.

Eles reduzem:

  • Quebras após atualizações;
  • Conflitos de dependência;
  • Inconsistências na base do sistema;
  • Acúmulo de “lixo técnico” ao longo do tempo.

E fazem isso mantendo a possibilidade de personalização de forma mais estruturada.

O Flatpak, o Snap e até o apt, DNF ou o pacman do Arch Linux já foram criticados. Toda inovação encontra resistência inicial. Isso não significa que substituirá completamente o modelo anterior. O mais provável é que coexistam por muito tempo.

Sempre haverá espaço para distribuições altamente mutáveis e para sistemas imutáveis.Este conteúdo é um corte do Diocast. Assista ao episódio completo onde mergulhamos no universo das distros imutáveis!