O que eu to usando agora é o NixOS, acho muito interessante, mas nao recomendaria para usuarios mais leigos ou que tem uma vida (jk), se quiser evoluir no jeito que vc gerencia as ferramentas de desenvolvimento no seu computador vc precisa conhecer o nix os e todas as ferrmentas que envolvem ele como flakes, nix-shell, o gerenciador de pacotes que inclusive pode ser instalado em qualquer distro, e o jeito declarativo de instalar e configurar o sistema, vc simplesmente copia a configuração pra outro computador e vc tem exatamente o mesmo sistema, o que e uma mao na roda quando vc troca de hardware ou tem varios computadores em casa que precisa ter o mesmo sistema operacional rodando.
O nix os é o novo arch linux nisso aq: "i use nix os btw"
O nix os tambem é rolling release como o arch linux, mas diferente do arch linux ele nao quebra toda hora, ele é bem estavel, muito estavel, mas os pacotes nao são antigos, o motivo disso e que ele instala todas as dependencias isoladas umas das outras, lado a lado, na pasta /nix/store
, por isso nada quebra por causa de dependencias muito antigas ou demasiado novas.
Depois de instalar no meu notebook eu não consigo mais utilizar nenhuma outra distro linux
Ela é diferente de qualquer outra distro comum, literalmente muda a forma como você interage com seu computador
Para dar um exemplo, pense que no seu sistema operacional você dá ordens imperativas que vão mudando o estado do sistema:
Sistema operacional sem modificações -> Instalar pacote X -> Sistema operacional com pacote X
E conforme o tempo se passa, essas modificações vão se acumulando no sistema (como arquivos de configuração que não são deletados, versão dos drivers e bibliotecas, sistema de arquivos etc...)
Chega uma hora que uma modificação que você fez lá trás entra em conflito com uma modificação atual, o que gera muitos problemas.
Esse é uma das críticas de distribuições rolling release como Arch Linux, já que os pacotes não são testados em conjuntos, um pacote pode quebrar outro e é necessário resolver esses problemas.
Mas no NixOS, todas as modificações feitas no sistema são feitas em um arquivo que representa o estado do sistema, onde para aplicar essas alterações é necessário "buildar" esse arquivo onde o resultado do build é o sistema que você usa.
programs.firefox.enable = true; # Instala o firefox
virtualisation.docker.enable = true; # Instala e habilita o Docker no sistema
# Instala o servidor gráfico X, habilita o gerenciador Desktop Gnome
services.xserver = {
enable = true;
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
};
E caso tenha dado algum problema na alteração aplicada, é possível reverter para o estado anterior, eu mesmo já fiz testei e criei vários problemas no meu sistema kkkk, mas o NixOS me permite voltar pra antes.
E esse é apenas um dos benefícios, tem a reprodutibilidade dos pacotes, poder ter múltiplas versões de um softwares instaladas ou o fato de toda configuração do seu sistema ficar em apenas um lugar mas não vou me extender kk.
Apesar da falta de documentação e de ser pouco intuitiva (pois é necessário entender alguns conceitos antes de usá-la), vale muito a pena, para desenvolvedores e com quem trabalha com infraestrutura e redes é perfeito.
Vale notar que NixOS é uma distribuição (Linux) que foi feita em cima do Nix (gerenciador de pacotes) que utiliza o Nix(lang) como linguagem para buildar pacotes. É possível instalar o gerenciador de pacotes Nix em qualquer distribuição Linux e até no macOS.
Quem estiver interessado pra aprender recomendo estar com o Inglês em dia e ver esses recursos:
- Manual muito extensivo do sistema operacional
- Um blog absurdamente bom para introduzir o gerenciador de pacotes Nix e a linguagem Nix
- Documentação um pouco avançada sobre o ecosistema e como utilizá-lo para desenvolvimento
Também tenho um repositório que contém os arquivos de configuração para os sistemas que utilizo hoje em dia, quem estiver curioso pode dar uma olhada tmb.
To a disposição para atender quaisquer dúvidas também (não sou profissional no entanto kk)