do-release-upgrade
faz parte do pacote “update-manager-core”. O script parece determinar para qual versão você vai fazer o upgrade, tentar descobrir se ele é compatível ou não e reclamar do último. - Se estiver convencido de trabalhar, ele faz o download do UpgradeTool específico da versão e o executa.
Parte do pacote "update-manager-core" é o arquivo /etc/update-manager/meta-release
, onde você pode encontrar a URL link e lá você encontra o URL para o UpgradeTool para download.
O tarball UpgradeTool baixado é empacotado do pacote de origem “ubuntu-release-upgrader” (antes de ser “update-manager”). A versão corresponde às atualizações mais recentes para o release de destino.
A origem tem um README antigo de tempos de liberação warty e hoary. Ele discute o que deve ser feito durante uma atualização de lançamento. Ele também menciona um link para uma proposta de UpgradeTool mais detalhada .
Eu listo aqui as ações mencionadas e verifiquei se elas estão realmente implementadas:
- repositório relacionado
- mude para novas entradas de sources.list
- remover repositórios de terceiros desconhecidos
- possivelmente espelho de troca (não implementado)
- pacote relacionado
- verifique se não há pacotes quebrados antes de atualizar
- atualize a versão atual antes de atualizar (
apt-get update
apenas) - remova e instale pacotes específicos
- verifique se o {ubuntu, kubuntu, edubuntu} -desktop está instalado
- livra-se dos kernels antigos
- tem uma lista negra e uma lista branca de remoção
- remover ou substituir pacotes obsoletos que existiam em versões anteriores
- configuração relacionada (possível em peculiaridades: veja abaixo)
- adicionando o usuário padrão a novos grupos (não feito para as versões que eu verifiquei)
- verifique alguns arquivos de configuração
O UpgradeTool é configurado para cada versão usando os seguintes arquivos (abra-os para ver!):
- DistUpgrade.cfg
- Configuração relacionada ao UpgradeTool
- configuração relacionada ao lançamento
- repositórios (por exemplo, [Fontes] ValidMirrors)
- alterações personalizadas ([Distro] PostInstallScript)
- pacotes especiais; processado apenas pelo DistUpgradeController.py:
- [Distro] RemoveObsoletes, ForcedObsoletes, BaseMetaPkgs, MetaPkgs
- [meta_package_name] ForcedObsoletes
- ... e pelo DistUpgradeCache.py:
- [Distro] MetaPkgs, RemovalBlacklist, RemoveEssentialOk, BadVersions, BaseMetaPkgs, PurgeObsoletes, Demotions, KeyDependencies
- [Distro e meta_package_name] KeepInstalledPkgs, KeepInstalledSection, PostUpgrade *
- [KernelRemoval] *
- DistUpgradeQuirks.py
- executa (libera) funções específicas (mesmo arquivo) e plugins (
plugins
directory)
As funções - devem ter nomes específicos (por exemplo,
from_nattyPreCacheOpen()
) e plug-ins especiaiscondition
attributes (por exemplo,*
ouPostInitialUpdate
) - uma dessas funções,
StartUpgrade()
, é outro próprio pacote: entre outros, chama_applyPatches()
, que examina os arquivos no diretóriopatches
- tudo isso faz praticamente nada na minha instalação (i386, pacotes não mais antigos que natty-updates)
- executa (libera) funções específicas (mesmo arquivo) e plugins (
- mais em DistUpgradeCache.py
- executa
get_kernel_list.sh
(não em confiança) e certifica-se de que um kernel esteja instalado - alguma manipulação sobre drivers da Nvidia
- executa
Versões verificadas:
- natty → onírico
- oneiric → preciso
- preciso → confiável (final a partir de 2014-04-18)
- confiável → utópico (horas antes do lançamento em 2014-10-23)