Что на самом деле делает `do-release-upgrade`?
Мы знаем это do-release-upgrade
"Делает обновление релиза". Но на немного более низком уровне, что это действительно делает?
Я планирую сделать более ручное обновление, например, путем Debian: aptitude update
а также aptitude full-upgrade
после настройки источников. На самом деле, я планирую сделать это полностью интерактивно с aptitude
, Но это оставляет меня любопытным о том, что еще do-relase-upgrade
делает, кроме как потерять мой источник. список.
1 ответ
do-release-upgrade
является частью пакета "update-manager-core". Сценарий, кажется, определяет, к какому выпуску вы собираетесь перейти, попытайтесь выяснить, поддерживается ли он или нет, и жаловаться на последний. - Если он убежден, что работает, он загружает специфичный для релиза UpgradeTool и запускает его.
В состав пакета "update-manager-core" входит файл /etc/update-manager/meta-release
, где вы можете найти URL http://changelogs.ubuntu.com/meta-release и там вы найдете URL для UpgradeTool для загрузки.
Загруженный архив UpgradeTool упакован из исходного пакета "ubuntu-release-upgradeder" (до того, как он стал "update-manager"). Версия соответствует последним обновлениям для целевой версии.
У источника есть старый README из времен бородавок и седых релизов. В нем обсуждается, что следует делать во время обновления релиза. Также упоминается ссылка на более подробное предложение UpgradeTool.
Я перечислю здесь действия, упомянутые там, и проверил, действительно ли они реализованы:
- связанный с хранилищем
- переключиться на новые записи sources.list
- удалить неизвестные сторонние репозитории
- возможно, поменять зеркало (не реализовано)
- связанный пакет
- проверьте, нет ли сломанных пакетов перед обновлением
- обновить текущую версию перед обновлением (
apt-get update
только) - удалить и установить определенные пакеты
- проверьте, установлен ли {ubuntu,kubuntu,edubuntu}-desktop
- избавиться от старых ядер
- есть черный список удаления и белый список
- удалить или заменить устаревшие пакеты, которые существовали в более ранних выпусках
- связанные с конфигурацией (возможно в причудах: см. ниже)
- добавление пользователя по умолчанию в новые группы (не сделано для версий, которые я проверял)
- проверьте некоторые файлы конфигурации
UpgradeTool настраивается для каждого выпуска с использованием следующих файлов (откройте их, чтобы увидеть!):
- DistUpgrade.cfg
- UpgradeTool-связанная конфигурация
- связанная с выпуском конфигурация
- репозитории (например, [Sources] ValidMirrors)
- пользовательские изменения ([Distro] PostInstallScript)
- специальные пакеты; обрабатывается только DistUpgradeController.py:
- [Distro] RemoveObsoletes, ForcedObsoletes, BaseMetaPkgs, MetaPkgs
- [meta_package_name] ForcedObsoletes
- ... и DistUpgradeCache.py:
- [Distro] MetaPkgs, удаление черного списка, RemoveEssentialOk, BadVersions, BaseMetaPkgs, PurgeObsoletes, понижения, ключевые зависимости
- [Distro и meta_package_name] KeepInstalledPkgs, KeepInstalledSection, PostUpgrade *
- [KernelRemoval] *
- DistUpgradeQuirks.py
- запускает (выпускает) определенные функции (тот же файл) и плагины (
plugins
каталог) - функции должны иметь конкретные имена (например,
from_nattyPreCacheOpen()
) и плагины специальныеcondition
атрибуты (например,*
или жеPostInitialUpdate
) - одна из тех функций,
StartUpgrade()
, это еще одна сумка-захват сама по себе: среди прочего она называет_applyPatches()
, который просматривает файлы вpatches
каталог - все они практически ничего не делают в моей установке (i386, пакеты не старше natty-updates)
- запускает (выпускает) определенные функции (тот же файл) и плагины (
- больше от DistUpgradeCache.py
- работает
get_kernel_list.sh
(не в верном) и проверяет, установлено ли одно ядро - немного о драйверах Nvidia
- работает
Проверенные версии:
- natty → oneiric
- oneiric → точный
- точный → верный (окончательный по состоянию на 2014-04-18)
- верный → утопический (часы до релиза 2014-10-23)