我是 WSL2-Ubuntu 的新手。我的电脑已经预装了 20.04 版本,但我看到已经有 22.04 版本了,所以我想知道是否值得安装新版本。如果值得,我该如何升级?
答案1
简短回答:
总的来说,在 WSL 上升级 Ubuntu 的过程与现在从“普通” Ubuntu CLI 升级的过程几乎相同:
sudo apt update && sudo apt full-upgrade
# restart Ubuntu
sudo do-release-upgrade
解释:
附注:我建议阅读这个问题我的回答是关于为什么 Microsoft Store 版本不会升级现有的 Ubuntu/WSL 版本的一些背景信息。
是否值得拥有新的
无论如何,由于这是一个全新的安装,我建议立即升级。有几个原因:
虽然没有哪个版本是“完美的”,但 22.04 已经发布很长时间了,已经达到了 22.04.1 里程碑。这很重要,因为 Canonical 总是等待第一个点版本将 LTS 版本移入“稳定”渠道。在此之前,尽管 22.04 是在 4 月发布的,但它仍被视为“开发”版本。
最终,您还是需要升级。这个“最终”可能还需要很长时间,因为 20.04 将获得近 3 年的支持,但最终您将在 22.04 上获得比 20.04 多 2 年的支持(从今天开始)。
系统上的软件包(尤其是来自 PPA 的软件包)越少,升级就越容易。Ubuntu 升级通常相当轻松,但是您安装的越多,需要您手动干预的可能性就越大(尽管仍然很小)。
所以,是的,继续升级是个好主意。
如果是的话,我该如何升级它?
有两种方法可以解决此问题:
删除并重新安装
首先,如果您还没有开始使用它,并且愿意“删除并重新安装”,您可以继续直接安装 22.04。在某个时候,我希望商店中的“Ubuntu”将移动到 22.04,但正如链接帖子中提到的,您仍然无法使用它来“升级”现有发行版。因此,至少目前,请使用商店中的“Ubuntu 22.04”版本:
要删除现有的分布(当然,这是一个破坏性的操作——Ubuntu 内的所有数据都将被删除),从 PowerShell:
wsl -l -v # Confirm the distribution name and adjust below if needed wsl --unregister Ubuntu
然后从 Microsoft Store 安装或升级“Ubuntu 22.04”版本。
从商店安装后,您可以启动它,也可以从 PowerShell 启动:
ubuntu2204.exe install --ui=none
谢谢@Blair,在这个答案中指出我之前说明中的错误。感谢@r4v3n6在评论中指出这个答案当我尝试修复第一个错误时,我又犯了另一个愚蠢的错误。
这将需要几秒钟,询问您的用户名和密码,然后完成。WSL 下的 Ubuntu 发行版现在应该是 22.04。
从 20.04 升级到 22.04 的“正常”版本
留出几个小时不需要 WSL。LTS 升级需要一段时间。
首先,确保您的 20.04 安装是最新的:
sudo apt update && sudo apt full-upgrade
关闭 WSL 上的 Ubuntu,然后从 PowerShell 中:
wsl -l -v # Confirm the distribution name and adjust below if needed wsl --terminate Ubuntu
重新启动 Ubuntu 并:
sudo do-release-upgrade
我记得,升级初期会需要一些用户交互。完成后,退出升级屏幕会话,再次按上述方法重新启动 Ubuntu,一切就绪了。
注意:几个以前的版本要求您
snapd
在升级之前删除软件包。现在在我自己的发行版上进行的几次测试中,这对于 20.04 -> 22.04 升级似乎不再是必要的。但是,如果您在升级时确实遇到错误,尝试sudo apt remove snapd
然后再试一次可能会很有用。
升级后(无论哪种方法)
升级后,在 WSL 上运行时,22.04 中会出现一些“烦恼”,您可以轻松纠正。请参阅:
- Landscape-sysinfo.cache:在 WSL 中启动 Ubuntu 22.04 时权限被拒绝
- WSL 上的 Ubuntu 22.04 LTS:“无法检索可用的内核版本”/“无法检查...
我不记得升级后是否存在其中一个或两个,但我知道它们在“库存” 22.04 WSL 安装中。
答案2
我跟着@NotTheDroid 的回答,这很有帮助(也得到了赞赏),但并没有完全发挥作用。非常感谢 - 感谢这篇文章,但也许在更新后流程发生了变化?按照他们的做法,我最终选择了 Ubuntu 20.04,而不是 Ubuntu 22.04.2
我选择了“Ubuntu 22.04.2 LTS”来自 MS 商店,但按照所写的步骤操作后,最终又获得了 Ubuntu 20.04。
仅当我:
再次按照步骤 1 中的说明从 WSL 中删除 Ubuntu 安装
忽略步骤 2 中的这部分:
我建议您从商店安装后不要单击“打开”。'
我没有执行步骤 3,而是使用 Microsoft Store 中的打开选项进行安装,然后才真正获得了 Ubuntu 22.04。
答案3
WSL2 安装多个 Ubuntu 实例
这是除了下面提到的常规升级方法之外的另一种选择:https://askubuntu.com/a/1428481/52975如果您想保留这两个 Ubuntu,它将很有用。
列出所有可以从中安装的发行版命令提示符:
wsl --list --online
该列表包含所需的Ubuntu-22.04
,因此我们可以使用它来安装它:
wsl --install -d Ubuntu-22.04
也可以使用 Windows 应用商店的 GUI 进行安装,只需搜索“Ubuntu 22.04”并选择 Canonical 提供的项目。
要让 shell 进入新安装的Ubuntu-22.04
容器,请运行:
wsl -d Ubuntu-22.04
或者将其设置为默认容器:
wsl --setdefault Ubuntu-22.04
之后运行:
wsl
Ubuntu-22.04
将默认使用。
有关的:https://stackoverflow.com/questions/51584765/how-do-you-install-multiple-separate-instances-of-ubuntu-in-wsl对于同一发行版的多个实例来说,这有点烦人,但有可能--export
。
答案4
警告!以下内容将使您处于 24.04!
我是新来的,所以我不能只对@NotTheDroid 的精彩回答发表评论。按照这些步骤操作后,安装在某个地方失败了。当 WSL 重新启动时,我仍然处于 20.04。回溯我的步骤只会产生以下消息:
检查是否有新的 Ubuntu 版本 没有可用的 LTS 开发版本。要升级到最新的非 LTS 开发版本,请在 /etc/update-manager/release-upgrades 中设置 Prompt=normal。
我找到了两个关键的优秀说明,它们帮助我度过了这一难关,并让我保留了开发版本,并且所有配置都完好无损。资料来源:https://dev.to/equiman/upgrade-ubuntu-version-on-wsl-3h10
执行这些命令后:
sudo apt update
sudo apt list --upgradable
sudo apt upgrade -y
sudo apt install update-manager-core
然后运行sudo do-release-upgrade -d
请注意“-d”与其他答案中的说明有细微的差别。
我也很欣赏消息来源关于升级前备份的指示。这可能是一个好主意。