openSUSE Tumbleweed Snapshots - A Melhor Forma de Controle de Atualizações e Quebras do Sistema

Como controlar de uma forma eficiente, as atualizações da versão rolling release do openSUSE e diminuir as chances de quebra do sistema, sendo possível "voltar" os pacotes e repositórios para um estado anterior onde tudo funcionava.

[ Hits: 598 ]

Por: niquelnausea em 14/09/2020


Introdução



Distribuições rolling release são conhecidas por disponibilizarem novidades quase que instantaneamente. Dentre as mais famosas, se destacam o Arch Linux e Gentoo, e o projeto openSUSE também possui a sua versão, chamado Tumbleweed.

O grande número de atualizações nem sempre trazem somente novidades boas, as vezes podem trazer problemas e até a quebra do sistema, de modo que intervenções manuais, ou mesmo downgrades, sejam necessários. Apesar destes problemas acontecerem cada vez mais raramente, quando acontecem, todos os seus usuários são pegos de forma desprevenida, ficando com a duvida "e agora?".

As vantagens de usar este tipo de sistema, mesmo com os contrapontos descritos acima, são vários: softwares mais atuais, correção de bugs, novos recursos que são disponibilizados apenas em novos lançamentos, drives de video mais recentes, kernel sempre atualizado, melhor suporte a hardware novo, novidades em ambientes gráficos que sempre têm melhorias como o KDE e Gnome, despreocupação com ciclo de vida (atualizações ou disponibilidade dos pacotes online), ou mesmo a reinstalação do sistema a cada novo lançamento, suporte a novas tecnologias, entre outros.

Dentre os maiores méritos do openSUSE Tumbleweed, se destaca o número de pacotes ofertados pela comunidade, sendo muitos através do OBS (openSUSE Build Service), estabilidade do sistema, ferramentas do YaST (Yet another Setup Tool), sistema de snapshots através do sistema de arquivos padrão o Btrfs.

Um dos grandes diferenciais do Tumbleweed foi lançado em 2017 e possibilita lançar atualizações e manipular os repositórios na forma de snapshots, sendo possível congelar os repositórios de modo a evitar incompatibilidade entre pacotes, atualizações problemáticas ou mesmo a necessidade de atualizar o sistema inteiro somente para instalar um pacote, e para facilitar ainda mais o controle disso tudo existe uma simples ferramenta que é o motivo deste artigo, o tumbleweed-cli.

tumbleweed-cli

A instalação e uso não poderiam ser mais simples, sendo disponibilizado na forma de um pacote, basta instalar através do zypper, ou da interface do YaST, e ativar o recurso e atualizar os repositórios para apontarem para o snapshot:

# zypper in tumbleweed-cli
# tumbleweed init
# zypper ref

As mudanças ocorrem nos endereços dos repositórios, onde ao invés de simplesmente apontarem para o endereço padrão, é usado uma variável que define para qual snapshot sera usado. Uma demonstração do antes e depois:

# zypper lr -EUP
| Apelido          | Nome          | Habilitado | Verificação GPG | Atualizar | Prioridade | URI
---+---------------+---------------+------------+-----------------+-----------+------------+--------------------------------------------------------------------
 4 | google-chrome | google-chrome | Sim        | (r ) Sim        | Não       |   99       | http://dl.google.com/linux/chrome/rpm/stable/x86_64
 9 | repo-non-oss  | non-oss       | Sim        | (r ) Sim        | Não       |   99       | http://download.opensuse.org/tumbleweed/repo/non-oss
10 | repo-oss      | oss           | Sim        | (r ) Sim        | Não       |   99       | http://download.opensuse.org/tumbleweed/repo/oss
11 | repo-update   | update        | Sim        | (r ) Sim        | Não       |   99       | http://download.opensuse.org/update/tumbleweed/
 8 | packman       | packman       | Sim        | (r ) Sim        | Não       |   90       | http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/
 5 | libdvdcss     | libdvdcss     | Sim        | (r ) Sim        | Não       |   99       | http://opensuse-guide.org/repo/openSUSE_Tumbleweed/
 6 | nvidia        | nvidia        | Sim        | (r ) Sim        | Não       |   99       | https://download.nvidia.com/opensuse/tumbleweed

# zypper lr -EUP
| Apelido       | Nome               | Habilitado | Verificação GPG | Atualizar | Prioridade | URI
---+---------------+--------------------+------------+-----------------+-----------+------------+----------------------------------------------------------------------
 4 | google-chrome | google-chrome      | Sim        | (r ) Sim        | Não       |   99       | http://dl.google.com/linux/chrome/rpm/stable/x86_64
 9 | repo-non-oss  | non-oss (20200902) | Sim        | (r ) Sim        | Não       |   99       | http://download.opensuse.org/history/20200902/tumbleweed/repo/non-oss
10 | repo-oss      | oss (20200902)     | Sim        | (r ) Sim        | Não       |   99       | http://download.opensuse.org/history/20200902/tumbleweed/repo/oss
11 | repo-update   | update             | Sim        | (r ) Sim        | Não       |   99       | http://download.opensuse.org/update/tumbleweed/
 8 | packman       | packman            | Sim        | (r ) Sim        | Não       |   90       | http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/
 5 | libdvdcss     | libdvdcss          | Sim        | (r ) Sim        | Não       |   99       | http://opensuse-guide.org/repo/openSUSE_Tumbleweed/
 6 | nvidia        | nvidia             | Sim        | (r ) Sim        | Não       |   99       | https://download.nvidia.com/opensuse/tumbleweed

E com isto, o sistema está usando a versão 20200902, a cada vez que instalar um novo pacote ou mesmo tentar atualizar o sistema, estará fixo a este snapshot.

Para saber qual versão estou usando e se existem novos snapshots, basta usar um dos comando abaixo:

tumbleweed target
20200902

tumbleweed status
latest   : 20200904
target   : 20200902
installed: 20200902


tumbleweed latest
20200904

É possível ver que exista uma nova versão, a 20200904. Para passar a usá-la, basta usar o parâmetro "update" ou "upgrade":

# tumbleweed update
choosing latest version
switching from 20200902 to 20200904? [y/n] (y):


Se o atual snapshot for problemático e o usuário queira retornar ao anterior:

# tumbleweed revert --install
switching from 20200904 to 20200902? [y/n] (y):

Para saber quais os snapshots disponíveis:

# tumbleweed list
20200904
20200902
20200901
20200831
20200829
20200826
20200824
20200823
20200821
20200819
20200818
20200817
20200816
20200815
20200814
20200813
20200812
20200810
20200807
20200806


Para voltar aos repositórios padrões de atualização contínua:

# tumbleweed uninit

E para finalizar, a resposta ao questionamento: "mas como saber qual snapshot é problemático ou não?" e a resposta é tão simples quanto usar o tumbleweed-cli, basta acessar o site: openSUSE Tumbleweed Review e ver a pontuação de cada um e decidir se vale a pena ou não migrar de snapshot, como pode ser visto em Tumbleweed Release 20200826, o 20200826 foi bastante problemático e trouxe uma enorme quantidade de relatos de sistemas com problemas, mas para quem seguia as dicas acima, evitar estes problemas ou mesmo a solução foram simples.

Estes dois vídeos demonstram o uso do tumbleweed-cli:
    Próxima página

Páginas do artigo
   1. Introdução
   2. Observações
Outros artigos deste autor

openSUSE Argon

Usando Sistema de Arquivos BTRFS - Subvolumes, Snapshots e Compactação

Leitura recomendada

Instalando o Slackware em português

Introdução a Lógica para computação

Lógica para computação - parte IV

As principais distribuições GNU/Linux

Compilando Apache 2 com PHP, MySQL, mod_perl e mod_ssl

  
Comentários
[1] Comentário enviado por Fabio_Farias em 15/09/2020 - 08:20h

Eu não uso o openSUSE Tumbleweed. Uso somente as versões regulares. Mas foi bom saber da existência dessa ferramenta de controle para as atualizações constantes do Tumbleweed. Parabéns pelo artigo.

[2] Comentário enviado por PL45T1C0 em 15/09/2020 - 11:13h

Cara, Parabéns pelo artigo!
Sempre que vou usar uma distro Rolling fico entre Arch e Tumbleweed.
Seu artigo acabou de incluir mais alguns pontos para o Tumbleweed.

[3] Comentário enviado por caffilhobr em 15/09/2020 - 12:21h

Excelente artigo, uso o Leap pela estabilidade mas vou dar uma olhada no TW.

[4] Comentário enviado por -josinaldo- em 15/09/2020 - 12:55h

Realmente acho o tratamento de pacotes no openSUSE muito eficiente, a documentação do artigo usa uma linguagem acessível e rica em detalhes.
Excelente artigo, e escreva mais sobre o openSUSE..

[5] Comentário enviado por LckLinux em 15/09/2020 - 18:28h

Parabéns, camarada. Nada como aprender através de um escrito bem construído, como é o caso \o/


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts