首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何与Microsoft自动更新一起升级WSL中的Ubuntu包

如何与Microsoft自动更新一起升级WSL中的Ubuntu包
EN

Ask Ubuntu用户
提问于 2021-12-29 02:40:29
回答 1查看 13.8K关注 0票数 12

我开始使用WSL2并从Microsoft安装Ubuntu (没有特定版本号的Ubuntu)。我的理解是,它将自动升级到下一个主要的LTS发行版--现在是20.04,我想明年是22.04。

那里面的包裹呢?我可以同时使用apt updateapt upgrade,但Microsoft也可以使用更新的Ubuntu版本进行自动更新,我相信这将覆盖我的一些手动更新。我应该把它们留在这里,只升级我自己安装的软件包吗?最好的做法是什么?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2021-12-29 04:18:55

注意:重用我对这个问题的一些答案。问题中有很多不同之处,需要做一些修改,但一些核心概念是相同的。

商店应用程序的“自动升级”部分有点令人困惑。是的,商店中的"Ubuntu“(没有版本号)”自动更新“,但这可能并不意味着你认为它意味着什么。我自己花了一点时间才适应这个概念。

这有点难以解释,但是当您从Store安装"Ubuntu“(没有版本)时,您实际上得到了三个不同的”安装“:

  • 当然,WSL本身是一个先决条件。这实际上是安装Linux内核的地方,因为它在所有已安装的WSL2发行版/实例之间共享。
  • 一个在C:\Program Files\WindowsApps\CanonicalGroup...中包含rootfs包(install.tar.gz)的“应用程序包”。您可以通过启动管理PowerShell并运行Get-ChildItem -Recurse 'C:\Program Files\WindowsApps\Canonical*' | Where-Object {$_.Name -eq 'install.tar.gz' }来看到这一点。
  • 当第一次(通过ubuntu.exe)运行时,安装程序在%UserProfile%\AppData\Local\Packages\CanonicalGroup...中创建实际的WSL实例。

商店应用程序的“自动升级”真正做了什么?

当商店中的应用程序有了新的更新时,系统上唯一更新的就是rootfs包。它不会更改已安装的实例。它不会自动更新实例中的任何包。它甚至不更新WSL2内核。

您仍然需要运行sudo apt update && sudo apt upgrade -y (或等效的)来定期更新包。注意,这不包括内核--关于如何做到这一点,请参见下面的内容。

我认为你可以从你的问题中看出,这是一件好事。否则,您将竞争“商店”升级包和那些从回购。

(网站注:感谢Reddit who 最初为我澄清了这一点上的u/zoredache。)

,那么有什么意义?

无论如何,对大多数用户来说,升级Store包是非常无用的,除非您:

  1. 取消注册实例(删除所有配置),并通过重新运行ubuntu.exe命令重新配置它。在进行初始配置时,rootfs是解压缩的,因此您将从Store获得“最新和最好的”。但是,请注意,与官方repos中的包更新相比,Store发行版的频率仍然很低。即使在从商店安装之后,您仍然几乎总是通过apt获得许多更新。
  2. 希望使用该install.tar.gz创建第二个WSL/Ubuntu实例(使用wsl --import)。然后,新创建的实例将使用Store更新的rootfs。同样,关于回购包的警告与第一种情况相同。

这两种情况都不常见。即使不版本化的Store Ubuntu被更新为(大概) 22.04,它也不会更改已安装的20.04实例,只更改rootfs包。

到那时,当您最终想升级到22.04 (或临时版本)时,仍然需要运行sudo do-release-upgrade -d

升级内核

注意,Store和apt (或其他包方法)都不更新WSL2内核。由于内核是WSL2本身的一部分,并且在所有已安装的发行版之间共享,所以处理方式不同。使用:

代码语言:javascript
运行
复制
wsl --update

..。检查和下载任何WSL2内核更新。

这确实假定您使用的是默认内核。您可以选择从WSL2 2核源下载或构建自己的内核。根据我的经验,内核更新可能需要几天或几周的时间才能通过wsl --update获得,所以如果您想获得最新的和最棒的内核更新,就可以。然后将WSL2配置为通过.wslconfig使用该内核。

随着最近从Store安装WSL本身的更改,wsl --update也将更新WSL (包括内核),但仍然不会影响您已经安装的发行版(当然,比如Ubuntu)。

还有一件事

尽管如此,"Ubuntu“(非版本化的)应用仍然有一个优势,那就是当您最终升级到以后的版本时,您不需要担心更改它的名称(就像在另一个问题中那样)。“Ubuntu20.04”版本将始终具有实例名Ubuntu-20.04,即使在以后手动将其升级到某些内容时也是如此。

票数 21
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1384209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档