Que fait vraiment «do-release-upgrade»?


30

Nous savons que do-release-upgrade«fait une mise à niveau de version». Mais à un niveau un peu inférieur, que fait-il vraiment?

Je prévois de faire une mise à jour plus manuelle, par exemple la manière Debian: aptitude updateet aptitude full-upgradeaprès avoir configuré les sources. En fait, je prévois de le faire entièrement interactif avec aptitude. Mais cela me laisse curieux de savoir quoi d' autre do-relase-upgrade , sauf arroser ma source.list.

Réponses:


32

do-release-upgradefait partie du package «update-manager-core». Le script semble déterminer vers quelle version vous allez mettre à niveau, essayer 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 le UpgradeTool spécifique à la version et l'exécute.

Une partie du package «update-manager-core» est le fichier /etc/update-manager/meta-release, où vous pouvez trouver l'URL http://changelogs.ubuntu.com/meta-release et là vous trouvez l'URL pour le UpgradeTool à télécharger.

L'archive téléchargée UpgradeTool est empaquetée à partir du paquet source "ubuntu-release-upgrader" (avant c'était "update-manager"). La version correspond aux dernières mises à jour de la version cible.

La source a un vieux README des temps de sortie verruqueux et hoary. Il explique ce qui doit être fait lors d'une mise à niveau de version. Il mentionne également un lien vers une proposition UpgradeTool plus détaillée .

Je liste ici les actions mentionnées ici et vérifie si elles sont réellement mises en œuvre:

  • lié au référentiel
    • passer à de nouvelles entrées sources.list
    • supprimer les référentiels tiers inconnus
    • éventuellement échanger le miroir (non implémenté)
  • lié au package
    • vérifiez qu'il n'y a pas de paquets cassés avant la mise à niveau
    • mettre à jour la version actuelle avant la mise à niveau ( apt-get updateuniquement)
    • supprimer et installer des packages spécifiques
    • vérifier si {ubuntu, kubuntu, edubuntu} -desktop est installé
    • se débarrasser des vieux noyaux
    • avoir une liste noire et une liste blanche de suppression
    • supprimer ou remplacer les packages obsolètes qui existaient dans les versions antérieures
  • lié à la configuration (possible dans les bizarreries: 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

Le 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
    • référentiels (par exemple [Sources] ValidMirrors)
    • modifications personnalisées ([Distro] PostInstallScript)
    • forfaits 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 ( pluginsrépertoire)
    • les fonctions doivent avoir des noms spécifiques (par exemple from_nattyPreCacheOpen()) et des conditionattributs spéciaux de plugins (par exemple *ou PostInitialUpdate)
    • une de ces fonctions, StartUpgrade()est un autre sac à main lui-même: entre autres, il appelle _applyPatches(), qui parcourt les fichiers du patchesrépertoire
    • tout cela ne fait pratiquement rien sur mon installation (i386, packages pas plus anciens que natty-updates)
  • plus de DistUpgradeCache.py
    • s'exécute get_kernel_list.sh(pas en fidèle) et s'assure qu'un noyau est installé
    • une certaine manipulation sur les pilotes Nvidia

Versions vérifiées:

  • natty → onirique
  • onirique → précis
  • précis → fidèle (final au 18/04/2014)
  • fidèle → utopique (heures avant la sortie le 2014-10-23)

3
Chaque fois que j'utilise do-release-upgrade, je me retrouve avec un système non amorçable :)
user205301

Comme exemples de choses que la mise à niveau de do-release gère: pilotes binaires nvidia, changements multiarchives, ndiswrapper, ajout / suppression d'architectures et de types de noyau (par exemple, dépréciation du noyau du serveur)
NGRhodes

@NGRhodes votre commentaire est trop vague pour moi: ndiswrapper était un cas spécial de retour dans fougueux, pas ces jours-ci. Aucune architecture n'est ajoutée ou supprimée (sauf pour amd64, qui ajoute i386 en tant qu'étranger, que vous recouvrez de «changements multiarchives» je suppose). - Rien n'est «obsolète»: les packages sont supprimés ou non.
Robert Siemer
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.