11 pontos por GN⁺ 2025-04-23 | 2 comentários | Compartilhar no WhatsApp
  • Graças ao bootc e aos contêineres inicializáveis, mudar temas passou a ser possível de forma mais segura e mais fácil de gerenciar
  • Como é possível definir /usr como um contêiner e fazer rollback, fica fácil experimentar no sistema e voltar atrás
  • Com o comando ostree admin unlock, também é possível fazer personalizações temporárias sem reiniciar
  • Projetos como o Blue95 refletem uma era em que a fronteira entre distribuição e contêiner está ficando difusa
  • Com contêineres inicializáveis, é possível concretizar a expressão criativa pessoal

A alegria de personalizar temas no Linux

  • Durante décadas, houve interesse por vários ambientes de desktop e configurações de temas
    • Foram instalados Xfce, LXQt, Sway e outros, com personalização de painéis, lançadores, sons, fontes e temas
    • No começo, usavam-se shell scripts, que depois evoluíram para playbooks do Ansible
    • Isso incluía até mudanças em nível de sistema que exigiam modificar o diretório /usr
  • Mas, com o tempo, problemas como painéis que quebravam ou desapareciam com frequência e lançadores que deixavam de funcionar levaram à escolha de voltar às configurações padrão
  • Ambientes de desktop modernos como GNOME e KDE já são muito bem-feitos, então o estado padrão também é bastante satisfatório
  • Ainda assim, a vontade de personalizar não desapareceu, e foi nesse momento que surgiu o contato com o conceito de bootc

Bootc é o playground de quem cria temas

  • bootc é um sistema de contêineres inicializáveis desenvolvido pela Red Hat
  • Ele permite definir e distribuir o sistema operacional com base em contêineres
    FROM quay.io/fedora/fedora-bootc:42  
    RUN dnf install -y my-custom-theme my-custom-fonts my-custom-panel  
    
  • Com os comandos podman e bootc, é possível fazer o build da imagem e alternar o sistema:
    sudo podman build -f Containerfile -t my-fedora  
    sudo bootc switch --transport containers-storage localhost/my-fedora:latest  
    
  • /usr é somente leitura, e é fácil fazer rollback do contêiner para um estado anterior
  • É uma abordagem otimizada para testar novas ideias de temas
  • Se algo falhar ou não agradar, é possível restaurar facilmente o estado anterior

Development Mode (ostree admin unlock)

  • Um modo que permite modificar temporariamente o /usr sem reiniciar
  • Se der certo, a mudança pode ser refletida no Containerfile; se der errado, basta reiniciar para remover as alterações
  • Há a vantagem de quase não gerar resíduos acumulados como costuma acontecer em ambientes Linux tradicionais

Comparação com métodos alternativos

  • Ansible ou shell scripts: têm limitações em reprodutibilidade e recuperação
  • systemd-sysext: permite usar imagens de overlay para /usr, mas o ecossistema ainda é imaturo
  • Nix: o custo de aprendizado é muito alto

Em resumo, o bootc é a abordagem mais forte em segurança, flexibilidade e suporte de ferramentas
Mesmo que uma mudança dê errado, o rollback é simples, então não há preocupação em quebrar o /usr

O que é uma "distribuição"?

  • Blue95 é uma imagem OCI personalizada baseada no Fedora Xfce
  • Depois de ser apresentado no Hacker News, surgiu a pergunta: "É só um tema, precisa mesmo de uma distribuição?"

A definição de distribuição está ficando difusa

  • Antes, criar uma distribuição era algo muito complexo e demorado
  • Agora, com apenas um Containerfile + pipeline de CI/CD, é possível obter um resultado semelhante com facilidade
  • O Blue95 é compilado automaticamente com GitHub Actions e distribuído em um registro OCI
  • O critério para considerar um simples contêiner baseado em Fedora como uma distribuição é ambíguo

Comparação com casos anteriores

  • Projetos baseados em bootc como Bluefin e Bazzite também costumam ser considerados distribuições
  • A experiência real de uso é claramente diferente da do Fedora tradicional
  • Pelas definições antigas, ficou difícil explicar o significado de distribuição
    • Algo como "você reconhece quando vê" pode acabar sendo o único critério qualitativo possível

Conclusão

  • Criar uma "distribuição" apenas por causa de um tema pode parecer desnecessário
  • Mas, com contêineres inicializáveis, é possível definir um design consistente e uma composição de aplicativos, e
  • a liberdade de criar isso e usar por conta própria traz grande alegria e sensação de realização

O sistema operacional em que este texto está sendo escrito agora é um sistema inicializado a partir de um contêiner que eu criei
É o resultado de somar minha expressão criativa ao trabalho de inúmeros desenvolvedores,
e isso me dá muita alegria

2 comentários

 
zihado 2025-04-23

Ainda não entendo muito bem os contêineres inicializáveis.

 
GN⁺ 2025-04-23
Comentários no Hacker News
  • Contêineres comuns são muito úteis para testar dotfiles

    • Há alguns anos, adicionei scripts de instalação em https://github.com/nickjj/dotfiles para configurar sistemas rapidamente
    • Testei usando imagens oficiais do Debian e do Ubuntu
    • Recentemente, refatorei para dar suporte ao Arch Linux
    • Consigo executar a suíte completa de testes em cerca de 5 minutos
    • O contêiner inicia em 1 segundo; o restante é o script rodando
    • Isso permite testar sem modificar o sistema
    • O Docker tornou muitas coisas boas possíveis nos últimos 10 anos
  • Gosto da ideia de Linux imutável e de contêineres inicializáveis

    • Meu próximo projeto provavelmente será migrar para o bazzite
    • Mas, olhando o Containerfile, tenho preocupações com vulnerabilidades na cadeia de suprimentos
    • Ele usa 20 repositórios copr diferentes, e as versões não estão fixadas
    • Com Debian, sinto mais confiança nos pacotes
    • Empacotar o risco da cadeia de suprimentos em um único arquivo pode ser perigoso
    • Fico pensando se outras pessoas também têm essa preocupação
  • Fico me perguntando por que não existe mais entusiasmo com temas

    • Gosto do Chicago95 e do tema KDE do Garuda
    • Existem sites onde você pode baixar temas para vários DEs, mas a maioria parece meio instável
  • Eu não sabia absolutamente nada sobre contêineres inicializáveis

    • O Blue95 faz muito mais sentido no contexto do uso do bootc
    • Dá para consultar exemplos como o NsCDE
  • Isso me lembra da época em que eu brincava com o Enlightenment

    • Era uma tentativa de levar as possibilidades do X11 ao limite
    • Surpreende que ele ainda exista
  • Acho contêineres inicializáveis algo interessante

    • Parece semelhante ao módulo impermanence do NixOS
  • O projeto bootc é uma das coisas mais interessantes no Linux atualmente

    • Seria bom se um projeto como o Debian adotasse isso
    • Isso poderia trazer muitas vantagens em termos de estabilidade
  • A imagem em miniatura representa perfeitamente todo o meu estado de espírito

  • Eu esperava que os sistemas operacionais modernos pudessem ser tematizados com facilidade infinita, mas não é o caso

    • Eu achava que existiriam temas retrô perfeitos e temas realmente originais