将 WSL2 中的 Ubuntu 从 20.04 升级到 22.04

将 WSL2 中的 Ubuntu 从 20.04 升级到 22.04

我是 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”版本:

  1. 要删除现有的分布(当然,这是一个破坏性的操作——Ubuntu 内的所有数据都将被删除),从 PowerShell:

    wsl -l -v
    # Confirm the distribution name and adjust below if needed
    wsl --unregister Ubuntu
    
  2. 然后从 Microsoft Store 安装或升级“Ubuntu 22.04”版本。

  3. 从商店安装后,您可以启动它,也可以从 PowerShell 启动:

    ubuntu2204.exe install --ui=none
    

    谢谢@Blair,在这个答案中指出我之前说明中的错误。感谢@r4v3n6在评论中指出这个答案当我尝试修复第一个错误时,我又犯了另一个愚蠢的错误。

    这将需要几秒钟,询问您的用户名和密码,然后完成。WSL 下的 Ubuntu 发行版现在应该是 22.04。


从 20.04 升级到 22.04 的“正常”版本

留出几个小时不需要 WSL。LTS 升级需要一段时间。

  1. 首先,确保您的 20.04 安装是最新的:

    sudo apt update && sudo apt full-upgrade
    
  2. 关闭 WSL 上的 Ubuntu,然后从 PowerShell 中:

    wsl -l -v 
    # Confirm the distribution name and adjust below if needed
    wsl --terminate Ubuntu
    
  3. 重新启动 Ubuntu 并:

    sudo do-release-upgrade
    

    我记得,升级初期会需要一些用户交互。完成后,退出升级屏幕会话,再次按上述方法重新启动 Ubuntu,一切就绪了。

    注意:几个以前的版本要求您snapd在升级之前删除软件包。现在在我自己的发行版上进行的几次测试中,这对于 20.04 -> 22.04 升级似乎不再是必要的。但是,如果您在升级时确实遇到错误,尝试sudo apt remove snapd然后再试一次可能会很有用。

升级后(无论哪种方法)

升级后,在 WSL 上运行时,22.04 中会出现一些“烦恼”,您可以轻松纠正。请参阅:

我不记得升级后是否存在其中一个或两个,但我知道它们在“库存” 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”与其他答案中的说明有细微的差别。

我也很欣赏消息来源关于升级前备份的指示。这可能是一个好主意。

相关内容