A situação quanto ao Ubuntu se esclareceu: as declarações do fundador da Canonical estavam relacionadas ao funcionamento do seu repositório de aplicativos no que diz respeito a versões mais atualizadas de programas em desenvolvimento.
Mas a ideia de adotar o modelo rolling release é tão instigante que causou ondas de choque entre os usuários do Ubuntu ao longo das 24h em que o mal-entendido durou.
Um conceito tão interessante merece ser melhor compreendido, e eis a razão de dedicarmos hoje um post exclusivamente a apresentá-lo.
O modelo tradicional de versões de distribuições
A maneira tradicional de desenvolver software (incluindo distribuições Linux) envolve a publicação de versões, usualmente numeradas de forma sequencial, correspondendo a um momento “congelado” na história do ciclo de desenvolvimento daquele software.
No caso das distribuições Linux, frequentemente estas versões são lançadas de forma cíclica, em prazos menos ou mais definidos, precedidas por alguns lançamentos de teste (alfa, beta, release candidate, etc.) que permitem refinar a qualidade esperada do produto no ponto em que será efetivamente congelada uma versão.
Após o lançamento de uma versão, os desenvolvedores oferecem manutenção e atualização para os pacotes dela em caráter limitado – por exemplo, se surge um bug na versão do Firefox que foi incluída na versão da distribuição XYZ lançada há um ano, seus desenvolvedores usualmente corrigirão o bug na mesma versão do Firefox que havia sido originalmente lançada com aquela versão da distribuição, mesmo que haja versões mais recentes do Firefox disponíveis.
A razão é simples: uma distribuição Linux frequentemente é composta de várias centenas de softwares diferentes, e muito esforço é empregado para garantir que eles funcionem bem uns com os outros – trocar a versão de qualquer componente depois do sistema estar instalado pode alterar as interfaces entre os programas (parâmetros, sinais, arquivos de configuração, etc.) e comprometer o sistema como um todo.
Como consequência do conceito, os usuários vêem-se compelidos a atualizar seus sistemas como um todo, a cada nova versão da distribuição – ou resignar-se a usar versões antigas dos softwares incluídos. Há alternativas, como o uso de backports ou outras maneiras de trazer versões atualizadas de componentes para uma versão anterior de uma distribuição, mas elas são exceções.
A alternativa: rolling release
O modelo baseado em versões congeladas no tempo é o tradicional e com o qual a maioria das metodologias de desenvolvimento se sente naturalmente em casa. Mas a manutenção de distribuições Linux gera necessidades diferenciadas, e alguns grupos procuraram adotar uma alternativa, na forma do rolling release.
O rolling release substitui as versões sucessivamente congeladas por um desenvolvimento contínuo, baseado em atualizações menores e bem mais frequentes. Os desenvolvedores passam a trabalhar diretamente sobre uma árvore de desenvolvimento que é oferecida (via ferramentas de gerenciamento de pacotes) aos usuários finais de forma contínua.
No caso das distribuições rolling release, usualmente a mídia de instalação é apenas um snapshot dos repositórios em um dado momento, e logo após a instalação já pode haver uma sincronização ou atualização profunda em boa parte dos pacotes, dependendo do grau de atividade em seus repositórios.
Os usuários das distribuições rolling release deixam de estar expostos à desatualização natural que assola o modelo tradicional no final de cada ciclo de versão, mas em compensação ficam expostos aos eventuais problemas por mudanças em versões de pacotes que a forma usual de atualizar se esforça por evitar.
Mas para muitos usuários trata-se de uma escolha consciente muito mais do que de um risco calculado – distribuições rolling release como o Arch Linux e o PCLinuxOS vêm se notabilizando pela qualidade com que conseguem manter a estabilidade ao longo de suas atualizações.
Usuários de Gentoo, Foresight e aptosid, entre outras, também defendem o modelo, que talvez acabe mesmo sendo adotado por outras distribuições no futuro. Mas a Canonical confirma que não foi dessa vez que o seu bem-sucedido Ubuntu entrou para o clube!