do-release-upgrade
jest częścią pakietu „update-manager-core”. Skrypt zdaje się określać, do której wersji zamierzasz dokonać aktualizacji, spróbuj dowiedzieć się, czy jest obsługiwany, czy nie i narzekać na to drugie. - Jeśli jest przekonany do działania, pobiera narzędzie UpgradeTool dla danej wersji i uruchamia je.
Częścią pakietu „update-manager-core” jest plik /etc/update-manager/meta-release
, w którym można znaleźć adres URL http://changelogs.ubuntu.com/meta-release i tam znajduje się adres URL do pobrania narzędzia UpgradeTool.
Pobrane archiwum UpgradeTool jest pakowane z pakietu źródłowego „ubuntu-release-upgradeader” (wcześniej był to „manager aktualizacji”). Wersja odpowiada najnowszym aktualizacjom wersji docelowej.
Źródło ma stary plik README pochodzący z wartowskich i srogich czasów wydania. Omówiono, co należy zrobić podczas aktualizacji wersji. Wspomina również link do bardziej szczegółowej propozycji UpgradeTool .
Podaję tutaj wymienione tam działania i sprawdziłem, czy są one faktycznie realizowane:
- związane z repozytorium
- przejdź do nowych źródeł. listy
- usuń nieznane repozytoria stron trzecich
- ewentualnie zamień lustro (nie zaimplementowane)
- związane z pakietem
- sprawdź, czy nie ma uszkodzonych pakietów przed aktualizacją
- zaktualizuj bieżącą wersję przed aktualizacją (
apt-get update
tylko)
- usuń i zainstaluj określone pakiety
- sprawdź, czy zainstalowano {ubuntu, kubuntu, edubuntu} -desktop
- pozbyć się starych jąder
- mieć czarną listę usuwania i białą listę
- usuń lub zamień przestarzałe pakiety, które istniały we wcześniejszych wersjach
- związane z konfiguracją (możliwe w dziwactwach: patrz poniżej)
- dodawanie domyślnego użytkownika do nowych grup (nie zrobione dla wersji, które sprawdziłem)
- sprawdź niektóre pliki konfiguracyjne
UpgradeTool jest skonfigurowany dla każdej wersji przy użyciu następujących plików (otwórz je, aby zobaczyć!):
- DistUpgrade.cfg
- Konfiguracja związana z UpgradeTool
- konfiguracja związana z wydaniem
- repozytoria (np. [Źródła] ValidMirrors)
- zmiany niestandardowe ([Distro] PostInstallScript)
- pakiety specjalne; przetwarzane tylko przez DistUpgradeController.py:
- [Distro] RemoveObsoletes, ForcedObsoletes, BaseMetaPkgs, MetaPkgs
- [meta_package_name] ForcedObsoletes
- ... oraz przez DistUpgradeCache.py:
- [Distro] MetaPkgs, RemovalBlacklist, RemoveEssentialOk, BadVersions, BaseMetaPkgs, PurgeObsoletes, Demotions, KeyDependencies
- [Distro and meta_package_name] KeepInstalledPkgs, KeepInstalledSection, PostUpgrade *
- [KernelRemoval] *
- DistUpgradeQuirks.py
- uruchamia (wydaje) określone funkcje (ten sam plik) i wtyczki (
plugins
katalog)
- funkcje muszą mieć określone nazwy (np.
from_nattyPreCacheOpen()
) i specjalne condition
atrybuty wtyczek (np. *
lub PostInitialUpdate
)
- jedna z tych funkcji
StartUpgrade()
to kolejna sama grab-bag: między innymi wywołuje _applyPatches()
, która przegląda pliki w patches
katalogu
- wszystko to robi prawie nic w mojej instalacji (i386, pakiety nie starsze niż natty-updates)
- więcej z DistUpgradeCache.py
- działa
get_kernel_list.sh
(nie jest zaufany) i upewnia się, że zainstalowane jest jedno jądro
- trochę obsługi sterowników Nvidii
Sprawdzone wersje:
- natty → oneiric
- oniryczny → precyzyjny
- precyzyjne → sprawdzone (ostateczne z 18.04.2014)
- zaufany → utopic (godziny przed wydaniem w dniu 23.10.2014)