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: