Почему '-обновление-версии' пропускает версию?

Я ответил на этот вопрос о do-release-upgrade не позволяя обновление 14,10 к 15,04 только к 15,10, я предположил, что это происходило из-за 15,04 являющийся концом жизни.

Пользователь (@xangua) отправил это, не было возможно пропустить выпуск с do-release-upgrade, таким образом, я заглянул к этой информации путем выполнения команды на моих 14,04 полях, но это - то, где беспорядок начался.

Мои 14.04 хотят обновить прямо до 15,04?

Конечно, это делает недействительным мой ответ, поскольку 15.04 конец жизни, но почему эта команда, кажется, пропускает версии, если не на основе конца жизни?

Нет никакого признака, любая вещь от 14,10 загружается обновлением и software-updater говорит, что Ubuntu 15.04 теперь доступна для скачивания, некоторое разъяснение этого было бы большим.

14
задан 13 April 2017 в 05:24

2 ответа

Ваше первоначальное предположение было верным. 15.04 поддерживается до 2016-02-04, поэтому do-release-upgrade пытается обновить вас до следующей поддерживаемой версии по сравнению с той, которая у вас есть.

Вот описание нормального режима запроса на обновление из /etc/update-manager/release-upgrades:

Проверьте, доступен ли новый выпуск. Если найдено более одного нового выпуска, средство обновления выпуска попытается выполнить обновление до выпуска, который немедленно следует за текущим выпуском.

Поэтому, если я нахожусь на 14.04, он должен попытаться перевести меня на 14.10, но прямо сейчас do-release-upgrade пытается вместо этого перевести ОП (и меня) на 15.04.

Итак, читая /usr/lib/python3/dist-packages/DistUpgrade/MetaRelease.py, мы, похоже, пропускаем неподдерживаемые выпуски, когда выясняем, какую версию нужно обновить (если вы не используете флаг разработчика):

    # 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

Я должен добавить, что я делаю Не рекомендую пытаться обойти это с do-release-upgrade -d. Когда я попробовал это с prompt=normal, я получил 404 с, так как 14.10 - EoL. Я также думаю, что в своем бреде я, должно быть, пытался do-release-upgrade -p, который пытался привести меня прямо к 16.04. К тому времени, когда я понял, что это привело меня в xenial, все было сломано, и я должен был восстановить с завода. В конце концов я решил подождать до 16.04 и выпустить новую установку.

12
ответ дан 23 November 2019 в 03:01

-обновление-версии ничего не знает о "переходящих версиях". Это просто загружает план обновления от специалистов по обслуживанию репозитория Ubuntu. Это указано в -обновление-версии README :

2) инструмент обновления должен смочь к , загрузка обновила информацию, как выполнить обновление (например, дополнительные шаги как обновление бесспорного освобождает сначала)

кроме того, в спецификации приблизительно Автоматические обновления :

метафайл версии А с информацией о доступных дистрибутивах хранится на центральном сервере, и это - If-Modified-Since, протестированный на каждом выполнении менеджера обновления. Если новая версия найдена, менеджер обновления показывает это визуально.

Это - то, что позволяет do-upgrade-release и любому другому инструменту обновлять беспрепятственно.

5
ответ дан 23 November 2019 в 03:01

Другие вопросы по тегам:

Похожие вопросы: