do-release-upgrade
ist Teil des Pakets "Update-Manager-Core". Das Skript scheint zu bestimmen, auf welches Release Sie ein Upgrade durchführen, zu prüfen, ob es unterstützt wird oder nicht, und sich über letzteres zu beschweren. - Wenn es funktioniert, lädt es das release-spezifische UpgradeTool herunter und führt es aus.
Bestandteil des "Update-Manager-Core" -Pakets ist die Datei /etc/update-manager/meta-release
, in der Sie die URL http://changelogs.ubuntu.com/meta-release und die URL für den Download des UpgradeTools finden.
Der heruntergeladene UpgradeTool-Tarball wird aus dem Quellpaket „ubuntu-release-upgrader“ (vor „update-manager“) gepackt. Die Version entspricht den neuesten Updates für die Zielversion.
Die Quelle enthält eine alte README-Datei aus der Warty- und Hoary-Release-Zeit. Es wird erläutert, was während eines Release-Upgrades zu tun ist. Es wird auch ein Link zu einem detaillierteren UpgradeTool-Vorschlag erwähnt .
Ich liste hier die dort genannten Aktionen auf und überprüfe, ob sie tatsächlich ausgeführt werden:
- Repository bezogen
- Zu neuen Einträgen in der sources.list wechseln
- Entfernen Sie unbekannte Repositorys von Drittanbietern
- evtl. Tauschspiegel (nicht implementiert)
- paketbezogen
- Stellen Sie vor dem Upgrade sicher, dass keine Pakete beschädigt sind
- Aktuelle Version vor dem Upgrade aktualisieren (
apt-get update
nur)
- Entfernen und Installieren bestimmter Pakete
- Überprüfen Sie, ob der {ubuntu, kubuntu, edubuntu} -Desktop installiert ist
- alte kerne loswerden
- habe eine entfernungs-blacklist und -whitelist
- Entfernen oder Ersetzen veralteter Pakete, die in früheren Releases vorhanden waren
- konfigurationsbezogen (möglich bei Macken: siehe unten)
- Hinzufügen des Standardbenutzers zu neuen Gruppen (nicht für die von mir überprüften Versionen durchgeführt)
- Überprüfen Sie einige Konfigurationsdateien
Das UpgradeTool wird für jedes Release mit den folgenden Dateien konfiguriert (öffnen Sie diese, um zu sehen!):
- DistUpgrade.cfg
- UpgradeTool-bezogene Konfiguration
- Release-bezogene Konfiguration
- Repositories (zB [Sources] ValidMirrors)
- benutzerdefinierte Änderungen ([Distro] PostInstallScript)
- spezielle Pakete; Nur von DistUpgradeController.py verarbeitet:
- [Distro] RemoveObsoletes, ForcedObsoletes, BaseMetaPkgs, MetaPkgs
- [meta_package_name] ForcedObsoletes
- ... und von DistUpgradeCache.py:
- [Distro] MetaPkgs, RemovalBlacklist, RemoveEssentialOk, BadVersions, BaseMetaPkgs, PurgeObsoletes, Demotions, KeyDependencies
- [Name des Distributions- und Metapakets] KeepInstalledPkgs, KeepInstalledSection, PostUpgrade *
- [KernelRemoval] *
- DistUpgradeQuirks.py
- Läuft (Release) spezifische Funktionen (gleiche Datei) und Plugins (
plugins
Verzeichnis)
- Funktionen müssen bestimmte Namen (zB
from_nattyPreCacheOpen()
) und Plugins spezielle condition
Attribute (zB *
oder PostInitialUpdate
) haben
- eine dieser Funktionen,
StartUpgrade()
ist eine weitere Greifer-Tasche selbst: unter anderem es nennt _applyPatches()
, die in der über die Dateien geht patches
Verzeichnis
- alle diese machen so ziemlich nichts auf meiner installation (i386, pakete nicht älter als natty-updates)
- mehr von DistUpgradeCache.py
- läuft
get_kernel_list.sh
(nicht vertrauenswürdig) und stellt sicher, dass ein Kernel installiert ist
- etwas Umgang mit Nvidia-Treibern
Überprüfte Versionen:
- natty → oneiric
- oneiric → präzise
- präzise → vertrauenswürdig (endgültig vom 18.04.2014)
- vertrauenswürdig → utopisch (Stunden vor Veröffentlichung am 23.10.2014)