前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在window上打造一个顺手的开发环境:在 WSL 上升级 Ubuntu 版本

在window上打造一个顺手的开发环境:在 WSL 上升级 Ubuntu 版本

作者头像
用户1418987
发布2024-01-24 08:54:58
2490
发布2024-01-24 08:54:58
举报
文章被收录于专栏:codercoder

在window上打造一个顺手的开发环境:在 WSL 上升级 Ubuntu 版本

在window上打造一个顺手的开发环境:在 WSL 上升级 Ubuntu 版本_Ubuntu
在window上打造一个顺手的开发环境:在 WSL 上升级 Ubuntu 版本_Ubuntu

前提条件

如果我们使用的用户名不是root用户,那么我们需要知道它当前用户是谁,在WSL端运行以下linux命令:

代码语言:javascript
复制
# Linux Terminal
 whoami
在window上打造一个顺手的开发环境:在 WSL 上升级 Ubuntu 版本_重新启动_02
在window上打造一个顺手的开发环境:在 WSL 上升级 Ubuntu 版本_重新启动_02

另外,我们需要知道发行版名称和 WSL版本,在 PowerShell(Windows 端)上运行命令:

代码语言:javascript
复制
# PowerShell
 wsl --list --verbose
在window上打造一个顺手的开发环境:在 WSL 上升级 Ubuntu 版本_重新启动_03
在window上打造一个顺手的开发环境:在 WSL 上升级 Ubuntu 版本_重新启动_03

知道用户名: equiman,Linux发行版: Ubuntu,并确认我们正在使用的WSL2 版本,我们可以愉快的开始了...

备份

所有后续步骤都需要在 PowerShell(Windows 端)上完成。

首先,我们需要关闭所有正在使用 WSL 的终端,然后将其关闭以避免运行命令时数据损坏。

代码语言:javascript
复制
# PowerShell
 wsl --shutdown

接下来,我们将从UbuntuLinux 发行版创建备份。

代码语言:javascript
复制
# PowerShell
 mkdir D:\backup
 wsl --export Ubuntu D:\backup\ubuntu.tar

如果你没有看到进度指示器,请不要担心。这可能需要一段时间,具体取决于你备份的数据量。也许这个时候是“一杯茶、一包烟、一个 bug 改一天”的时候了,如果可以早下个班也是可以的🤪。

在window上打造一个顺手的开发环境:在 WSL 上升级 Ubuntu 版本_Ubuntu_04
在window上打造一个顺手的开发环境:在 WSL 上升级 Ubuntu 版本_Ubuntu_04

完成后,确保文件已创建, 这一步非常重要D:\backup\ubuntu.tar

其实我们可以养成执行重要的操作之前一定要「备份数据」这样的一个习惯

重新启动

通过运行以下命令重新启动 WSL:

代码语言:javascript
复制
# PowerShell
 wsl --distribution Ubuntu

所有后续步骤都需要在 WSL(Linux 端)上完成。

更新软件包的源并更新过时的已安装应用程序。

代码语言:javascript
复制
# Linux Terminal
 sudo apt update
 sudo apt list --upgradable
 sudo apt upgrade -y

安装此更新管理器核心包非常重要,这将欺骗系统认为有新的 LTS 可用,并允许我们进行版本升级。

代码语言:javascript
复制
# Linux Terminal
 sudo apt install update-manager-core

安装新版本

代码语言:javascript
复制
# Linux Terminal
 sudo do-release-upgrade

如果您使用 LTS 版本(推荐)并发现没有新的 LTS 版本可用,则会显示此消息

检查新的 Ubuntu 版本 没有可用的 LTS 开发版本。 要升级到最新的非 LTS 开发版本, 请在 /etc/update-manager/release-upgrades 中设置 Prompt=normal。

⚠ 如果不使用 LTS 版本与你无关,您可以将文件中的更改Prompt为并重新运行之前的命令。normal /etc/update-manager/release-upgrades


另一种选择是使用-d通过命令添加的标志

代码语言:javascript
复制
# Linux Terminal
sudo do-release-upgrade -d

这样做是因为直到LTS 发布当年的7 月才能直接升级到最新的 LTS 。但是,该-d标志强制命令升级到最新的开发版本,并且它还将 LTS 版本视为开发版本。


然后,接受您必须下载的所有软件包,这将需要一段时间,主要取决于您的网络和磁盘速度。

最后运行命令

代码语言:javascript
复制
# Linux Terminal
sudo reboot

恢复版本

如果过程中出现问题,不用担心,我们可以从备份中恢复之前的 WSL 磁盘。

执行恢复之前,那必须有备份文件。参考上面的备份数据步骤!!!

所有后续步骤都需要在 PowerShell(Windows 端)上完成。

首先,我们需要注销Linux发行版

⚠️ 请注意,WSL 驱动器上存储的所有内容都将丢失,并且该命令不会要求确认,因此请确保先备份所需的所有内容!

代码语言:javascript
复制
# PowerShell
wsl --unregister Ubuntu

然后,在所需的路径上再次导入。我将使用D:磁盘作为示例。

代码语言:javascript
复制
# PowerShell
mkdir D:\WSL
wsl --import Ubuntu D:\WSL\ D:\backup\ubuntu.tar

默认情况下,Ubuntu 将使用root作为默认用户,要切换到我们的用户,我们需要运行这些命令。

代码语言:javascript
复制
# PowerShell
cd $env:USERPROFILE\AppData\Local\Microsoft\WindowsApps
ubuntu config --default-user equiman

确保更换equiman为你使用的账户。

运行以下命令重新启动 WSL:

代码语言:javascript
复制
# PowerShell
wsl --distribution Ubuntu

常问问题

问:重新启动终端后,收到此错误消息:

代码语言:javascript
复制
grep: /proc/sys/fs/binfmt_misc/WSLInterop: No such file or directory

解决方案:sudo reboot更新 Ubuntu 后错过运行该命令。如果这仍然不起作用,请通过运行重新启动 WSL wsl --shutdown,然后wsl --distribution Ubuntu


折腾使你进步!!!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在window上打造一个顺手的开发环境:在 WSL 上升级 Ubuntu 版本
  • 前提条件
  • 备份
  • 重新启动
  • 恢复版本
  • 常问问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档