rpm-ostree no Silverblue

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

O rpm-ostree é como se fosse o dnf do Silverblue, porém com intuito de providenciar updates mais seguros (atômicos). No momento ele não possui uma opção “search package” e 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, override etc..

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

Alguns comandos básicos do rpm-ostree:

rpm-ostree status – informações sobre os deployments

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)

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

rpm-ostree override – 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.

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 kernel panic 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 resolvido:

rpm-ostree ex apply-live

Nesta versão, a funcionalidade anteriormente conhecida por “rpm-ostree ex livefs” agora é conhecida como “rpm-ostree ex apply-live” que agora tem uma base mais sólida tecnicamente. É considerado muito seguro de usar. Ainda está sob “ex” porque ainda pode sofrer mudanças e esperam receber feedback sobre.

Muitos “críticos” do rpm-ostree falam sobre “precisar reiniciar para atualizações/instalações de app’s”. Isso não é totalmente verdade, pois o objetivo é mover a maioria dos softwares para conteineres (flatpak’s).

Vamos ver então como usar esta funcionalidade do rpm-ostree instalando um pacote não distribuído em Flatpak, começando com o coreCtrl:

rpm-ostree install corectrl

Embora o rpm-ostree não tenha a intenção de ser intensamente usado como o DNF para instalar pacotes toda hora, pode demonstrar lentidão, levou 3 minutos (em VM 2CPU’s 4GB RAM) para instalar estes pacotes. Porem ainda não estão disponíveis para uso no sistema:

Podemos ver que foi criado um novo deploy com os pacotes adicionados, na qual ao reiniciar o sistema estará disponível, porem aqui ao invés de reiniciar vamos usar o comando:

sudo rpm-ostree ex apply-live

Nesta VM o comando levou aproximadamente 30 segundos para concluir:

Então consultando novamente via rpm-ostree status, vemos o status “transient”:

Note que, no final existe uma mensagem de algo como “alguns serviços talvez precisam ser reiniciados”. Está falando de serviços no systemd, na qual ele não reinicia automaticamente caso algum app necessita (como o CoreCtrl)

Neste caso o CoreCtrl não iniciará por falta destes serviços não iniciados, este é um caso que ainda será necessário o reinicio do sistema para funcionamento pleno do programa, se instalar um pacote mais simples (ex: editor de texto) não precisará reiniciar:

rpm-ostree install leafpad

Após instalado, veja que o leafpad irá ser adicionado no mesmo deploy com o CoreCtrl.

Então novamente:

sudo rpm-ostree ex apply-live

Então poderá usar o Leafpad:

Todavia, neste momento ele ainda não se integrou totalmente (pelo menos nesta DE/versão) como no menu de pesquisa:

Na lista de app’s do GNOME Settings apareceu na hora:

Se reiniciar a sessão (sem reinicio do sistema) o ícone no menu aparece (GNOME 40.alpha):

Outra opção que temos com rpm-ostree é instalar pacotes 32bit, porém ainda existe bug’s com alguns pacotes, como o WINE. Se tentar um “rpm-ostree install wine” no momento exite um bug (já reportado aos desevolvedores):

Então vamos testar com o pacote Steam do RPMFusion, que é e depente de várias lib’s 32bit (embora possa usar via Flatpak tranquilamente)

Para testar usarei o Fedora 33 (pois no momento o pacote Steam está incompatível com o Fedora 34 ainda não lançado).

Primeiro adicionamos o repositório RPMFusion instalando os rpm’s:

sudo rpm-ostree install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

Depois aplicamos o comando:

sudo rpm-ostree ex apply-live

Agora instalamos o Steam:

rpm-ostree install steam

Então novamente o comando:

sudo rpm-ostree ex apply-live

Neste momento já poderá usar o Steam (sendo que o ícone não aparecerá no menu sem encerrar a sessão):

Agora, digamos que você queira desinstalar todos 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

em seguida:

sudo rpm-ostree ex apply-live

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

Por ultimo, digamos que você queira desfazer todos overrides e remover tudo que não é padrão do sistema, basta o comando:

rpm-ostree reset

E Reiniciar (ou usar sudo rpm-ostree ex apply-live) 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.

Por enquanto é isso, para mais features do rpm-ostree, veja também este artigo .

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

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Blog no WordPress.com.

Acima ↑

%d blogueiros gostam disto: