如何使用命令行从 18.10 升级到 19.10?

如何使用命令行从 18.10 升级到 19.10?

我正在尝试从 18.10 升级到 19.10,sudo do-release-upgrade但是我只收到一个错误:An upgrade from 'cosmic' to 'eoan' is not supported with this tool.

我执行了更新步骤sources.list以指向旧版本服务器,如下所建议:如何安装软件或从旧的不受支持的版本升级?

这没有帮助。我得到了同样的错误。

答案1

仍然可以进行升级,你只需要破解一些文件即可这篇博文为了升级到 19.04第一的。我按照他的方法升级成功了。

引用博客:

  1. 在 18.10 系统上运行do-release-upgrade。这会给你一个关于不受支持的错误。但在后台,该工具会下载一些我们想要修改的元数据文件。
  2. 以 root 身份进入/var/lib/update-manager并将文件复制meta-release到新文件meta-release2。此文件是从do-release-upgrade互联网上下载的,用于告诉升级程序如何升级。
  3. 编辑meta-release2。完全删除所有条目eoan。修改disco条目,使其显示Supported: 1
  4. 编辑文件 /usr/lib/python3/dist-packages/UpdateManager/Core/MetaRelease.py。将此行代码更改 self.metarelease_information = open(self.METARELEASE_FILE, "r")self.metarelease_information = open(self.METARELEASE_FILE + "2", "r") 这将告诉升级程序使用您修改的文件而不是原始文件。(它还将避免任何重新下载覆盖您的更改。)
  5. 运行do-release-upgrade。现在应该正在升级 18.10 → 19.04。让其正常运行并重新启动。
  6. 恭喜!您现在正在运行 19.04。删除/var/lib/update-manager/meta-release2您制作的。
  7. 由于支持 19.10,您只需do-release-upgrade再次运行即可将 19.04 升级到 19.10。无需任何破解,您又回到了主路径上。

答案2

sysopch升级到 19.04 非常简单,正如博客

  1. mkdir /tmp/upgrade
  2. cd /tmp/upgrade
  3. wget http://old-releases.ubuntu.com/ubuntu/dists/disco-updates/main/dist-upgrader-all/current/disco.tar.gz
  4. tar -xf disco.tar.gz
  5. python3 ./dist-upgrade.py

我自己试过了——效果很好。之后do-release-upgrade似乎没有出现错误,但我还是不是我自己升级到 19.10(我对 19.04 很满意)。

在第 5 步中我必须**sudo** python3 ./dist-upgrade.py

答案3

更简单的方法:18.10 -> 19.04 -> 19.10 -> 20.04 LTS(2020 年 5 月 24 日)

我遇到了这个问题,有超过 20 个 Ubuntu VM,版本号从 18.04 / 18.10 / 19.04 / 19.10 不等。

我已经使用上述指南中提供的变体测试了从 18.10 到 20.04 的多个更新。

以下是高级步骤:

  1. 您只能通过以下步骤执行此操作:18.10(宇宙)-> 19.04(迪斯科)-> 19.10(eoan)-> 20.04(焦点)

  2. 18.10 和 19.04 是问题所在,因为它们已经“过时”并且档案已移至“旧版本”,因此您需要编辑 /etc/apt/sources.list 以指向:

“德布http://old-releases.ubuntu.com/ubuntu”而不是任何其他存储库

  1. 使用命令行(非 UI)执行以下操作:
  • sudo apt 更新
  • sudo apt 升级
  • sudo apt 自动删除
  • 然后重启
  1. 现在您可以尝试升级,但首先检查:/etc/update-manager/release-upgrades 是否具有“Prompt=normal”,并根据需要进行编辑。然后通过命令行执行:
  • 进行发布升级

可能的结果有 3 种:

  • a. 一切顺利 ;-) - 然后前进到(6)
  • b. 失败,提示无法从“宇宙”升级到“eoan”
  • c. 未找到“do-release-upgrade”命令
  • d. 未找到版本(参见步骤 6)

4b. 您需要编辑缓存的更新列表,该列表位于:~/.cache/update-manager-core/meta-release

编辑应该删除“disco”之后的所有版本,并将“cosmic”和“disco”支持标志从“0”更改为“1”,即:

区域:宇宙

...

...

支持:1

...

...

现在回到4

4c. 您需要安装更新软件:sudo apt install ubuntu-release-upgrader-core

现在回到4

  1. 重做:do-release-grade

请记住您最终可能会回到 4b。

如果一切顺利,则转到(6)

  1. 您现在应该处于 19.04 或 19.10(取决于您从哪里开始)。

现在您只需重复这些步骤即可。

只需重复4即可。

如果出现“未找到版本”错误,那么您应该删除之前编辑的缓存版本文件(~/.cache/update-manager-core/meta-release)并重新运行。

  1. 您现在应该能够升级到 20.04 LTS

注 1:我是根据草稿笔记写下这些内容的,并在更新时保留这些内容,所以希望我记得正确。

注 2:如果您在 /etc/apt/sources.list.d 目录中使用了“外部 PPA”,那么您应该在开始更新过程之前禁用它们。

注 3:我刚刚完成了 18.04 LTS 更新,更新内容为:18.04 -> 19.10 -> 20.04 。所以它不是直接从 18.04 -> 20.04 ......令人费解

答案4

请参阅以下步骤来绕过不支持的升级。

升级之前,请确保您的系统具有最新更新:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
# Reboot if needed.

以下是通过修补文件的实际解决方法(强制支持所有版本):

sudo sed -i'.bak' "s/supported = int/supported = 1|int/" /usr/lib/python3/dist-packages/UpdateManager/Core/MetaRelease.py

注意:方法与通过修补MetaRelease.py文件接受的答案类似,但更简单(不需要复制/重命名文件)。

然后照常运行升级:

sudo do-release-upgrade

完成后若要升级到另一个版本,请再次重复上述命令。

笔记:

  • 以上通过升级 Ubuntu 进行测试

    • 从 19.04(Disco Dingo)到 19.10(Eoan Ermine)(截至 2020 年 10 月)。
    • 从 19.10(Eoan Ermine)到 20.04(Focal Fossa)(截至 2020 年 10 月)。
  • 如果您以 身份登录root,则无需在命令前添加sudo

  • 如果您正在进行远程升级,使用屏幕运行命令会更安全,例如sudo screen do-release-upgrade(这样升级就不会因为连接问题而停止)。

相关内容