`do-release-upgrade`真的有用吗?

我们知道do-release-upgrade “会进行版本升级”。 但是在一个较低的水平,它真正做到了什么?

我计划进行更多的手动升级,例如Debian方式:设置源后的aptitude updateaptitude full-upgrade 。 实际上,我计划与aptitude完全互动。 但是这让我很好奇还有其他什么 do-relase-upgrade做了,除了我的sources.list。

do-release-upgrade是“update-manager-core”软件包的一部分。 该脚本似乎决定了您要升级到哪个版本,试图找出它是否受支持并抱怨后者。 – 如果它确信可以工作,它会下载特定于发行版的UpgradeTool并运行它。

“update-manager-core”软件包的一部分是文件/etc/update-manager/meta-release ,您可以在其中找到URL http://changelogs.ubuntu.com/meta-release ,在那里找到URL升级工具下载。

下载的UpgradeTool tarball从源包“ubuntu-release-upgrader”(在它是“update-manager”之前)打包。 该版本对应于目标版本的最新更新。

该来源有一个旧的自述文件来自肮脏和白痴的发布时间。 它讨论了在发布升级期间应该做什么。 它还提到了一个更详细的UpgradeTool提案的链接。

我在这里列出了那里提到的行动并检查它们是否实际实施:

  • 存储库相关
    • 切换到新的sources.list条目
    • 删除未知的第三方存储库
    • 可能交换镜像(未实现)
  • 包相关
    • 检查升级前是否有破损的包裹
    • 升级前更新当前版本(仅限apt-get update
    • 删除并安装特定的包
    • 检查是否安装了{ub​​untu,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,RemovalBlacklist,RemoveEssentialOk,BadVersions,BaseMetaPkgs,PurgeObsoletes,Demotions,KeyDependencies
      • [Distro和meta_package_name] KeepInstalledPkgs,KeepInstalledSection,PostUpgrade *
      • [KernelRemoval] *
  • DistUpgradeQuirks.py
    • 运行(发布)特定function(相同文件)和插件( 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发布前几小时)