Por que os repositórios do Ubuntu não possuem as últimas versões do software?

132

Por que os pacotes nos repositórios oficiais do Ubuntu são mais antigos que as versões mais recentes (upstream) do Debian Sid, PPAs, os autores, etc.?

    
por Thomas Ward 15.06.2012 / 16:20

7 respostas

113

Uma versão do Ubuntu passa por vários estágios antes de chegar ao público como produto acabado:

  • Algum tempo antes de o Ubuntu lançar uma versão, ela congela seus pacotes em um determinado ponto.

  • Antes do lançamento, mas após o congelamento do pacote, o trabalho é feito principalmente para corrigir todos os erros e problemas que possam existir nesses pacotes. Novas versões de pacotes não são mais importadas para os repositórios após o congelamento de pacotes ou recursos.

  • Uma vez que o lançamento acontece, mudanças adicionais nesses pacotes só acontecem para correção de bugs e problemas de segurança. Não há mais atualizações feitas nos pacotes no repositório oficial, mesmo que novas versões dos pacotes sejam lançadas.

A nova versão dos pacotes está sendo importada consistentemente (do Debian) para a próxima versão do Ubuntu, até que o próximo congelamento aconteça e o mesmo processo se repita.

Como exemplo, você pode dar uma olhada no cronograma de lançamento de 12.04 .

Você pode ver que, apesar de 12.04 ter sido lançado em abril, em 12 de janeiro, algo foi chamado Freeze do Debian Free aconteceu.

Este é apenas o primeiro de muitos estágios de congelamento acontecendo antes do lançamento atual e significa que nesse ponto a importação de pacotes do Debian testing ou unstable para e inicia o trabalho neles para customizar e corrigir problemas com eles.

Nenhuma atualização é feita depois desse ponto em muitos pacotes e a versão que o pacote tinha naquele momento é a versão presente e mantida durante o tempo de vida de uma versão.

Portanto, mesmo que existam versões mais altas do mesmo pacote nos PPAs dos desenvolvedores ou nos repositórios do Ubuntu + 1, elas só serão incluídas na próxima versão do Ubuntu.

Isso é feito para estabilidade, segurança e funcionalidade. Novos pacotes de sangramento sendo importados o tempo todo para o repositório principal significariam problemas e muito mais problemas a serem resolvidos. Um congelamento na versão dos pacotes ajuda a resolver isso e a tornar o Ubuntu mais seguro e estável para o usuário final.

Uma nova versão do Ubuntu é lançada a cada 6 meses, então a cada 6 meses novos pacotes são preparados, testados, customizados e lançados com uma nova versão. Versões futuras de um pacote podem ser instaladas em seu sistema através de um PPA ou simplesmente baixando-o de um site, mas a versão do pacote no repositório oficial permanece a mesma.

Para mais compreensão e uma visão geral interessante do que aconteceu com o Ubuntu de 10.04 até o lançamento de 12.04, dê uma olhada em ReleaseSchedule - LTS para LTS e Página Stable Release Updates para uma visão geral completa e explicação de uma versão estável do Ubuntu.

    
por Bruno Pereira 15.06.2012 / 17:01
15

Duas razões. O primeiro é bastante óbvio: requer que um humano gaste tempo atualizando o pacote quando um novo fluxo ascendente é lançado. A segunda é que, se você estiver executando uma versão estável em oposição à versão de desenvolvimento atual, os pacotes não serão intencionalmente atualizados de maneira correta para evitar quebras. Veja link .

    
por psusi 15.06.2012 / 16:27
14

Os pacotes são congelados para o lançamento e não são atualizados posteriormente por vários motivos. Se novas versões foram lançadas no pós-lançamento, então a nova versão ...

  • pode trazer novos bugs, regredindo a funcionalidade que estava presente no momento do lançamento
  • precisa de mão de obra para empacotar, testar e fazer o upload
  • precisa do seu próprio conjunto de atualizações de segurança
  • precisaria de traduções atualizadas para sua interface do usuário
  • precisaria de documentação atualizada (e traduções)
  • torna o suporte técnico mais desafiador
  • pode incomodar os usuários que se acostumaram com os recursos da versão antiga
  • pode exigir dependências mais novas que poderiam quebrar outros aplicativos se eles fossem alterados no repositório
  • pode quebrar outros pacotes que dependem deste
  • pode quebrar scripts de usuário, modelos, ferramentas etc. criados para a versão antiga

Tudo o que foi dito, esteja ciente de que há casos em que o Ubuntu faz atualizações completas de versões de software no repositório. Firefox, por exemplo.

Além disso, há um repositório do ubuntu-backports que os usuários podem optar por atualizar os pacotes de software que não causarão problemas como os listados acima. Ele não está habilitado por padrão para que os usuários tenham que optar por ele, o que é feito para eliminar a surpresa de ter seu software alterado de você. Além disso, não é muito pessoal e, por isso, não sei com que frequência os pacotes recebem atualizações.

Além disso, a equipe do SRU recentemente atualizou as políticas um pouco, o que, esperamos, tornará um pouco mais simples obter atualizações de pacotes apenas com correção de bugs.

    
por Bryce 20.06.2012 / 10:32
11

Vou tentar responder suas perguntas com base em minhas experiências passadas em fóruns do ubuntu e no planeta ubuntu.

Acho que estou apenas imaginando como os repositórios apt são atualizados e por quem.

Os repositórios do APT são atualizados a partir da equipe de empacotamento no Ubuntu. A equipe de empacotamento obtém todos os pacotes upstream de desenvolvedores que fazem um teste inicial de empacotamento e outras coisas. Em seguida, a equipe de teste faz o teste final dando um sinal de ir. Mas a equipe de empacotamento e as equipes de testes são muito cautelosas quanto às dependências e seu lado afeta o sistema estável.

Quando há um atraso, é porque o desenvolvedor não enviou o release mais recente para o servidor relevante?

Se você vir as mudanças do upstream, existem milhares de desenvolvedores que querem empurrar seus pacotes. Mas nem todos são bem-sucedidos no fluxo principal, porque várias razões. Suponha que o aplicativo Gedit, uma versão 2.2 é adequado e funciona bem com o Dbus 2.1 e Gtk 2.4, etc. Onde a versão 2.4 do Gedit (muito novo) precisa do Gtk 2.5 e do Dbus2.3 para funcionar. Agora a equipe de teste e empacotamento (equipe de lançamento também) não aceita isso porque a alteração de um sistema existente com dbus antigo e gtk com o novo quebra tudo. Espero que você tenha chegado ao ponto de dependência.

Existe muito mais trabalho para o desenvolvedor em obter o release em um formulário que o repositório possa usar?

Não ao canal upstream. Mas para o canal de lançamento sim :).

P.S: Poderia haver algumas mudanças feitas no processo agora no canônico em comparação com o que foi explicado acima. Mas é mais ou menos o mesmo.

    
por Zenwalker 13.06.2012 / 19:46
11

Normalmente, as atualizações nas versões lançadas do Ubuntu são para segurança e correções de bugs, exemplos de tais erros incluem:

  • Bugs que podem, sob circunstâncias realistas, causar diretamente uma vulnerabilidade de segurança. Isso é feito pela equipe de segurança e documentado em SecurityTeam / UpdateProcedures.

  • Erros que representam regressões severas da versão anterior do Ubuntu. Isso inclui pacotes totalmente inutilizáveis, como ser desinstalável ou travar na inicialização.

  • Bugs que podem, sob circunstâncias realistas, causar diretamente uma perda de dados do usuário Bugs que não se encaixam nas categorias acima, mas (1) têm um patch obviamente seguro e (2) afetam um aplicativo em vez de pacotes críticos de infraestrutura (como o X.org ou o kernel).

  • Para versões de suporte a longo prazo, queremos ativar o novo hardware regularmente. Tais alterações são apropriadas, desde que possamos garantir que não afetem as atualizações no hardware existente. Por exemplo, modalias de drivers recém-introduzidos não devem se sobrepor a drivers enviados anteriormente. Novas versões de software comercial no arquivo de parceiros da Canonical.

    -FTBFS (Falha na criação da origem) também pode ser considerado. Por favor, note que no main o processo de liberação assegura que não há binários que não sejam construídos a partir de uma fonte atual. Geralmente esses erros só devem ser corrigidos em conjunto com outra correção de bug.

    -Para novas versões upstream de pacotes que fornecem novos recursos, mas não corrigem bugs críticos, um backport deve ser solicitado.

Extraído da excelente página da wiki StableReleaseUpdates .

    
por pl1nk 13.06.2012 / 19:38
6

A resposta aceita no link fossfreedom postado como comentário é muito boa.

Em geral, as versões de pacotes lançadas após a primeira parte do processo de desenvolvimento da nova versão não aparecem nos principais repositórios dessa versão, para que uma versão confiável do Ubuntu possa ser testada completamente.

Você pode encontrar alguns pacotes que serão liberados para o repositório backport se eles forem incorporados com sucesso em uma versão futura do Ubuntu e se os desenvolvedores acreditarem que ele também funcionará com os anteriores. Backports podem ser ativados e desativados na Central de Software (> Fontes de Software- > Guia Atualizações > Atualizações Não Suportadas)

    
por John S Gruber 30.06.2012 / 00:58
-3

A resposta não está completa.

Há SOME empacotado, do que pode ser instalado em uma versão de backport do Centro de Software. No lado direito da janela, à esquerda do botão Instalar / Alterar, há uma caixa de seleção onde você pode alterar a versão.

Exempli gratia: o padrão conky agora é 1.8.x e você tem 1.9.0 (precise-backports) como backport. Claro, os backports devem ser ativados primeiro.

Fonte: link

EDIT: Como indicado abaixo, nem todo pacote tem um backport, mas você pode ter um acesso antecipado, por vezes, se tiver sorte o suficiente.

    
por Benjamin 27.06.2012 / 01:48