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

14

Respondi a esta pergunta sobre do-release-upgradenão permitir uma atualização de 14.10 para 15.04 apenas para 15.10, presumi que era devido a 15.04 estar no fim da vida útil.

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

Meu 14.04 quer atualizar diretamente para 15.04?

É claro que isso invalida minha resposta, pois 15.04 é o fim da vida útil, mas por que esse comando parece estar pulando versões, se não baseado no final da vida útil?

Não há indicação de que algo do 14.10 esteja sendo baixado pela atualização e software-updater diz que o Ubuntu 15.04 já está disponível para download, alguns esclarecimentos sobre isso seriam ótimos.

Mark Kirby
fonte
2
Não é normal que o seu sistema 14.04 deseje atualizar para o 15.04, pois isso não é suportado. Por exemplo, as notas de versão do 15.04 mencionam apenas a atualização da 14.10. Quando executo do-release-upgrademeu sistema 14.04, ele diz "nenhuma nova versão encontrada", como é normal, já que um sistema 14.04 só pode ser atualizado para 14.10, mas 14.10 agora é EOL.
precisa saber é
1
Portanto, deve haver algo anormal no seu sistema. Qual é a sua versão ubuntu-release-upgrader-core?
precisa saber é
1
Não posso mais fornecer essas informações; a instalação foi interrompida devido a uma falha no comando; a reinstalação foi mais fácil do que corrigir os erros causados ​​pela interrupção da atualização.
Mark Kirby
1
@fkraiem, na verdade, ignorar versões é suportada, já que os gerenciadores de repositório podem "guiar" seu caminho.
Braiam

Respostas:

12

Seu palpite original estava certo. 15.04 é suportado até 04/02/2016, entãodo-release-upgrade está tentando atualizá-lo para a próxima versão suportada, em comparação com a que você possui.

Aqui está a descrição do modo de solicitação de atualização normal 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 tentará atualizar para a versão que sucede imediatamente à versão atualmente em execução.

Então, se eu estou no 14.04, ele deveria estar tentando me levar para as 14.10, mas agora do-release-upgradeestá tentando levar o OP (e eu) para o 15.04.

Portanto, lendo /usr/lib/python3/dist-packages/DistUpgrade/MetaRelease.py-a parece que pulamos versões não suportadas ao descobrir para qual versão atualizar (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 do-release-upgrade -d. Quando tentei prompt=normal, obtive 404s, pois 14.10 é EoL. Também acho que, no meu delírio, devo ter tentado do-release-upgrade -p, o que me levou diretamente ao 16.04. No momento em que percebi que estava me levando para xenial, tudo estava quebrado e eu tive que restaurar da fábrica. No final, decidi esperar até o 16.04 ser lançado e fazer uma nova instalação.

mmaluff
fonte
1
Você tem alguma coisa para apoiar isso ou você apenas adivinhou?
Ken afiada
1
Adicionados detalhes. Eu estava enfrentando o mesmo problema do OP.
precisa saber é
3
Resposta sólida a um pensamento pergunta que eu só iria cair em esquecimento :)
Mark Kirby
2
O comportamento descrito nesta excelente resposta ainda se aplica e se aplica a atualizações através do Atualizador de Software e também do-release-upgrade. Atualmente, os sistemas 16.04 LTS oferecem automaticamente a atualização para 17.04 , e o fazem diretamente , pulando a 16.10 porque é o fim da vida útil . Essas respostas se beneficiariam dessa correção - ou uma nova resposta que descreva completamente o comportamento atual pode ser postada. Deseja postar alguma coisa?
Elias Kagan
5

do-release-upgrade não sabe nada sobre as "versões saltadas". Ele simplesmente baixa o plano de atualização dos mantenedores do repositório Ubuntu. Isso é especificado no README do-release-upgrade :

2) A ferramenta de atualização deve ser capaz de baixar informações atualizadas sobre como executar a atualização (por exemplo, etapas adicionais, como atualizar certas bibliotecas primeiro)

Além disso, na especificação sobre atualizações automáticas :

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

É isso que permite que o upgrade de atualização e qualquer outra ferramenta atualizem sem problemas.

Braiam
fonte