在安装 WSL2 之前我应该​​卸载 WSL 或旧的 Linux 发行版吗?

在安装 WSL2 之前我应该​​卸载 WSL 或旧的 Linux 发行版吗?

我昨天使用的是 Windows 10 版本 1909。我启用了 WSL 并安装了 Ubuntu 18.04。

现在我已经更新到 Windows 10 版本 2004。如何以最干净的方式更新到 WSL 2,并且不保留旧版本的残留?

我正在看这个指南https://docs.microsoft.com/en-us/windows/wsl/install-win10#update-to-wsl-2它似乎不适用于我的情况,因为我已经有 WSL 和现有的 Linux 发行版(Ubuntu 18.04)。

更新之前我需要卸载 Ubuntu 18.04 或 WSL 还是两者都卸载?

我的最终目标是在我的 Windows 中安装带有最新 Ubuntu 的 WSL2,并且最好没有旧版本的残留。

答案1

现在我已经更新到 Windows 10 版本 2004。如何以最干净的方式更新到 WSL 2,并且不保留旧版本的残留?

您运行单个命令即可将 WSL 1 Ubuntu 实例升级到 WSL 2 Ubuntu 实例。

更新之前我需要卸载 Ubuntu 18.04 或 WSL 还是两者都卸载?

无需卸载当前的 Ubuntu WSL 实例。只需运行以下命令即可将 Ubuntu 18.04 实例升级到 WSL 2。

wsl --set-version Ubuntu 2

我的最终目标是在我的 Windows 中安装带有最新 Ubuntu 的 WSL2,并且最好没有旧版本的残留。

如何将 Ubuntu 18.04 升级到 Ubuntu 20.04 已有详细记录,但与将 WSL 实例升级到 WSL 2 的过程是分开的。

运行以下两个命令就足够了,以便将 18.04 升级到 20.04。

如果遇到问题,您可以简单地卸载当前的 Ubuntu 18.04 实例并从 Microsoft Store 安装 Ubuntu 20.04。

sudo apt-get upgrade

sudo do-release-upgrade

答案2

嗯,你不必卸载任何东西,你可以使用参数--set version来更改你的 Linux 发行版的版本,因此对于你的情况它将是:

wsl  --set-version Ubuntu-18.04

运行完成后,可以使用以下命令检查是否已更新

wsl -l -v

检查 WSL 版本的版本列

答案3

您可以使用以下 PowerShell 脚本

# Uninstall Linux distributions installed on asset 

$packages = Get-AppxPackage -AllUsers | Where-Object {($_.Name -like '*Ubuntu*' -or $_.Name -like '*Debian*' -or $_.Name -like '*Fedora*' -or $_.Name -like '*Kali*' -or $_.Name -like '*Suse*' -or $_.Name -like '*Arch*' -or $_.Name -like '*Alpine*' -or $_.Name -like '*openSUSE*') -and $_.Name -notlike '*Microsoft.Windows.Search*'} 

if ($packages.Count -gt 0) { 

    Write-Host "Linux distributions found:" 

    $packages | Select-Object -Property Name, Publisher, Version | Write-Host 

    foreach ($package in $packages){ 

    Remove-AppPackage $package   

    }  

    Write-Host "Linux distributions removed completely with their files" 

} else { 

    Write-Host "No Linux distributions found." 

}   

相关内容