Windows11子系统Ubuntu22.04Unity开发环境
2023-08-09 21:49阅读:
系统更新换代喽~
不想安装虚拟机,继续
WSL~
事隔多年,之前在
Windows10 下搭建的子系统
Ubuntu18.04,已经许久。
想到了当时在
Microsoft Store 中购买的
X410 - X Server for
Windows,现在已经变更内购收取月费、年费的模式了...
真是物是人非,今天要在
Windowds11 下安装个
Ubuntu22.04,搭建个 Unity 开发环境。
WSL2 已经发展的很好了,不搞那多门门道道,咱这次都用原生环境来搞事情~
Windows 上安装 Linux 子系统
WSL1 和 WSL2 比较:
| 功能 |
WSL 1 |
WSL 2 |
| Windows 和 Linux 之间的集成 |
|
|
| 启动时间短 |
|
|
| 与传统虚拟机相比,占用的资源量少 |
|
|
| 可以与当前版本的 VMware 和 VirtualBox 一起运行 |
|
TD>
|
| 托管 VM |
|
|
| 完整的 Linux 内核 |
|
|
| 完全的系统调用兼容性 |
|
|
| 跨 OS 文件系统的性能 |
|
|
Windows11 运行 WSL2 所需条件
- • WSL 2 确实利用了 Hyper-V 架构,但并不需要使用 Windows 11 专业版或者安装 Hyper-V
组件,WSL 功能支持所有 Windows 11 SKU。
- • WSL 2 支持 x64 和 ARM 处理器。如果你在基于 ARM 的设备上使用它,需要使用具有 ARM 版本的
Linux,比如 Ubuntu。
- • 如果你的虚拟机软件支持嵌套虚拟化并启用了该功能,WSL 2 也可以在 Windows
内部的虚拟机中运行。
Windows
环境设置
•
打开 Linux 子系统功能Win11
设置 -> 启用或关闭 Windows 功能

需要安装箭头指向的这四个功能组件。安装重启的时候,记得进
主板BIOS 把虚拟化支持打开,否则后面是无法正常运行 Ubuntu
的。
- • 使用命令行设置以管理员权限启动
PowerShell:
# 启用虚拟机平台
下面两个语法运行任意一个都行
Enable-WindowsOptionalFeature -Online -FeatureName
VirtualMachinePlatform
dism.exe /online /enable-feature
/featurename:VirtualMachinePlatform /all
/norestart
# 启用 Linux 子系统功能
下面两个语法运行任意一个都行
Enable-WindowsOptionalFeature -Online -FeatureName
Microsoft-Windows-Subsystem-Linux
dism.exe /online /enable-feature
/featurename:Microsoft-Windows-Subsystem-Linux /all
/norestart
# 开启 Hyper-V 服务
bcdedit / set hypervisorlaunchtype
auto
# 关闭 Hyper-V 服务
bcdedit / set hypervisorlaunchtype
off
安装
Ubuntu
•
命令行安装 Ubuntu 22.04
可以在 Microsoft Store
安装 和 用命令行安装。
Microsoft Store 比较简单,之前的 WLS
课程中也讲到过,这里使用命令行,先看下有相关命令介绍:
# 安装 wsl
wsl --install
# 切换为 WSL 1
wsl --set-default-version 1
# 切换为 WSL 2
wsl --set-default-version 2
# 查看 wsl 版本
wsl -l -v
wsl -l --all -v
# 查看 wsl 在线支持的子系统
wsl --list --online
# 安装 wsl 子系统,以 ubuntu
为例
wsl --install -d Ubuntu-22.04
# 查看子系统状态
wsl --status
# 卸载 wsl 子系统
wsl --unregister Ubuntu-22.04
# 关闭 wsl
子系统,不用的时候想着关闭,不关闭大约会占用1-2G内存
wsl --shutdown
# 启动 wsl 子系统,在 cmd 中执行
bash 命令,可以启动 wsl 子系统
wsl
# 导出 Linux 发行版 tar 文件到
D盘
wsl --export Ubuntu-22.04
d:/wsl-ubuntu-22.04.tar
# 导入并安装 WSL2 到 D盘
wsl --import Ubuntu-22.04 d:/wsl-ubuntu-22.04
d:/wsl-ubuntu-22.04.tar --version 2
# 设置默认登录用户为安装时用户名
ubuntu2204 config --default-user
ming.xu

上面演示了一下,查询、卸载、安装
Ubuntu 22.04
的过程,一气呵成!哈哈~
- • 相关错误:
-
- • 启动 Ubuntu 22.04
时候提示错误:
WslRegisterDistribution failed
with error: 0x800701bc
-
- 出现这个 error 的原因是:wsl1 升级到 wsl2
之后,内核却没有升级,因此需要更新内核。
- 解决方法:适用于 x64 计算机的 WSL2 Linux
内核更新包:、
-
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
- • 启动 Ubuntu 22.04
时候提示错误:
WslRegisterDistribution failed with error:
0x80370102
-
- 出现这个 error 的原因是:没有开启虚拟化,其实前面已经讲到了这个问题,总结概论。
- 解决方法:
- • Enable Hyper-V
- • Enable Hardware Virtualization
- • Enable Nested Virtualization & Change RAM
Settings
- • 设置 Ubuntu 账号和密码
- 《Windows10 安装子系统 Ubuntu18.04 Xfce图形界面》教程中,已经详细地讲过设置 Ubuntu
账号和密码。
- 这里准备都使用 root 登录了,就不再建其他的 Ubuntu 账号和密码了。由于远程登录时需要密码,因此还是需要使用
passwd root 设置一下 root 的密码的。
- • Windows11 和
Ubuntu22.04 文件访问
-
- • 如何从 Windows11 访问
Ubuntu22.04 文件系统
- 与在虚拟机中使用 Linux 不同,从 Linux 访问 Windows 文件很容易,反之亦然。
- 打开「文件资源管理器」在左边的导航窗格中选择「Linux」。在 Windows 和 Linux
之间移动文件时,确保使用的是副本,而不是原始件。(一些文件类型存在兼容性问题,有时文件会损坏。)
• 如何从 Ubuntu22.04 访问
Windows11 文件系统
在 Linux bash shell 中,使用命令 cd /mnt/c/
移动到根目录。
然后使用ls命令列出目录和文件。可以看到它们都是 Windows 目录和文件。

Windows 下 Ubuntu 的桌面连接
在 Windows 中可以使用 LINUX GUI APPS 运行应用程序,但是有些时候还是在 Linux
下看效果的,是很有必要的。
因此我还是选择,安装 Linux 图像界面,然后在操作系统中进行操作。
连接桌面之前,首先 Ubuntu 要有个图像界面。
Ubuntu 发行版本中可以根据自己的喜好安装 KDE、Gnome、xfce、lxde 等桌面环境。
个人比较喜欢 Xfce。它是一种快速,稳定且轻巧的桌面环境,非常适合在远程服务器上使用。
也可以使用 Gnome,Gnome 是 Ubuntu 的默认桌面上环境,也是多数发行版的默认桌面环境。
Gnome与xfce相比,xfce由于其轻巧,它可以安装在低端台式机上。Xfce优雅的外观,增强了用户体验,它对用户非常友好,性能优于其他桌面环境,它提供了许多可定制的接触点以供灵活使用。
Gnome与xfce相比,Gnome它具有简单但有效的用户界面。用户在屏幕上有更多动态的工作区域。它具有内置的恢复功能,可帮助用户保持工作的连续性非常适合初学者浏览所有功能并学习。它为开发着的应用程序的运行提供了一个完美的兼容平台。
Ubuntu 安装图形界面
Xfce4
- • 安装 Xfce4
sudo apt update
sudo apt install xfce4
sudo apt install -y
xfce4-goodies
- • 在安装 xfce4 时候提示错误:
/usr/lib/wsl/lib/libcuda.so.1
is not a symbolic link
- 解决方法:
- 分析原因,
/usr/lib/wsl/lib/
目录下都是文件而不是链接,又因为该目录只读,因此只能将在其他目录操作,具体步骤如下:
cd /usr/lib/wsl
sudo mkdir lib2
sudo ln -s lib/* lib2
sudo ldconfig
注意更改链接路径之后,以后更新驱动之后需要重新链接,否则 lib2 中和 lib 中不一致从而导致
wsl 中不可使用 windows 下的驱动需要将
/etc/ld.so.conf.d/ld.wsl.conf 中的
/usr/lib/wsl/lib 改为
/usr/lib/wsl/lib2。
# This file
was automatically generated by
WSL. To stop automatic
generation of this file, add
the following entry to
/etc/wsl.conf:
# [automount]
# ldconfig =
false
/usr/lib/wsl/lib2
但是设置之后重启 wsl 会自动还原
/etc/ld.so.conf.d/ld.wsl.conf
文件,如果不想还原,还需要修改文件 /etc/wsl.conf
:
[boot]
systemd=true
[automount]
ldconfig = false
- 我们用 cat 命令看一下这两个文件的修改内容如下:

Ubuntu 安装远程桌面
xrdp
- • 安装 xrdp
# 安装xrdp
sudo apt install -y
xrdp
- • 配置 xrdp
-
- • 由于
xrdp安装好后默认配置使用的是和 Windows 远程桌面相同的
3389 端口,为了防止和 Windows
系统远程桌面冲突,建议修改成其他的端口 3390 。
- 需要将
/etc/xrdp/xrdp.ini
文件中的 更改为 port=3390。
# 配置xrdp端口
sudo sed -i 's/port=3389/port=3390/g'
/etc/xrdp/xrdp.ini
- • 需要将当前用户指定登录 session
类型,注意这一步很重要,如果不设置的话会导致后面远程桌面连接上闪退。
- 新建文件
~/.xsession 添加一行
xfce4-session。
#
向xsession中写入xfce4-session
sudo echo xfce4-session
>~/.xsession
- • 由于 WSL2 里面不能用
systemd
,所以需要手动启动:
# 启用远程桌面
sudo /etc/init.d/xrdp start
* Starting Remote Desktop
Protocol server [ OK
]
# 关闭远程桌面
sudo /etc/init.d/xrdp stop
* Stopping Remote Desktop
Protocol server [ OK
]
Windows
通过远程桌面连接 Ubuntu
桌面连接也有多个选择,可以通过
Windows 远程桌面连接
,也可以使用
X Server Window。
之前我选择的
X Server Window 方式。我使用的
X410, 也可以使用
VcXSrv
或者
Xming。
之前购买的
X410
真让人心碎,已经更改为月费、年费模式了,当然官网也可以购买单机独立版,不过也是小贵,需要 $89.99。
果断放弃了,反而觉得
Windows 远程桌面连接 很香。
- • 远程桌面连接使用 Windows 远程桌面连接
访问,就比较简单了。
- 运行
mstsc 命令启动
远程桌面连接,地址栏输入
localhost:3390,连接即可。

- 输入WSL2 中使用的账号密码,我用 root 登录的。

- • 开启音量控制时提示:
Establishing connection to
PulseAudio. Please wait...解决方法:
pulseaudio --check
pulseaudio -D
- • 输入法安装:
# 安装 输入法
sudo apt install ibus
# 安装 拼音
sudo apt install ibus-pinyin
# 重启 ibus 输入法
ibus-daemon -d -x -r
启动输入法错误提示:
- 解决方法:
- 译:IBus 已启动!若还不能用 Ibus,请您将以下的三行代码加到 $HOME/.bashrc,再重新登录。
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
注意:
- 虽然 Ibus 使用一个后台程序,但不是被 systemd
管理的那种后台程序:
- 普通用户也可以运行,当登录时,会自启动。
- 若 ibus 尚未启动,
-
将那些'export'的代码复制到$HOME/.xprofile,
- 将这行代码加到该文件:'ibus-daemon
-drx'
- 再重新登录。这时输入法便可以正常运行了。
- • Ubuntu 中文支持
- 安装中文支持在《Windows10 安装子系统 Ubuntu18.04
Xfce图形界面》也详细地讲解过。
-
如果有需要的话,自行安装即可,因为后面使用浏览器浏览中文网站的时候,都是小方块,因此我安装了中文支持。
Ubuntu 上安装 Unity 开发环境
安装
Unity
- • 安装浏览器 Microsoft Edge
- 由于运行浏览器的时候会提示错误:
Failed to execute default web
browser. input/output error
- 而 UnityHub 登录的时候,正需要浏览器的支持。
- 因此需要选择一个浏览器,个人一直比较喜欢 Microsoft Edge
,因此就选择它了~
-
官网下载地址:https://www.microsoft.com/zh-cn/edge/download/insider?platform=linux
-
我下载的是开发版本:microsoft-edge-dev_116.0.1938.16-1_amd64.deb
- 安装提示:
sudo dpkg -i
microsoft-edge-dev_116.0.1938.16-1_amd64.deb
提示依赖:fonts-liberation 和 libu2f-udev 。
sudo apt install -y
fonts-liberation
sudo apt install -y
libu2f-udev
在Ubuntu 中用 apt 安装软件,系统报出 Unmet dependencies
错误。提示错误:Unmet dependencies. Try 'apt --fix-broken install'
with no packages (or specify a solution).
- 解决方法:
sudo apt --fix-broken
install
sudo apt-get update
sudo apt-get upgrade
安装后,在 root 账户下是无法运行的,很烦...
- 如果是非 root 账号应该是不存在问题的。
-
运行的时候提示错误:
ERROR:zygote_host_impl_linux.cc(90)] Running
as root without --no-sandbox is not supported.
- 解决办法:如果在终端启动下运行的,比较容易,添加
--no-sandbox 参数即可。
microsoft-edge-dev
--no-sandbox
- 问题是在开始菜单栏中、默认浏览器中如何设置?
-
- • 开始菜单栏
要找到快捷图标的根源位置,目录 /usr/share/applications/。

在属性中,设置添加 --no-sandbox 参数。

• 默认浏览器
这个是很有必要的,因为在 UnityHub 点击登录时,会打开默认浏览器访问登录界面。
默认浏览器的设置,在默认应用程序中来设置:

- 这样就可以随时打开任意打开 Microsoft Edge
畅游网络了。
- • 安装 UnityHub
-
- • 要在 Ubuntu Linux 发行版上安装 UnityHub,您需要添加 UnityHub
存储库以及公共签名密钥,以验证软件包的完整性。
wget -qO -
https://hub.unity3d.com/linux/keys/public |
gpg --dearmor | sudo tee
/usr/share/keyrings/Unity_Technologies_ApS.gpg >
/dev/null
- • 要添加 UnityHub 存储库,您需要在终端中输入一个条目。
- 运行以下命令以添加 UnityHub
存储库:
/etc/apt/sources.list.d
sudo sh -c 'echo
'deb
[signed-by=/usr/share/keyrings/Unity_Technologies_ApS.gpg]
https://hub.unity3d.com/linux/repos/deb stable
main' >
/etc/apt/sources.list.d/unityhub.list'
- • 更新包缓存并安装包:
sudo apt update
sudo apt-get install
unityhub
- • 要从系统中删除 UnityHub,请运行以下命令:
sudo apt-get remove
unityhub
- • 安装 Unity 有了 UnityHub ,安装 Unity 就轻松加愉快了~
直接上图 展现一下成果:

安装
IDE
万事俱备,只欠东风~
有了 Unity,还需要写代码的 IDE,这里选择 Rider 和 Visual Studio Code。
- • 安装 Rider
-
官网下载地址:https://www.jetbrains.com/rider/
- 下载文件:JetBrains.Rider-2023.1.3.tar.gz
- 是个压缩包,看看如何安装它。
- 解压安装:
sudo mkdir /opt/jetbrains
sudo tar zxf JetBrains.Rider-2023.1.3.tar.gz
-C '/opt/jetbrains/'
创建快捷方式,终端执行:
cat >
/usr/share/applications/JetBrains.Rider-2023.1.3.desktop
<<EOL
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Name=JetBrains Rider
Icon=/opt/jetbrains/JetBrains
Rider-2023.1.3/bin/rider.svg
Exec='/opt/jetbrains/JetBrains Rider-2023.1.3/bin/rider.sh'
%f
Comment=A cross-platform IDE for
.NET
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-rider
EOL
方便吧,直接就可通过快捷方式启动 Rider 了。
- • 安装 Visual Studio Code
- 官网下载地址:https://code.visualstudio.com/
- 下载文件:code_1.80.0-1688479026_amd64.deb
- 命令安装:
sudo dpkg -i
code_1.80.0-1688479026_amd64.deb
OK,安装完成!
- 运行 vs code ,也存在沙箱问题,跟浏览器的解决方案一致,需要添加
--no-sandbox 参数。
至此,整个开发环境的安装算是完成了~
