Что на самом деле делает `do-release-upgrade`?

Мы знаем, что do-release-upgrade «обновляет релиз». Но на более низком уровне, что он на самом деле делает?

Я планирую выполнить более ручное обновление, например, путем Debian: aptitude update и aptitude full-upgrade после настройки источников. На самом деле, я планирую сделать это полностью интерактивно с aptitude. Но это заставляет меня интересоваться тем, что делает else do-relase-upgrade, кроме как скрывать мой источник.list.

29
задан 16.05.2020, 23:41

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
      • .. .and by DistUpgradeCache.py:
        • [Distro] MetaPkgs, RemovalBlacklist, RemoveEssentialOk, BadVersions, BaseMetaPkgs, PurgeObsoletes, Demotions, KeyDependencies
        • [Distro и meta_package_name] KeepInstalstalUk, KeepInstalledPgradeS / li>
        • [KernelRemoval] *
      • DistUpgradeQuirks.py
        • запускает (освобождает) определенные функции (тот же файл) и функции плагинов (каталог plugins)
        • должны иметь конкретные имена (например, from_nattyPreCacheOpen()) и специальные атрибуты плагинов condition (например, * или PostInitialUpdate)
        • один из них functions, StartUpgrade(), это еще один пакет для захвата: помимо прочего, он вызывает _applyPatches(), который просматривает файлы в каталоге patches
        • - все это почти ничего не делает на ] моя установка (i386, пакеты не старше natty-updates)
      • больше из DistUpgradeCache.py
        • запускает get_kernel_list.sh (не в Trusty) и гарантирует, что установлено одно ядро ​​
        • некоторая обработка драйверов Nvidia

      Проверенные версии:

      • natty → oneiric
      • oneiric → точные
      • точный → верный (окончательный по состоянию на 2014-04-18)
      • верный → утопический (за часы до выпуска 2014-10-23)
31
ответ дан 16.05.2020, 23:41
  • 1
    Каждый раз, когда я использовал-обновление-версии, я закончил с незагрузочной системой:) – David Miguel 16.05.2020, 23:42
  • 2
    @NGRhodes Ваш комментарий слишком неопределенен для меня: ndiswrapper был особым случаем, въезжают задним ходом энергичные, не в эти дни. Никакая архитектура не добавлена или удалена (за исключением amd64, который добавляет i386 как внешний, который Вы покрываете “multiarch changes”, я предполагаю). †“Ничто не “deprecated”: пакеты удалены или нет. – George Aristy 16.05.2020, 23:42
  • 3
    Как примеры вещей дескрипторы-обновления-версии: двоичные драйверы Nvidia, изменения мультидуги, ndiswrapper, добавляя/удаляя архитектуру и типы ядра (например, удерживая от использования ядро сервера) – dux2 16.05.2020, 23:43

Теги

Похожие вопросы