do-release-upgrade
es parte del paquete "update-manager-core". El script parece determinar a qué versión se va a actualizar, intente averiguar si es compatible o no y se queje de esto último. - Si está convencido de que funciona, descarga el UpgradeTool específico de la versión y lo ejecuta.
Parte del paquete "update-manager-core" es el archivo /etc/update-manager/meta-release
, donde puede encontrar la URL http://changelogs.ubuntu.com/meta-release y allí encontrará la URL para que se descargue el UpgradeTool.
El tarball de UpgradeTool descargado está empaquetado desde el paquete fuente "ubuntu-release-Updader" (antes era "update-manager"). La versión corresponde a las últimas actualizaciones para la versión de destino.
La fuente tiene un antiguo archivo README de tiempos de lanzamiento verrugosos y canosos. Discute lo que se debe hacer durante una actualización de lanzamiento. También menciona un enlace a una propuesta UpgradeTool más detallada .
Enumero aquí las acciones mencionadas allí y compruebo si realmente se implementan:
- repositorio relacionado
- cambiar a nuevas entradas de sources.list
- eliminar repositorios desconocidos de terceros
- posiblemente intercambiar espejo (no implementado)
- paquete relacionado
- compruebe que no hay paquetes rotos antes de actualizar
- actualizar la versión actual antes de actualizar (
apt-get update
solo)
- eliminar e instalar paquetes específicos
- compruebe si {ubuntu, kubuntu, edubuntu} -desktop está instalado
- deshacerse de los granos viejos
- tener una lista negra de eliminación y una lista blanca
- eliminar o reemplazar paquetes obsoletos que existían en versiones anteriores
- relacionado con la configuración (posible en peculiaridades: ver más abajo)
- Agregar el usuario predeterminado a nuevos grupos (no hecho para las versiones que verifiqué)
- verifique algunos archivos de configuración
UpgradeTool se configura para cada versión utilizando los siguientes archivos (¡ ábralos para verlos!):
- DistUpgrade.cfg
- Configuración relacionada con UpgradeTool
- configuración relacionada con la versión
- repositorios (p. ej. [Fuentes] ValidMirrors)
- cambios personalizados ([Distro] PostInstallScript)
- paquetes especiales; procesado solo por DistUpgradeController.py:
- [Distro] RemoveObsoletes, ForcedObsoletes, BaseMetaPkgs, MetaPkgs
- [meta_package_name] ForcedObsoletes
- ... y por DistUpgradeCache.py:
- [Distro] MetaPkgs, RemovalBlacklist, RemoveEssentialOk, BadVersions, BaseMetaPkgs, PurgeObsoletes, Demotions, KeyDependencies
- [Distro y meta_package_name] KeepInstalledPkgs, KeepInstalledSection, PostUpgrade *
- [KernelRemoval] *
- DistUpgradeQuirks.py
- ejecuta (libera) funciones específicas (mismo archivo) y complementos (
plugins
directorio)
- las funciones deben tener nombres específicos (p
from_nattyPreCacheOpen()
. ej. ) y complementos de condition
atributos especiales (p. ej. *
o PostInitialUpdate
)
- una de esas funciones,
StartUpgrade()
es otra bolsa de sorpresas en sí misma: entre otras llamadas _applyPatches()
, que revisa los archivos en el patches
directorio
- todo esto no hace prácticamente nada en mi instalación (i386, paquetes no anteriores a natty-updates)
- más de DistUpgradeCache.py
- se ejecuta
get_kernel_list.sh
(no es de confianza) y se asegura de que esté instalado un núcleo
- algo de manejo sobre los controladores de Nvidia
Versiones marcadas:
- natty → onírico
- onírico → preciso
- preciso → confiable (final a partir del 18/04/2014)
- confiable → utópico (horas antes del lanzamiento el 23/10/2014)