Por que o 'do-release-upgrade' pula uma versão?

14

Eu respondi essa questão sobre do-release-upgrade não permitir um upgrade de 14.10 para 15.04 apenas para 15.10, presumi que era devido a 15.04 ser fim de vida.

Um usuário (@xangua) postou que não era possível pular uma versão com do-release-upgrade , então eu olhei para essas informações executando o comando na minha caixa 14.04, mas é aí que a confusão começou.

Meu 14.04 quer atualizar diretamente para 15.04?

É claro que isso invalida minha resposta, já que 15.04 é fim de vida, mas por que esse comando parece estar pulando versões, se não baseado em fim de vida?

Não há nenhuma indicação de que 14.10 está sendo baixada pelo upgrade e software-updater diz que o Ubuntu 15.04 está disponível para download, alguns esclarecimentos disso seriam ótimos.

    
por Mark Kirby 10.01.2016 / 15:55

2 respostas

11

Seu palpite original estava certo. 15.04 é suportado até 2016-02-04, por isso do-release-upgrade está tentando fazer o upgrade para a próxima versão compatível em comparação com a que você tem.

Esta é a descrição do modo normal de promoçăo de atualização em /etc/update-manager/release-upgrades :

  

Verifique se há uma nova versão disponível. Se mais de uma nova versão for encontrada, o atualizador da versão tentará atualizar para a liberação que suceder imediatamente à versão atualmente em execução.

Então, se eu estiver no 14.04, ele deve tentar me levar para 14.10, mas agora do-release-upgrade está tentando levar o OP (e eu) para o 15.04.

Portanto, lendo /usr/lib/python3/dist-packages/DistUpgrade/MetaRelease.py , parece que pulamos versões não suportadas ao descobrir qual versão atualizar para (a menos que você esteja usando o sinalizador de desenvolvedor):

    # then see what we can upgrade to
    upgradable_to = ""
    for dist in dists:
        if dist.date > current_dist.date:
            # Only offer to upgrade to an unsupported release if running
            # with useDevelopmentRelease, this way one can upgrade from an
            # LTS release to the next supported non-LTS release e.g. from
            # 14.04 to 15.04.
            if not dist.supported and not self.useDevelopmentRelease:
                continue
            upgradable_to = dist
            self._debug("new dist: %s" % upgradable_to)
            break

Devo acrescentar que não recomendo tentar contornar isso com do-release-upgrade -d . Quando tentei com prompt=normal , obtive 404s, já que 14.10 é EoL. Eu também acho que no meu delírio eu devo ter tentado do-release-upgrade -p , que tentou me levar direto para 16.04. Quando percebi que estava me levando para o xenial, tudo estava quebrado e eu tive que restaurar da fábrica. No final, decidi esperar até 16.04 ser lançado e fazer uma nova instalação.

    
por mmaluff 26.01.2016 / 06:34
5

do-release-upgrade não sabe nada sobre "versões de salto". Ele simplesmente faz o download do plano de atualização dos mantenedores do repositório do Ubuntu. Isso é especificado em ler-release-upgrade README :

  

2) A ferramenta de atualização deve poder baixar informações atualizadas      como realizar o upgrade (por exemplo, etapas adicionais, como a atualização      certas libs primeiro)

Além disso, na especificação sobre Upgrades automáticos :

  

Um arquivo de meta-release com informações sobre as distribuições disponíveis é armazenado em um servidor central e é If-Modified-Since testado em cada execução do gerenciador de atualização. Se uma nova versão for encontrada, o gerenciador de atualização mostrará isso visualmente.

Isto é o que permite que o upgrade do-upgrade e qualquer outra ferramenta seja atualizada sem problemas.

    
por Braiam 11.02.2016 / 14:30