加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2023-08-09 21:49:46)
标签:

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 环境设置

    • 打开 Linux 子系统功能Win11 设置 -> 启用或关闭 Windows 功能

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

    需要安装箭头指向的这四个功能组件。安装重启的时候,记得进 主板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

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

上面演示了一下,查询、卸载、安装 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 目录和文件。


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

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 命令看一下这两个文件的修改内容如下:

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

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,连接即可。

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

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

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

  • • 开启音量控制时提示: 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 

    启动输入法错误提示:

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

  • 解决方法:

  • 译: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/

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

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

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

    • 默认浏览器

    这个是很有必要的,因为在 UnityHub 点击登录时,会打开默认浏览器访问登录界面。

    默认浏览器的设置,在默认应用程序中来设置:

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

  • 这样就可以随时打开任意打开 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 就轻松加愉快了~

       直接上图 展现一下成果:

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

安装 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 参数。

至此,整个开发环境的安装算是完成了~

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

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有