- 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
/usrcomo 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
podmanebootc, é 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
/usrsem 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
Ainda não entendo muito bem os contêineres inicializáveis.
Comentários no Hacker News
Contêineres comuns são muito úteis para testar
dotfilesGosto da ideia de Linux imutável e de contêineres inicializáveis
Containerfile, tenho preocupações com vulnerabilidades na cadeia de suprimentosFico me perguntando por que não existe mais entusiasmo com temas
Eu não sabia absolutamente nada sobre contêineres inicializáveis
Isso me lembra da época em que eu brincava com o Enlightenment
Acho contêineres inicializáveis algo interessante
O projeto bootc é uma das coisas mais interessantes no Linux atualmente
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