`do-release-upgrade` 到底有什么作用?

Rob*_*mer 39 do-release-upgrade

我们知道do-release-upgrade“进行版本升级”。但在低一点的层次上,它到底有什么作用呢?

我计划进行更多手动升级,例如 Debian 方式:aptitude updateaptitude full-upgrade在设置源之后。实际上,我计划完全与aptitude. 但这让我对除了冲洗我的 sources.list 之外的其他 do-relase-upgrade功能感到好奇。

Rob*_*mer 40

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

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

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

来源有一个来自warty and hoary release times的旧自述文件。它讨论了在版本升级期间应该做什么。它还提到了一个指向更详细的 UpgradeTool 建议的链接。

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

  • 存储库相关
    • 切换到新的 sources.list 条目
    • 删除未知的 3rd 方存储库
    • 可能交换镜像(未实现)
  • 包相关
    • 升级前检查没有损坏的包
    • 升级前更新当前版本(apt-get update仅)
    • 删除和安装特定的包
    • 检查是否安装了 {ubuntu,kubuntu,edubuntu}-desktop
    • 摆脱旧内核
    • 有一个删除黑名单和白名单
    • 删除或替换早期版本中存在的过时软件包
  • 配置相关(可能有怪癖:见下文)
    • 将默认用户添加到新组(我检查的版本未完成)
    • 检查一些配置文件

使用以下文件为每个版本配置UpgradeTool (打开它们查看!):

  • DistUpgrade.cfg
    • 升级工具相关配置
    • 发布相关配置
    • 存储库(例如 [Sources] ValidMirrors)
    • 自定义更改([发行版] PostInstallScript)
    • 特殊包裹;仅由 DistUpgradeController.py 处理:
      • [发行版] RemoveObsoletes、ForcedObsoletes、BaseMetaPkgs、MetaPkgs
      • [meta_package_name] 强制废弃
    • ...以及 DistUpgradeCache.py:
      • [发行版] MetaPkgs、RemovalBlacklist、RemoveEssentialOk、BadVersions、BaseMetaPkgs、PurgeObsoletes、Demotions、KeyDependencies
      • [发行版和 meta_package_name] KeepInstalledPkgs、KeepInstalledSection、PostUpgrade*
      • [内核删除] *
  • DistUpgradeQuirks.py
    • 运行(发布)特定功能(同一个文件)和插件(plugins目录)
    • 函数必须具有特定的名称(例如from_nattyPreCacheOpen())和插件的特殊condition属性(例如*PostInitialUpdate
    • 其中一个函数 ,StartUpgrade()本身就是另一个抓包:它调用_applyPatches(),它遍历目录中的patches文件
    • 所有这些对我的安装几乎没有任何作用(i386,不早于 natty-updates 的软件包)
  • 更多来自 DistUpgradeCache.py
    • 运行get_kernel_list.sh(不可靠)并确保安装了一个内核
    • 关于 Nvidia 驱动程序的一些处理

检查版本:

  • 整洁?梦幻般的
  • 梦?精确的
  • 精确的 ?可信赖(截至 2014-04-18 的最终版本)
  • 值得信赖?utopic(2014-10-23 发布前几小时)

  • 每次我使用 do-release-upgrade 时,我都会得到一个无法启动的系统:) (4认同)