Windows11子系统Ubuntu22.04Unity开发环境

标签:
wsl |
分类: Windows_office_微软 |
系统更新换代喽~ 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 一起运行 | ||
托管 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 环境设置
-
•
使用命令行设置以管理员权限启动 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
•
可以在 Microsoft
Store
Microsoft Store
# 安装 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时候提示错误: 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
sudoapt install xfce4
sudoapt 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
sudomkdir lib2
sudoln -s lib/* lib2
sudoldconfig 注意更改链接路径之后,以后更新驱动之后需要重新链接,否则 lib2 中和 lib 中不一致从而导致 wsl 中不可使用 windows 下的驱动需要将 /etc/ld.so.conf.d/ld.wsl.conf
中的 /usr/lib/wsl/lib
改为 /usr/lib/wsl/lib2
。# Thisfile 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
sudoapt install -y xrdp -
•
配置 xrdp -
-
•
由于 xrdp
安装好后默认配置使用的是和 Windows 远程桌面相同的3389
端口,为了防止和 Windows 系统远程桌面冲突,建议修改成其他的端口 3390
。 -
需要将 /etc/xrdp/xrdp.ini
文件中的 更改为 port=3390
。# 配置xrdp端口
sudosed -i 's/port=3389/port=3390/g' /etc/xrdp/xrdp.ini -
•
需要将当前用户指定登录 session 类型,注意这一步很重要,如果不设置的话会导致后面远程桌面连接上闪退。 -
新建文件 ~/.xsession
添加一行 xfce4-session
。# 向xsession中写入xfce4-session
sudoecho 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 远程桌面连接 访问,就比较简单了。 -
运行 mstsc
命令启动 远程桌面连接,地址栏输入 localhost:3390
,连接即可。 -
输入WSL2 中使用的账号密码,我用 root 登录的。 -
•
开启音量控制时提示: Establishing connection to PulseAudio. Please wait... pulseaudio --check
pulseaudio-D -
•
输入法安装: # 安装输入法
sudoapt install ibus
#安装 拼音
sudoapt 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
sudoapt 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
sudoapt-get update
sudoapt-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
sudoapt-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
sudotar zxf JetBrains.Rider-2023.1.3.tar.gz -C "/opt/jetbrains/" 创建快捷方式,终端执行: cat > /usr/share/applications/JetBrains.Rider-2023.1.3.desktop <<EOL
#!/usr/bin/envxdg-open
[DesktopEntry]
Version=1.0
Type=Application
Name=JetBrainsRider
Icon=/opt/jetbrains/JetBrainsRider-2023.1.3/bin/rider.svg
Exec="/opt/jetbrains/JetBrainsRider-2023.1.3/bin/rider.sh" %f
Comment=Across-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
参数。
至此,整个开发环境的安装算是完成了~