Por que os repositórios Ubuntu não têm as versões mais recentes do software?


145

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, autores, etc.?


2
Isso realmente acontece em qualquer distribuição, não apenas no Ubuntu.
dr01

9
@ dr01 Há distribuições que têm distribuições de rolamento que sempre obter atualizações - portanto, nem todas as distribuições em conformidade com esta questão, ou os ciclos de desenvolvimento do Ubuntu
Thomas Ward

Respostas:


120

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

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

  • Antes do lançamento de uma versão, mas após o congelamento do pacote, o trabalho é feito principalmente para corrigir todos os bugs 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.

  • Depois que o lançamento acontece, alterações adicionais nesses pacotes acontecem apenas 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.

Novas versões dos pacotes estão sendo importadas (do Debian) de forma consistente para a próxima versão do Ubuntu, até que o próximo congelamento ocorra e o mesmo processo se repita.

Como exemplo, você pode dar uma olhada na programação de lançamento do 12.04 .

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

Este é apenas o primeiro de muitos estágios de congelamento ocorridos antes do lançamento real e significa que, nesse ponto, a importação de pacotes dos testes Debian ou paradas instáveis ​​e o trabalho começa neles para personalizar e corrigir problemas com eles.

Nenhuma atualização é feita após esse ponto em muitos pacotes e a versão que o pacote tinha naquele momento é a versão presente e mantida durante a vida útil de uma versão.

Portanto, mesmo que existam versões superiores do mesmo pacote nos PPAs dos desenvolvedores ou nos repositórios Ubuntu + 1, elas serão incluídas apenas 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 tornar o Ubuntu mais seguro e mais estável para o usuário final.

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

Para obter mais entendimento e uma visão geral interessante do que aconteceu com o Ubuntu a partir do 10.04 até o lançamento do 12.04, consulte a página ReleaseSchedule - LTS para LTS e Atualizações de Versão Estável para obter uma visão geral e explicação completas de uma versão estável do Ubuntu.


2
Parece haver exceções a essa política, especialmente para navegadores da web (Firefox, Chromium). Embora mais de 95% dos pacotes sigam as indicações abaixo, o navegador da web pode ser o aplicativo mais usado para a maioria dos usuários.
dotpush

Se você deseja o software mais recente, use um repositório PPA do Launchpad.
iBug

@iBug ou use uma distribuição diferente como o Arch Linux ou o NixOS ou instale o Homebrew no seu sistema Ubuntu.
Boris

16

Duas razões. A primeira é bastante óbvia: requer que um ser humano gaste tempo atualizando o pacote quando um novo fluxo ascendente for lançado. A segunda é que, se você estiver executando uma versão estável, em oposição à versão atual de desenvolvimento, os pacotes NÃO serão intencionalmente atualizados intencionalmente, para evitar quebras. Veja http://wiki.ubuntu.com/StableReleaseUpdates .


3
"requer que um ser humano gaste tempo atualizando o pacote quando um novo upstream for lançado", isso é claramente falso, tudo pode ser automatizado. A verdadeira razão é a segunda que você mencionou.
gented

15

Os pacotes são congelados para a liberação e não são atualizados posteriormente por vários motivos. Se novos lançamentos foram lançados após o lançamento, a nova versão ...

  • pode trazer novos bugs, regredindo assim a funcionalidade que estava presente no momento do lançamento
  • precisa de mão de obra para empacotar, testar e fazer upload
  • precisa de 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 aos recursos da versão antiga
  • pode exigir dependências mais novas que podem interromper outros aplicativos se eles forem 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 isso dito, esteja ciente de que há casos em que o Ubuntu faz atualizações completas das versões de software no repositório. Firefox por exemplo.

Além disso, existe um repositório ubuntu-backports que os usuários podem optar por quais atualizações de pacotes de software que não causam problemas como os listados acima. Ele não está ativado por padrão, portanto, os usuários precisam optar por participar, o que é feito para eliminar a surpresa de ter seu software alterado sob você. Além disso, ele não possui muita equipe e, portanto, não sei com que frequência os pacotes realmente recebem atualizações.

Além disso, a equipe SRU atualizou recentemente um pouco as políticas, o que, com sorte, tornará um pouco mais simples a atualização de pacotes apenas com correção de erros.


11

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

  • Erros que podem, em 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 desinstaláveis ​​ou travando na inicialização.

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

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

    -FTBFS (falha ao compilar a partir da origem) também pode ser considerado. Observe que, principalmente, o processo de liberação garante que não haja binários que não sejam criados a partir de uma fonte atual. Normalmente, esses bugs devem ser corrigidos apenas em conjunto com outra correção.

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

Retirado da excelente página wiki StableReleaseUpdates .


11

Tentarei responder às suas perguntas com base nas minhas experiências anteriores nos fóruns do ubuntu e no ubuntu planet.

Acho que estou me perguntando como os repositórios do apt são atualizados e por quem.

Os repositórios do APT são atualizados pela equipe de empacotamento no Ubuntu. A equipe de empacotamento recebe todos os pacotes upstream dos 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 avanço. Mas a equipe de embalagem e as equipes de teste são muito cautelosas sobre as dependências e seu lado afeta o sistema estável.

Quando há um atraso, é porque o desenvolvedor não colocou a versão mais recente no servidor relevante?

Se você vir as mudanças anteriores, existem milhares de desenvolvedores que desejam enviar seus pacotes. Mas nem todos são bem-sucedidos no fluxo principal, isso ocorre por várias razões. Suponha que o aplicativo Gedit, uma versão 2.2 seja adequada e funcione bem com o Dbus 2.1 e o Gtk 2.4, etc. Onde a versão do Gedit 2.4 (muito nova) 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, pois alterar um sistema existente com dbus e gtk antigo com o novo quebra tudo. Espero que você tenha entendido o ponto da dependência do inferno.

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

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

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


6

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

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

Você pode descobrir que alguns pacotes são lançados no repositório de backports se forem incorporados com êxito em uma versão futura do Ubuntu e se os desenvolvedores acreditarem que ele também funcionará com versões anteriores. Os backports podem ser ativados e desativados no Centro de Software (Editar-> Fontes de Software-> Guia Atualizações-> Atualizações Não Suportadas)


11
Como mencionado em outros lugares, os backports são incomuns e não existem muitos.
Thomas Ward

-3

A resposta não está completa.

Existem alguns pacotes que podem ser instalados em uma versão de backport do Software Center. No lado direito da janela, à esquerda do botão Instalar / Alterar, existe uma caixa de seleção onde você pode alterar a versão.

Exemplo: o padrão conkyé agora 1.8.xe você tem lá 1.9.0 (precise-backports)como backport. Obviamente, os backports devem ser ativados primeiro.

Fonte: http://bugs.launchpad.net/ubuntu/+source/conky/+bug/1003727

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


3
Backports não estão disponíveis para cada pacote ...
papukaija
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.