Що насправді робить "do-release-upgrade"?


30

Ми це знаємо do-release-upgrade "робить оновлення випуску". Але на трохи нижчому рівні, що це насправді?

Я планую зробити більш ручне оновлення, наприклад, Debian: aptitude updateі aptitude full-upgradeпісля налаштування джерел. Насправді я планую це робити повністю інтерактивно aptitude. Але це залишає мене цікавим, що ще do-relase-upgrade робить, окрім підключення мого джерела.list.

Відповіді:


32

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-upgrader” (раніше він був “менеджером оновлень”). Версія відповідає останнім оновленням цільового випуску.

Джерело має стару README з бородавчастих та сирих часів випуску. Тут обговорюється, що слід зробити під час оновлення випуску. Тут також згадується посилання на більш детальну пропозицію UpgradeTool .

Я перелічу тут вказані дії та перевіряю, чи реально вони реалізовані:

  • сховище
    • перейти до нових записів source.list
    • видалити невідомі сторонні сховища
    • можливо, дзеркало своп (не реалізовано)
  • пов'язаний з пакетом
    • перевірте, чи немає пошкоджених пакетів перед оновленням
    • оновити поточний випуск перед оновленням ( apt-get updateлише)
    • видалити та встановити конкретні пакети
    • перевірте, чи встановлено {ubuntu, kubuntu, edubuntu} -desktop
    • позбутися від старих ядер
    • мати видалення-чорний список та -whitelist
    • видалити або замінити застарілі пакети, які існували в попередніх випусках
  • пов’язана з конфігурацією (можлива у примірках: див. нижче)
    • додавання користувача за замовчуванням до нових груп (не робиться для перевірених версій)
    • перевірити деякі конфігураційні файли

UpgradeTool налаштовується для кожного випуску за допомогою наступних файлів (відкрийте їх, щоб побачити!):

  • DistUpgrade.cfg
    • Конфігурація, пов’язана з UpgradeTool
    • конфігурація, що стосується випуску
    • сховища (наприклад, [Джерела] ValidMirrors)
    • спеціальні зміни ([Distro] PostInstallScript)
    • спеціальні пакети; обробляється лише DistUpgradeController.py:
      • [Distro] RemoveObsolete, ForcedObsolete, BaseMetaPkgs, MetaPkgs
      • [meta_package_name] ForcedObsolete
    • ... та DistUpgradeCache.py:
      • [Distro] MetaPkgs, RemovalBlacklist, RemoveEssentialOk, BadVersions, BaseMetaPkgs, PurgeObsolete, Демоції, KeyDependitions
      • [Distro та meta_package_name] KeepInstalledPkgs, KeepInstalledSection, PostUpgrade *
      • [KernelRemoval] *
  • DistUpgradeQuirks.py
    • запускає (випускає) конкретні функції (той самий файл) та плагіни (plugins каталог)
    • функції повинні мати конкретні імена (наприклад from_nattyPreCacheOpen()) та спеціальні conditionатрибути плагінів (наприклад, *або PostInitialUpdate)
    • одна з цих функцій, StartUpgrade()- це інша граб-мішка сама по собі: серед інших вона викликає _applyPatches(), яка передає файли в patchesкаталозі
    • все це майже нічого не робить у моїй установці (i386, пакети не старші від natty-оновлень)
  • більше від DistUpgradeCache.py
    • пробіжки get_kernel_list.sh (не є надійним) і гарантує, що одне ядро ​​встановлено
    • кілька поводження з драйверами Nvidia

Перевірені версії:

  • natty → oneiric
  • онерік → точний
  • точний → надійний (остаточний станом на 2014-04-18)
  • вірний → утопічний (за години до виходу 2014-10-23)

3
Кожен раз, коли я використовував do-release-upgrade, я
стикався

Як приклади речей, які справляються до-реліз-оновлення: двійкові драйвери nvidia, зміни в мультиархах, ndiswrapper, додавання / видалення архітектури та типів ядра (наприклад,
знезараження

@NGRs вважає, що ваш коментар для мене занадто розпливчастий: ndiswrapper був особливим випадком ще не в ці дні. Жодна архітектура не додається і не видаляється (за винятком amd64, який додає i386 як іноземну, яку ви, напевно, покриваєте "багатоархівними змінами"). - Ніщо не "застаріло": пакунки видаляються чи ні.
Роберт Сімер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.