rpm-ostree no Silverblue

Hoje vamos ver como está a experiência do rpm-ostree com instalação de pacotes e algumas funções básicas. Vale lembrar que o que verá aqui ainda pode mudar / melhorar com o tempo.

O rpm-ostree é como se fosse o dnf do Silverblue, uma ferramenta de linha de comandos (cli) que tem intuito de providenciar updates mais seguros (atômicos) e visando a manipulação por usuários, não apenas sysadmins/devs. O rpm-ostree talvez não terá muitas funções usadas no DNF, por se tratar de um novo paradigma de gerenciamento de sistema ou por apenas não terem implementado ainda.

Além de instalar pacotes, ele também é responsável por gerenciar o sistema de update, rebase, overrides, adicionar parâmetros ao kernel etc…

Para mais informações consulte também esta documentação.

$ rpm-ostree –version
rpm-ostree:
Version: ‘2024.3’
Features:

  • rust
  • compose
  • container
  • fedora-integration

Alguns comandos básicos do rpm-ostree:

rpm-ostree search – pesquisa por pacotes dos repositórios configurados em /etc/yum.repos.d/;

rpm-ostree status – informações sobre os deployments e estado de uso do rpm-ostree;

rpm-ostree cancel – cancela qualquer processo que o rpm-ostree esteja fazendo;

rpm-ostree update – faz update do sistema;

rpm-ostree install – instala pacotes .rpm;

rpm-ostree uninstall – desinstala pacotes .rpm que você instalou anteriormente com o “install”;

rpm-ostree reset – desinstala todos “layered packages” (pacotes .rpm que você instalou) muito útil caso tenha bagunçado seu OS com muitos pacotes e não saiba qual está causando problemas;

rpm-ostree rebase – rebase ou deploy uma nova versão ou branch ostree (usado para upgrade/downgrade de versão);

rpm-ostree override replace – permite também, sobrepor / instalar um pacote que substitui algum usado no sistema;

rpm-ostree cleanup --rollback – remove deployments anteriores não pinados do sistema/grub;

rpm-ostree cleanup --pending – remove deployments ainda pendentes do sistema/grub;

rpm-ostree override remove – remove algum pacote rpm instalado no sistema base (aquele que vem por padrão) ou que tenha instalado com override replace;

rpm-ostree rollback – reverte a última ação feita pelo rpm-ostree (downgrade).

Se quer reportar algum bug/contribuir/estudar acesse o github.

Em um lançamento o dev (Colin Walters) explicou que o objetivo do rpm-ostree é capacitar “usuários e desenvolvedores”. Devem ser capazes de aplicar atualizações automáticas, sem medo de uma queda de energia ou quebrar no meio do processo.

Tendo estas características como prioridade, alguns efeitos colaterais surgiram (não intencionalmente). E no update v2021.1+ um dos maiores efeitos foi parcialmente resolvido: a necessidade de reinício do sistema.

rpm-ostree –apply-live

Função para aplicar em live a alteração do rpm-ostree install

Nesta versão, a funcionalidade anteriormente conhecida por “rpm-ostree ex livefs” agora é conhecida como “rpm-ostree –apply-live” que agora tem uma base mais sólida tecnicamente. É considerado muito seguro de usar.

Muitos “críticos” do rpm-ostree falam sobre “precisar reiniciar para atualizações/instalações de app’s”. Isso não é totalmente verdade, tendo o objetivo é mover a maioria dos softwares para contêineres (flatpak’s) este problema tende a diminuir ainda mais.

obs: Atualmente outros gerenciadores de pacotes como dnf, apt, zypper, pacman… também necessitam de reboot do sistema para atualização de partes críticas como kernel, systemd, networkmanager, DE’s, firmwares, glibc etc.

Vamos ver então como usar esta funcionalidade do rpm-ostree instalando alguns pacotes que não existem em Flatpak, usando:

rpm-ostree install nomedoprograma –apply-live

Vale lembrar que o Linux e muitos outros componentes não suportam a atualização sem reinício do sistema, assim como alguns programas que requerem alteração em parâmetros de boot para controle de clock ou inicialização de serviços do systemd no boot, ou coisas do tipo…isso em qualquer distro Linux.

Distrobox: Este é um programa CLI para criação de conteiners podman. O flatpak BoxBuddy faz uso dele e quando não se tem o distrobox instalado no sistema, o programa simplesmente não funciona. Então vai servir de exemplo para testarmos o –apply-live.

rpm-ostree install distrobox –apply-live

obs: a instalação levou 3 minutos, nesta VM com 6CPU’s 4GB RAM em SSD. O rpm-ostree depende principalmente da velocidade do armazenamento, então se estiver em HD mecânico pode sofrer com ele.

Ao término da instalação, abrindo o BoxBuddy já estava funcional reconhecendo o Distrobox do sistema:

rpm-ostree override

Agora, digamos que você queira desinstalar todos os app’s padrão do Silverblue, inclusive aqueles que fazem parte do sistema como: firefox, nautilus, gnome-software…

Com o comando “rpm-ostree override remove nomedopacote” podemos deixar o sistema praticamente vazio.

Alguns flatpak’s vem instalados por padrão, para remover todos basta um “flatpak remove --all

Removendo todos Flatpak’s, os app’s padrão do sistema são estes:

Assim como no Fedora Workstation, no Silverblue você pode deixar o sistema apenas com o settings (no caso do GNOME) então vou deixar apenas o settings e o terminal com o comando:

rpm-ostree override remove gnome-classic-session gnome-disk-utility nautilus gnome-software-rpm-ostree gnome-software firefox yelp gnome-system-monitor –apply-live

Agora basta reiniciar a sessão (sem reiniciar o sistema caso não queira).

Perceba que, este procedimento via dnf seria arriscado para um iniciante e teria chances de ele não saber/conseguir reverter as mudanças, pois o downgrade no dnf não é tão confiável. A diferença do rpm-ostree, é que permite reverter tudo sem problemas! Veja a seguinte.

Por último, digamos que você queira desfazer todos “overrides remove” que fez anteriormente e remover tudo que não é padrão do sistema, basta 1 comando:

rpm-ostree reset

E Reiniciar, que o sistema estará como se tivesse instalado novamente, lembrando que sua Home/documentos não são afetados e os Flatpak’s não são alterados com o rpm-ostree.

O reset é otimo caso tenha feito uma bagunca no sistema e nao saiba qual pacote esta sendo a causa do problema. O comando rollback também é util para caso um update tennha bugado algo do sistema e queira reverter, entre outros casos de uso.

Concluindo

Acho que isto mostra um pouco do paradigma do rpm-ostree, que não é realmente substiuir o dnf ou apt… mas tratar o gerenciamento do sistema de forma mais segura, tanto para usuários iniciantes como avançados.

Por enquanto é isso, para mais features do rpm-ostree, veja também este artigo com outras funções interessantes do rpm-ostree.

Se deseja me dar sugestões, mande para fastos2016@gmail.com ou nas redes sociais.

Deixe um comentário

Blog no WordPress.com.

Acima ↑