O que é uma distro "estável"

O início

Essa é uma das coisas que mais geram erros de interpretação e acabam atacando projetos de forma gratuita e ineficiente, no post de hoje aprenda o que é uma distro estável

Calma lá, não é tão simples

Já vi muitos posts tanto aqui no fórum quanto internet a fora como:

Ah, Ubuntu se diz estável mas tem bugs demais

O Debian se diz estável mas tem pacotes de 200 anos atrás

O Manjaro é estável

É só ver se é LTS se for é estável

E por aí vai… E embora algumas tenham certa lógica, todos esses pensamentos estão errados, no máximo apontam uma tendência a ser estável mas não é regra

Ser estável x ter bugs: pode isso?

Não só pode como é esperado, do ponto de vista estatístico se a distro não for bleeding edge, a probabilidade de você ter bugs entre uma não estável e uma instável é praticamente a mesma, uma nova versão de um pacote evidentemente corrige bugs, mas também introduz novos, por mais contraditório que possa parecer, distros “instáveis” tendem a testar os pacotes tanto quanto as “estáveis”, a diferença aqui é que em uma distro “instáveis” o campo de numeração minor do versionamento é alterado também, enquanto nas distros “estáveis” apenas o campo patch é alterado

E ter pacotes antigos?

Aqui a situação é um pouco diferente: não só pode como deve, ao manter pacotes antigos apenas o campo patch no versionamento é alterado e isso é importante para se ter estabilidade

Uma distro bleeding edge pode ser estável?

Definitivamente não, mas calma, isso tem a ver com o significado de bleeding edge, que é ter tudo na última versão assim que lançado isso quebra os principais elementos que uma distro estável não quer quebrar: ABI e API

Então basta ser LTS, certo?

Pra entender essa questão, é necessário entender o que é LTS, LTS vem de Long Term Support, são versões chaves que algumas distribuições Point Release possuem, como o nome indica, essas versões possuem um tempo de suporte maior (daí o nome inclusive) e o que seria Point Release?

Point Release é quando uma distro lança versões e para você atualizar para a nova versão ou você formata ou abre mão de seus pacotes/repositórios customizados

Embora geralmente em distros LTS tendam a ser estáveis, isso não é necessariamente regra, o unico pacote que invariavelmente não vai ter troca nos campo major e minor é o libc todos os são passíveis de atualizações inclusive o kernel, não quer dizer que aconteça, mas nada impede

Se nada disso é, uma distro estável é o que então?

Simplesmente uma distro cuja API e ABI não mudam… Calma, é fácil de entender:

Praticamente todo software que te permite construir serviços em cima dele, vem com 3 campos na versão:

[Major].[Minor].[Patch]

Isso é o chamado “versionamento semântico”, o que significa a nível marketing não importa, mas a nível técnico sim, por exemplo, o 20.04.3, o 20 é o [Major], o 04 o campo [Minor] e por fim o 3 que é o [Patch], e o significado de cada um é:

  • [Patch] Quando o desenvolvedor corrige bugs, falhas de segurança, erros de tradução e por aí vai

  • [Minor] Quando se adiciona um novo recurso mas isso não atrapalha outros softwares, embora não quebre compatibilidade com API, uma alteração nesse campo caso seja uma biblioteca pode exigir que os projetos que dependam dela seja recompilados, pode quebrar a ABI

  • [Major] Quando o software inevitavelmente se torna incompatível com outros softwares, ela quebra API e ABI

Uma distro estável, é uma distro que só vai atualizar os pacotes no campo [patch] e embora isso pareça algo ruim, na verdade é uma boa coisa, note que você está recebendo atualizações de segurança, só não está de recursos, agora imagine a seguinte situação:

  • Você tem um servidor com milhões de acessos diariamente vindos do mundo inteiro,

Caso a distro alterasse o campo major, você tem que interromper o acesso de todo mundo pra conseguir atualizar e isso pode levar dias

Caso a distro atualize o campo minor você vai interromper por algumas horas

Nenhuma das duas é algo interessante, e é aí que as distros estáveis entram, elas fornecem atualizações de segurança e ao mesmo tempo garantem o princípio da disponibilidade. Mas aí fica a questão:

Uma hora o suporte acaba, e aí?

É aí que entram as distros instáveis: enquanto seu serviço está funcionando bonitinho você pode ir testando e adaptando o serviço a novas versões sem ter que interromper o funcionamento, quando acabar o suporte da versão da distro estável, a migração irá ocorrer em poucas horas

Conclusão

É aquela velha máxima, não existe melhor ou pior, existe apenas distros e estilos de versionamento que atendem melhor certos requisitos, e dizer que uma distro ou qualquer outro Software de instável, não significa estar desmerecendo o projeto, ou dizendo que tem muitos bugs, ou coisa do gênero, e o oposto é válido: ser estável não significa não ter bugs ou ter menos bugs, significa apenas evidenciar a forma como as atualizações são tratadas

15 curtidas