Warum überspringt "do-release-upgrade" eine Version?

14

Ich antwortete auf diese Frage über do-release-upgradenicht ein Upgrade von 14,10-15,04 nur bis 15.10 erlaubt, ich nahm es aufgrund 15,04 Sein Ende des Lebens.

Ein Benutzer (@xangua) gab bekannt, dass es nicht möglich war, eine Veröffentlichung mit zu überspringen. do-release-upgradeIch habe diese Informationen überprüft, indem ich den Befehl auf meiner 14.04-Box ausgeführt habe, aber hier begann die Verwirrung.

Mein 14.04 will gerade auf 15.04 upgraden?

Natürlich macht dies meine Antwort ungültig, da 15.04 das Lebensende ist, aber warum scheint dieser Befehl Versionen zu überspringen, wenn nicht basierend auf dem Lebensende?

Es gibt keinen Hinweis darauf, dass beim Upgrade etwas von 14.10 heruntergeladen wird, und software-updaterUbuntu 15.04 steht jetzt zum Herunterladen zur Verfügung.

Mark Kirby
quelle
2
Es ist nicht normal, dass Ihr 14.04-System ein Upgrade auf 15.04 durchführen möchte, da dies nicht unterstützt wird. In den Versionshinweisen für 15.04 wird beispielsweise nur das Upgrade von 14.10 erwähnt. Wenn ich do-release-upgrademit meinem 14.04-System arbeite, wird "Keine neue Version gefunden" angezeigt, wie es normal ist, da ein 14.04-System immer nur auf 14.10 aktualisiert werden konnte, aber 14.10 ist jetzt EOL.
Fkraiem
1
Es muss also etwas Ungewöhnliches auf Ihrem System sein. Von was ist deine Version ubuntu-release-upgrader-core?
Fkraiem
1
Ich kann diese Informationen nicht mehr bereitstellen, da die Installation aufgrund von Fehlern mit dem Befehl fehlgeschlagen ist. Eine Neuinstallation war einfacher als die Behebung der Fehler, die durch das Stoppen des Upgrades verursacht wurden.
Mark Kirby
1
@fkraiem: Das Überspringen von Versionen wird unterstützt, da Repository-Manager Skripte erstellen können.
Braiam

Antworten:

12

Ihre ursprüngliche Vermutung war richtig. 15.04 wird bis zum 04.02.2016 unterstützt, daher do-release-upgradewird versucht, ein Upgrade auf die nächste unterstützte Version durchzuführen, die Sie bereits haben.

Hier ist die Beschreibung des normalen Upgradeaufforderungsmodus von /etc/update-manager/release-upgrades:

Überprüfen Sie, ob eine neue Version verfügbar ist. Wenn mehr als eine neue Version gefunden wird, versucht das Versions-Upgrade-Programm, auf die Version zu aktualisieren, die der aktuell ausgeführten Version unmittelbar folgt.

Wenn ich also am 14.04 bin, sollte es versuchen, mich auf 14.10 zu bringen, aber im Moment do-release-upgradewird versucht, das OP (und mich) stattdessen auf 15.04 zu bringen.

Also das Lesen durch /usr/lib/python3/dist-packages/DistUpgrade/MetaRelease.pyes sieht aus wie wir nicht unterstützte Versionen überspringen , wenn herauszufinden , was zu aktualisieren freigeben (wenn Sie den Entwickler - Flag verwenden):

    # 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

Ich sollte hinzufügen, dass ich nicht empfehle, dies zu umgehen do-release-upgrade -d. Als ich es mit probierte prompt=normal, bekam ich 404s, da 14.10 EoL ist. Ich denke auch, dass ich es in meinem Delirium versucht haben mussdo-release-upgrade -p , was mich direkt zum 16.04. Bringen wollte. Als ich merkte, dass es mich zum xenial brachte, war alles kaputt und ich musste aus der Fabrik restaurieren. Am Ende habe ich beschlossen, dass ich bis zum 16.04 warten und eine Neuinstallation machen werde.

Maluff
quelle
1
Haben Sie irgendetwas, um das zu belegen, oder haben Sie es einfach erraten?
Ken Sharp
1
Details hinzugefügt. Ich hatte das gleiche Problem wie OP.
Maluff
3
Solide Antwort auf eine Frage, von der ich dachte, dass sie nur im Dunkeln bleibt :)
Mark Kirby
2
Das in dieser hervorragenden Antwort beschriebene Verhalten gilt weiterhin und gilt auch für Upgrades über den Software Updater do-release-upgrade. Derzeit bieten 16.04-LTS-Systeme automatisch ein Upgrade auf 17.04 an , und zwar direkt , wobei 16.10 übersprungen wird, da es sich um das Ende der Lebensdauer handelt . Diese Antworten würden von dieser Korrektur profitieren - oder es könnte eine neue Antwort veröffentlicht werden , die das aktuelle Verhalten vollständig beschreibt. Möchtest du etwas posten?
Eliah Kagan
5

do-release-upgrade kennt sich mit "Jumping-Versionen" nicht aus. Der Upgrade-Plan wird einfach von den Ubuntu-Repository-Betreuern heruntergeladen. Dies ist in der README-Datei für Do-Release-Upgrades angegeben :

2) Das Upgrade-Tool muss in der Lage sein, aktualisierte Informationen zur Durchführung des Upgrades herunterzuladen (z. B. zusätzliche Schritte wie das Upgrade bestimmter Bibliotheken zuerst).

In der Spezifikation zu automatischen Upgrades :

Eine Meta-Release-Datei mit Informationen zu den verfügbaren Distributionen wird auf einem zentralen Server gespeichert und bei jedem Durchlauf des Update-Managers als If-Modified-Since -Datei getestet. Wird eine neue Version gefunden, zeigt der Update-Manager dies visuell an.

Dies ermöglicht ein nahtloses Upgrade von do-upgrade-release und anderen Tools.

Braiam
quelle