Seis meses com um sistema imutável
Pelos últimos seis meses eu usei no meu notebook pessoal, o Bazzite. Um sistema operacional imutável, com foco em videojogos. Nesse texto eu quero contar um pouco sobre a minha experiência.

Antes de começar, quero falar sobre o que é o Bazzite.
Bazzite é um sistema operacional com foco em na execução de jogos. Você pode ver ele como uma versão comunitária do SteamOS.
Diferente do SteamOS, cuja base é Arch Linux, esse sistema[1] é baseado no projeto Fedora Silverblue. Entretanto, ambos o SteamOS e o Silverblue têm algo em comum: são sistemas ditos como "imutáveis". Sistemas imutáveis, em um resumo muito resumido, limita a alteração de arquivos do sistema, incluindo a instalação de programas.
Ah, Jedi! Mas por que eu iria querer um sistema que eu não posso instalar programas?
Eu não disse que não dá para instalar, eu disse que ele limita. E, de fato, esse foi o primeiro choque que tive após instalar o Bazzite.
Um modo diferente de pensar
Eu uso Linux já faz algumas décadas. Assim como muitos usuários Linux, tive minhas fases de distrohopping, de ricing, etc. Atualmente cheguei numa conclusão de que sei o que eu quero num sistema e, caso ele não tenha o que eu quero, o quanto eu estou disposto a mudá-lo. Digo isso para deixar claro que não é a minha primeira vez usando Fedora, mas minha experiência é maior em sistemas baseados em Ubuntu.
E pouquíssimo da minha experiência anterior me preparou para o que eu veria no Bazzite.
Deixa eu voltar um pouco.
Assim que instalei o Bazzite, eu comecei a testar os jogos na minha biblioteca Steam. Por ser um sistema com foco nisso, não seria diferente. E fui felizmente surpreendido pelo que vi. Steam e Lutris já vêm instalados por padrão, e configurados com drivers e Wine. Todos[2] os jogos rodaram sem problema.
Mas nem só de jogo vive o nerd. Eu preciso que meu notebook seja útil para outras coisas. Parti a aprender a instalar programas.
Pacotes amassados
Como diabos eu instalo um programa num sistema que não posso mexer no sistema? Bom, foi aí que tive que aprender a usar flatpak para tudo.
Nas minhas idas e vindas no Linux eu já usei flatpak, não vivo numa caverna, mas
sempre preferi instalar os pacotes .deb
quando possível. Esse era um dos
motivos que me manteve em sistemas Ubuntu. O suporte a .deb
é o melhor por
parte de vários projetos e empresas.
Mas a grande vantagem do Flatpak é que ele é agnóstico de distro. Se for Linux, dá pra usar. Além disso, ajuda que a maioria dos programas já instalados no Bazzite são pacotes Flatpak. A grande maioria dos programas que eu preciso para o meu dia a dia eu consegui instalar via loja de aplicativos, que busca no catálogo do Flathub.
Único que eu não achei foi o [onedriver][one01], uma ferramenta que faz o serviço Onedrive funcionar no Linux. Como ele precisa montar e monitorar coisas do sistema de arquivos, eu vejo como pode ser difícil empacotar em um pacote baseado em container como um flatpak.
Sabe outra coisa que descobri que é bem difícil usar via flatpak? Ambientes de desenvolvimento.
Desenvolvendo no Bazzite
Primeiro problema que tive foi instalar editor de código mais comum de todos: Visual Studio Code. Tudo que eu tentava usar no vscode ele reclamava de algo. Imagina uma IDE mais complexa?
Meu primeiro pensamento foi migrar de distro. A equipe que fez o Bazzite tem um outro sistema chamado Bluefin, cuja versão "DX" tem como foco desenvolvimento.
Aí me apareceu a próxima boa surpresa, rodei um comando e o meu Bazzite se transformou num Bluefin. Com vários programas de desenvolvimento já instalado: vscode, podman desktop, etc. Com docker e IDEs da Jetbrains a uma linha de comando de distância.
O comando foi o seguinte:
user@localhost $
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bluefin:gts
O problema que eu tive foi que, apesar do que o Bluefin seja ótimo para desenvolvimento, na época que eu fiz isso ele não tinha um suporte tão bom para jogos. Atualmente ele até tem um script para instalar os pacotes de jogos, mas isso não estava lá ano passado.
Além disso, o próprio Bluefin recomenda o desenvolvimento usando devcontainers, incluindo o devpod instalado por padrão.
Por isso, ao invés de tentar tornar o Bluefin mais próximo do Bazzite, decidi fazer o caminho inverso.
Ah! E pra voltar ao Bazzite bastei usar o comando:
user@localhost $
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-gnome-nvidia:stable
UPDATE 15/06/2025
Bazzite criou uma versão
DX
(Developer eXperience) com Docker e VsCode instalados por padrão. O que torna o sistema um pouco mais próximo do Bluefin com o script que eu comentei.Saiba mais em: https://dev.bazzite.gg/
Meu sistema
Então, aqui eu quero listar o que instalei para tornar o sistema que estou usando há meses agora.
Jetbrains
Eu utilizo duas IDEs da Jetbrains no dia a dia. Webstorm principalmente, mas às vezes brinco com C# no Rider. Além disso, gosto de usar o Gateway para devcontainers.
Para o Webstorm e Gateway, não tive problemas. Instalei o Jetbrains Toolbox e esqueci.
Para o Rider foi um pouco diferente. Visto que eu não queria instalar o dotnet ou mono nativamente. Nesse caso, eu instalei os seguintes pacotes flatpak:
- com.jetbrains.Rider
- org.freedesktop.Sdk.Extension.dotnet9
- org.freedesktop.Sdk.Extension.mono
Vale lembrar que esse Rider não é empacotado nem suportado pela Jetbrains. Mas
quebra o galho. Além disso, se você precisar de outras versões do dotnet, basta
procurar no flatpak por org.freedesktop.Sdk.Extension.dotnet*
para saber os
pacotes disponíveis
user@localhost $
flatpak install --user flathub com.jetbrains.Rider org.freedesktop.Sdk.Extension.dotnet9 org.freedesktop.Sdk.Extension.mono
VS Code
Não uso tanto o VSCode assim, mas ainda é um ótimo editor de código para escrever scripts quando não quero abrir uma IDE completa. Pra isso, resolvi usar o distrobox, que já vem instalado por padrão no Bazzite.
O distrobox é basicamente um 'Linux Subsystem for Linux'. Ele sobe um container no podman e configura tudo para parecer que você tá usando um outro Linux dentro do seu terminal. Assim, instalei o Ubuntu e instalei o vscode nele.
Não vou me extender muito, mas basicamente eu fiz um arquivo ~/distrobox.ini
com o seguinte:
[desenvolvimento]
image=ubuntu:rolling
pull=true
additional_packages="git libglib2.0-bin"
exported_apps="code"
exported_bins="/usr/bin/code"
# nvidia=true
# VS Code #
init_hooks=wget -O code.deb "https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64";
init_hooks=apt install ./code.deb -y;
init_hooks=rm ./code.deb;
# End VS Code#
E subo o container usando o comando
user@localhost $
distrobox assemble create
JavaScript e TypeScript
Não tive problema com runtimes javascript porque eles conseguem rodar a nível de usuário. Uso principalmente deno, que funciona como um arquivo autocontido, e no caso do Nodejs basta usar nvm.
OneDriver
Onedriver foi o único programa que resolvi instalar nativamente, até porque ele não tem outra opção. Para isso, eu usei a válvula de escape do Bazzite.
user@localhost $
user@localhost $
user@localhost $
sudo dnf5 copr enable jstaf/onedriver # habilita o repositório do onedriver
rpm-ostre install onedriver # instala o onedriver
systemclt reboot # reinicia para aplicar as mudanças
Conclusão
Você deve ter percebido que durante o texto eu tentei não usar a palavra "distro" ou "distribuição". A equipe do Bazzite tenta se distanciar dessa palavra porque, segundo eles, há um monte de preconcepções que vem com essa palavra. E eu concordo em partes com eles. O fato que instalei 90% dos meus programas usando flatpak, e que consegui mudar de Bazzite para Bluefin e de volta para Bazzite sem precisar formatar ou perder meus arquivos mostra que é, de fato, uma experiência diferente das outras distros que eu já usei.
E nessas aventuras nos dois sistemas, eu conheci vários programas interessantes que devo escrever a respeito no futuro, como é o caso do Pika Backup.
Uma última dica que eu dou se você vai usar uma distro imutável como SteamOS,
Silverblue, Bazzite etc, é instalar os pacotes como usuário (isto é,
flatpak install --user
ou selecionar Flatpak (User)
na loja de aplicativos).
Isso ajuda a você entender o que foi você instalou e o que veio com a
instalação.
Obrigado pela atenção, e que a Força imutável esteja com vocês.
Comentários
Você pode adicionar o seu comentário respondendo a esse toot no Mastodon da sua conta no Mastodon, CalcKey, Akkoma, PixelFed, ou qualquer outra rede social com suporte a ActivityPub.