Cosa fa realmente `do-release-upgrade`?


30

Sappiamo che do-release-upgrade"aggiorna una versione". Ma a un livello leggermente inferiore cosa fa davvero?

Ho intenzione di fare un aggiornamento più manuale, ad esempio nel modo Debian: aptitude updatee aptitude full-upgradedopo aver impostato i sorgenti. In realtà, ho intenzione di farlo completamente interattivo con aptitude. Ma questo mi lascia incuriosito da cos'altro do-relase-upgrade , tranne che per aver eliminato il mio elenco fonti.

Risposte:


32

do-release-upgradefa parte del pacchetto "update-manager-core". Lo script sembra determinare a quale versione si intende eseguire l'aggiornamento, provare a scoprire se è supportato o meno e lamentarsi di quest'ultimo. - Se è convinto di funzionare, scarica UpgradeTool specifico della versione e lo esegue.

Parte del pacchetto "update-manager-core" è il file /etc/update-manager/meta-release, dove puoi trovare l'URL http://changelogs.ubuntu.com/meta-release e lì troverai l'URL da scaricare per UpgradeTool.

Il tarball di UpgradeTool scaricato è impacchettato dal pacchetto sorgente "ubuntu-release-upgrader" (prima che fosse "update-manager"). La versione corrisponde agli ultimi aggiornamenti per la versione di destinazione.

La fonte ha un vecchio README dai tempi di rilascio verrucosi e cari. Discute cosa dovrebbe essere fatto durante un aggiornamento di rilascio. Menziona anche un collegamento a una proposta UpgradeTool più dettagliata .

Elenco qui di seguito le azioni menzionate e ho verificato se sono effettivamente implementate:

  • relativo al repository
    • passa a nuove voci sources.list
    • rimuovere repository di terze parti sconosciuti
    • possibilmente scambiare mirror (non implementato)
  • relativo al pacchetto
    • controlla che non ci siano pacchetti rotti prima dell'aggiornamento
    • aggiorna la versione corrente prima dell'aggiornamento ( apt-get updatesolo)
    • rimuovere e installare pacchetti specifici
    • controlla se {ubuntu, kubuntu, edubuntu} -desktop è installato
    • sbarazzarsi di vecchi kernel
    • avere una lista nera e lista bianca di rimozione
    • rimuovere o sostituire i pacchetti obsoleti esistenti nelle versioni precedenti
  • relativo alla configurazione (possibile nelle stranezze: vedi sotto)
    • aggiunta dell'utente predefinito a nuovi gruppi (non fatto per le versioni che ho controllato)
    • controlla alcuni file di configurazione

UpgradeTool è configurato per ogni versione usando i seguenti file ( aprili per vedere!):

  • DistUpgrade.cfg
    • Configurazione relativa a UpgradeTool
    • configurazione relativa al rilascio
    • repository (es. [Sources] ValidMirrors)
    • modifiche personalizzate ([Distro] PostInstallScript)
    • pacchetti speciali; elaborato solo da DistUpgradeController.py:
      • [Distro] RemoveObsoletes, ForcedObsoletes, BaseMetaPkgs, MetaPkgs
      • [meta_package_name] ForcedObsoletes
    • ... e da DistUpgradeCache.py:
      • [Distro] MetaPkgs, RemovalBlacklist, RemoveEssentialOk, BadVersions, BaseMetaPkgs, PurgeObsoletes, Demotions, KeyDependencies
      • [Distro e meta_package_name] KeepInstalledPkgs, KeepInstalledSection, PostUpgrade *
      • [KernelRemoval] *
  • DistUpgradeQuirks.py
    • esegue (rilascia) funzioni specifiche (stesso file) e plugin ( pluginsdirectory)
    • le funzioni devono avere nomi specifici (es. from_nattyPreCacheOpen()) e conditionattributi speciali plugin (es. *o PostInitialUpdate)
    • una di quelle funzioni, StartUpgrade()è un altro grab-bag stesso: tra l'altro chiama _applyPatches(), che va oltre i file nella patchesdirectory
    • tutti questi non fanno praticamente nulla sulla mia installazione (i386, pacchetti non più vecchi di natty-updates)
  • altro da DistUpgradeCache.py
    • funziona get_kernel_list.sh(non è affidabile) e si assicura che sia installato un kernel
    • un po 'di gestione sui driver Nvidia

Versioni controllate:

  • natty → onirico
  • onirico → preciso
  • preciso → fidato (final al 18-04-2014)
  • fidato → utopico (ore prima della pubblicazione il 23-10-2014)

3
Ogni volta che ho usato do-release-upgrade ho finito con un sistema non avviabile :)
user205301

Come esempi di cose gestisce do-release-upgrade: driver binari nvidia, modifiche multiarch, ndiswrapper, aggiunta / rimozione di architetture e tipi di kernel (es
Deprecando il

@NGRhodes il tuo commento è troppo vago per me: ndiswrapper è stato un caso speciale tornato in aula, non in questi giorni. Nessuna architettura viene aggiunta o rimossa (ad eccezione di amd64, che aggiunge i386 come straniero, che si copre con "modifiche multiarch" credo). - Nulla è "deprecato": i pacchetti vengono rimossi o meno.
Robert Siemer,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.