O que o 'do-release-upgrade' realmente faz?

28

Sabemos que do-release-upgrade "faz uma atualização de lançamento". Mas em um nível um pouco menor, o que isso realmente faz?

Eu pretendo fazer uma atualização mais manual, por exemplo, a maneira do Debian: aptitude update e aptitude full-upgrade depois de configurar as fontes. Na verdade, pretendo fazê-lo totalmente interativo com aptitude . Mas isso me deixa curioso sobre o que else do-relase-upgrade , a não ser usar a minha sources.list.

    
por Robert Siemer 23.01.2014 / 09:52

1 resposta

29

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 especiais condition attributes (por exemplo, * ou PostInitialUpdate )
    • uma dessas funções, StartUpgrade() , é outro próprio pacote: entre outros, chama _applyPatches() , que examina os arquivos no diretório patches
    • tudo isso faz praticamente nada na minha instalação (i386, pacotes não mais antigos que natty-updates)
  • 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

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)
por Robert Siemer 23.01.2014 / 09:52