do-release-upgrade
fait partie du package "update-manager-core". Le script semble déterminer dans quelle version vous allez effectuer la mise à niveau, essayez de savoir s’il est pris en charge ou non et vous plaindre de cette dernière. - S'il est convaincu de fonctionner, il télécharge UpgradeTool spécifique à la version et l'exécute.
Une partie du paquet "update-manager-core" est le fichier /etc/update-manager/meta-release
, où vous pouvez trouver l'URL lien et là vous trouvez l’URL de l’outil UpgradeTool à télécharger.
L’archive téléchargée UpgradeTool est fournie à partir du paquet source "ubuntu-release-upgrader" (avant "update-manager"). La version correspond aux dernières mises à jour pour la version cible.
La source a un ancien fichier README datant des périodes de publication verruqueuses et anciennes. Il discute de ce qui doit être fait lors d'une mise à niveau de la version. Il mentionne également un lien vers une proposition UpgradeTool plus détaillée .
Je liste ici les actions mentionnées et vérifie si elles sont réellement mises en œuvre:
- relatif au référentiel
- basculer vers de nouvelles entrées sources.list
- supprimer les référentiels tiers inconnus
- éventuellement swap mirror (non implémenté)
- package lié
- vérifiez qu'il n'y a pas de paquetages cassés avant la mise à niveau
- mettre à jour la version actuelle avant la mise à niveau (
apt-get update
seulement)
- supprimer et installer des packages spécifiques
- vérifiez si {ubuntu, kubuntu, edubuntu} -desktop est installé
- se débarrasser des anciens noyaux
- avoir une suppression de liste noire et -whitelist
- supprime ou remplace les paquets obsolètes qui existaient dans les versions précédentes
- Configuration liée (possible en quirks: voir ci-dessous)
- ajouter l'utilisateur par défaut à de nouveaux groupes (pas fait pour les versions que j'ai vérifiées)
- vérifier certains fichiers de configuration
L'outil UpgradeTool est configuré pour chaque version à l'aide des fichiers suivants (ouvrez-les pour voir!):
- DistUpgrade.cfg
- Configuration liée à UpgradeTool
- Configuration liée à la version
- dépôts (par exemple, [Sources] ValidMirrors)
- modifications personnalisées ([Distro] PostInstallScript)
- paquets spéciaux; traité uniquement par DistUpgradeController.py:
- [Distro] RemoveObsoletes, ForcedObsoletes, BaseMetaPkgs, MetaPkgs
- [meta_package_name] ForcedObsoletes
- ... et par DistUpgradeCache.py:
- [Distro] MetaPkgs, RemovalBlacklist, RemoveEssentialOk, BadVersions, BaseMetaPkgs, PurgeObsoletes, Demotions, KeyDependencies
- [Distro et meta_package_name] KeepInstalledPkgs, KeepInstalledSection, PostUpgrade *
- [KernelRemoval] *
- DistUpgradeQuirks.py
- exécute (libère) des fonctions spécifiques (même fichier) et des plugins (répertoire
plugins
)
Les fonctions - doivent avoir des noms spécifiques (p. ex.
from_nattyPreCacheOpen()
) et des plugins spéciaux condition
attributs (p. ex. *
ou PostInitialUpdate
)
- une de ces fonctions,
StartUpgrade()
, est une autre sacoche: entre autres, elle appelle _applyPatches()
, qui passe en revue les fichiers du répertoire patches
-
tout cela ne fait pratiquement rien sur mon installation (i386, des paquets plus anciens que natty-updates)
- plus de DistUpgradeCache.py
- exécute
get_kernel_list.sh
(pas en confiance) et vérifie qu'un noyau est installé
- quelques manipulations sur les pilotes Nvidia
Versions vérifiées:
- natty → oneiric
- onirique → précis
- précis → fiable (final au 2014-04-18)
- trusty → utopic (heures avant la publication le 23/10/2014)