我正在尝试从 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第一的。我按照他的方法升级成功了。
引用博客:
- 在 18.10 系统上运行
do-release-upgrade
。这会给你一个关于不受支持的错误。但在后台,该工具会下载一些我们想要修改的元数据文件。- 以 root 身份进入
/var/lib/update-manager
并将文件复制meta-release
到新文件meta-release2
。此文件是从do-release-upgrade
互联网上下载的,用于告诉升级程序如何升级。- 编辑
meta-release2
。完全删除所有条目eoan
。修改disco
条目,使其显示Supported: 1
- 编辑文件 /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")
这将告诉升级程序使用您修改的文件而不是原始文件。(它还将避免任何重新下载覆盖您的更改。)- 运行
do-release-upgrade
。现在应该正在升级 18.10 → 19.04。让其正常运行并重新启动。- 恭喜!您现在正在运行 19.04。删除
/var/lib/update-manager/meta-release2
您制作的。- 由于支持 19.10,您只需
do-release-upgrade
再次运行即可将 19.04 升级到 19.10。无需任何破解,您又回到了主路径上。
答案2
sysopch
升级到 19.04 非常简单,正如博客
mkdir /tmp/upgrade
cd /tmp/upgrade
wget http://old-releases.ubuntu.com/ubuntu/dists/disco-updates/main/dist-upgrader-all/current/disco.tar.gz
tar -xf disco.tar.gz
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 的多个更新。
以下是高级步骤:
您只能通过以下步骤执行此操作:18.10(宇宙)-> 19.04(迪斯科)-> 19.10(eoan)-> 20.04(焦点)
18.10 和 19.04 是问题所在,因为它们已经“过时”并且档案已移至“旧版本”,因此您需要编辑 /etc/apt/sources.list 以指向:
“德布http://old-releases.ubuntu.com/ubuntu”而不是任何其他存储库
- 使用命令行(非 UI)执行以下操作:
- sudo apt 更新
- sudo apt 升级
- sudo apt 自动删除
- 然后重启
- 现在您可以尝试升级,但首先检查:/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
- 重做:do-release-grade
请记住您最终可能会回到 4b。
如果一切顺利,则转到(6)
- 您现在应该处于 19.04 或 19.10(取决于您从哪里开始)。
现在您只需重复这些步骤即可。
只需重复4即可。
如果出现“未找到版本”错误,那么您应该删除之前编辑的缓存版本文件(~/.cache/update-manager-core/meta-release)并重新运行。
- 您现在应该能够升级到 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
(这样升级就不会因为连接问题而停止)。