Чому `do-release-upgrade` пропускає версію?


14

Я відповів на це запитання про 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, деякі роз'яснення цього були б чудовими.


2
Не нормально, що ваша система 14.04 хоче оновити до 15.04, оскільки це не підтримується. Наприклад, у примітках до випуску до 15.04 згадується лише оновлення з 14.10. Коли я працюю do-release-upgradeна моїй системі 14.04, він говорить "не знайдено нового випуску", як це нормально, оскільки система 14.04 могла бути коли-небудь оновлена ​​до 14.10, але 14.10 тепер EOL.
fkraiem

1
Отже, у вашій системі повинно бути щось ненормальне. Яка ваша версія ubuntu-release-upgrader-core?
fkraiem

1
Я більше не можу надати цю інформацію, що встановлення пішло через заплутання з командою, перевстановити було простіше, ніж виправити помилки, спричинені зупинкою оновлення.
Марк Кірбі

1
@fkraiem насправді, пропускаються версії підтримуються, оскільки менеджери сховищ можуть "скриптувати" свій шлях.
Брайам

Відповіді:


12

Ваша первісна здогадка була правильною. 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. До того часу, як я зрозумів, що це везе мене до ксеніалу, все було зламано, і мені довелося відновити з заводу. Врешті-решт я вирішив зачекати, поки вийде 16.04 і зроблять нову установку.


1
Чи є у вас щось на цьому, чи ви просто здогадалися?
Кен Шарп

1
Додані деталі. Я зіткнувся з тим же питанням, що і ОП.
mmaluff

3
Повна відповідь на запитання, яке я думав, що просто потрапить у невідомість :)
Марк Кірбі

2
Поведінка, описана в цій чудовій відповіді, як і раніше, стосується і оновлень за допомогою Software Updater, а також do-release-upgrade. Наразі системи 16.04 LTS автоматично пропонують оновити до 17.04 , і вони зроблять це безпосередньо , пропускаючи 16.10, оскільки це закінчено термін служби . Ці відповіді отримали б користь від цього виправлення - або може бути розміщена нова відповідь, що повністю описує поточну поведінку. Ви хочете щось опублікувати?
Елія Каган

5

do-release-upgrade не знає нічого про "стрибаючі версії". Він просто завантажує план оновлення з сервісів репозиторію Ubuntu. Це вказано в RE-README :

2) Інструмент оновлення повинен мати можливість завантажувати оновлену інформацію про те, як здійснити оновлення (наприклад, додаткові кроки, такі як спочатку оновлення певних libs)

Також у специфікації про автоматичні оновлення :

Файл метавипуску з інформацією про доступні дистрибутиви зберігається на центральному сервері, і він If-Modified-Since тестується при кожному запуску менеджера оновлень. Якщо знайдена нова версія, менеджер оновлень показує це візуально.

Це те, що дозволяє зробити оновлення до версії та будь-який інший інструмент безперешкодно оновити.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.