无限思量 發表於 2024-10-24 21:36:00

Win11安装基于WSL2的Ubuntu

<h1 id="1-概述">1. 概述</h1>
<p>趁着还没有完全忘记,详细记录一下在Win11下安装基于WSL2的Ubuntu的详细过程。不得不说WSL2现在被微软开发的比较强大了,还是很值得安装和使用的,笔者就通过WSL2安装的Ubuntu成功搭建了ROS环境。</p>
<h1 id="2-详论">2. 详论</h1>
<h2 id="21-子系统安装">2.1 子系统安装</h2>
<p>在Win11搜索栏中搜索“启用或关闭Windows功能”,在弹出的“Windows功能”对话框中,勾选择 “适用于Linux的Windows子系统”和“虚拟机平台”,如下图1所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/1000410/202410/1000410-20241024212913916-525102644.png"></p>
<p>点击“确定”按钮,等待Windows更改完成。在选择“立即重新启动”,重新进入Win11系统之后,启动Windows PowerShell。注意,为了避免权限问题,后续所有启动Windows PowerShell的方式都可以以管理员身份运行。笔者也不太清楚哪些要管理员权限,哪些不要,干脆就统一以管理员身份运行好了。</p>
<p>在Windows PowerShell中输入如下命令:</p>
<pre><code class="language-shell">wsl --update
</code></pre>
<p>之后就会更新wsl,如下图2所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/1000410/202410/1000410-20241024212935727-1071539207.png"></p>
<p>注意,如果你是用的比较新的Win11版本,那么应该就会默认安装到WSL2,所以不用进行切换WSL版本。如果安装的还是WSL1,那么就要升级到WSL2,因为WSL1和WSL2的特性是不太一样的。</p>
<p>接下来通过Microsoft Store安装Ubuntu发行版,可以直接在Microsoft Store中搜索Ubuntu,笔者这里安装的是Ubuntu 20.04.6 LTS版本,如下图3所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/1000410/202410/1000410-20241024212954567-1059963449.png"></p>
<p>现在Microsoft Store的网络连接应该比较稳定了,下载安装过程还是比较顺利的。安装完成之后,就可以在系统搜索栏搜索到“Ubuntu 20.04.6 LTS”并启动,如下图4所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/1000410/202410/1000410-20241024213013036-125950319.png"></p>
<p>第一次启动Ubuntu终端的时候会让你创建用户名和密码,按照提示进行设置即可。不过笔者在这一步的时候不小心关闭终端了,后果就是每次启动Ubuntu终端的账户的时候都是root账户。</p>
<p>应该来说整个系统的安装过程还是很顺利的,并没有遇到诸如需要切换版本、下载其它终端、迁移地址等问题。</p>
<h2 id="22-资源管理">2.2 资源管理</h2>
<p>按照惯例,安装好Ubuntu第一件事就是更新和升级包管理器,这是安装依赖库或者软件必须。在终端输入如下指令:</p>
<pre><code class="language-shell">apt-get update
apt-get upgrade
</code></pre>
<p>经过笔者的测试,上述指令现在没有遇到网络问题了,不知道是不是因为是WSL的原因。如果无法更新的话,有两种解决方式,一种是设置代理,还有一种是换源,这里就不多作论述了。</p>
<p>使用WSL的Ubuntu的好处就是方便资源管理,比如前面提到的要给包管理器换源,就要编辑/etc/apt/sources.list这个文件。但是这时是没有GUI界面的,只有使用像Vim和nano这样基于终端的文本编辑器,笔者反正是不太想使用的。但是在WSL下,如果你按照之前的步骤顺利安装完成,就可以直接通过Win11自带的文件资源管理器访问到Ubuntu下所有的文件,如下图5所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/1000410/202410/1000410-20241024213031961-882801161.png"></p>
<p>文件资源能访问到当然就可以通过Win11的文本编辑器打开并编辑(需要注意Windows和Ubuntu文本文件的换行问题)。不仅是文本文件,任何文件资源的拷贝和移动都很方便,可以实现常规的复制粘贴操作。其实文件资源不拷贝也行,两个系统之间的文件本身就可以互相访问,当然可能需要解决一些权限问题。</p>
<h2 id="23-gui界面">2.3 GUI界面</h2>
<h3 id="231-wslg">2.3.1 WSLg</h3>
<p>既然都用上Ubuntu了,当然还是想给它装上GUI界面。其实目前最新的WSL2已经集成了WSLg技术,也就是可以支持GUI程序,只需要安装GUI程序,然后运行就可以了。在Ubuntu终端中输入指令:</p>
<pre><code class="language-shell">xeyes
</code></pre>
<p>就可以在Win11系统中看到xeyes应用程序窗口,如下图6所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/1000410/202410/1000410-20241024213047991-1385201069.png"></p>
<p>如果没有出现xeyes窗口,那么可能是Win11版本、WSL版本太低或者GPU驱动的问题,都进行更新一下即可。如果顺利出现,就说明可以直接打开Ubuntu的GUI程序。例如,可以打开Ubuntu的文件资源管理器:</p>
<pre><code class="language-shell">thunar
</code></pre>
<p>如果提示不识别,就安装一下:</p>
<pre><code class="language-shell">sudo apt-get update
sudo apt-get install thunar
</code></pre>
<p>启动窗口如下图7所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/1000410/202410/1000410-20241024213103975-1493439053.png"></p>
<p>应该来说,双系统资源互通加上这个文件资源管理器,应该能方便解决很多问题了。</p>
<h3 id="232-vcxsrv">2.3.2 VcXsrv</h3>
<p>如果还是想获得沉浸式的桌面体验,那么就需要安装桌面环境了。不过这种方案不是安装了包就行了,更类似于远程桌面连接,需要在Win11端安装X服务器VcXsrv,可以在其官方网站上下载。</p>
<p>下载安装完成后会在桌面上生成一个XLaunch的快捷方式。为了以防外一,还是以管理员方式启动XLaunch,首先配置展示设置,如下图8所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/1000410/202410/1000410-20241024213120647-1174681255.png"></p>
<p>展示配置用于设置Ubuntu桌面以及GUI程序的窗口方式,其实四种方式其实都可以,这里就以Multiple windows为例。点击下一步,配置如何启动客户端,如下图9所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/1000410/202410/1000410-20241024213141843-1927332380.png"></p>
<p>这里保持默认配置就行。继续下一步,进行额外配置,如下图10所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/1000410/202410/1000410-20241024213158396-865227204.png"></p>
<p>注意这里的Disable access control是一定要勾选的,否则可能无法启动GUI桌面。继续下一步,点击“Save configuration”可以将配置保存,便于下一次启动。点击“完成”,VcXsrv就会正式启动,如下图11所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/1000410/202410/1000410-20241024213213773-1305305123.png"></p>
<p>一定要注意,通过Multiple windows方式启动的VcXsrv是看不到窗口的,它是在后台启动的,可以在任务管理器中看到。如果因为各种原因需要重启,就在任务管理器中关掉,确保只有一个VcXsrv程序。</p>
<p>以上是在win11端中的操作,接下来就是在Ubuntu终端的操作。同样的,为了避免问题以管理员方式启动Ubuntu终端,并且使用root权限账号。使用如下指令安装xfce4桌面环境:</p>
<pre><code class="language-shell">sudo apt install xfce4
</code></pre>
<p>配置远端的展示地址,指令如下:</p>
<pre><code class="language-shell">export DISPLAY=192.168.31.168:0
</code></pre>
<p>注意这里使用的192.168.31.168要换成你Win11端的IP地址,localhost或者127.0.0.1是不行的,因为对Ubuntu来说,Win11端其实是远端,一定要用Win11端的IP地址。这一步在每次启动桌面环境的时候都要设置,如果对Ubuntu环境比较熟的话可以配置到.bashrc文件中,可以避免每次都执行这个操作。</p>
<p>通过<code>sudo startxfce4</code>启动xfce4桌面环境,效果如下图12所示:</p>
<p><img src="https://img2024.cnblogs.com/blog/1000410/202410/1000410-20241024213231974-1793344312.png"></p>
<h3 id="233-问题">2.3.3 问题</h3>
<p>如果是使用WSLg还是VcXsrv连接的方式,都还是有一些问题的。WSLg的问题是启动GUI程序是不支持高分屏的,这样GUI上的文字特别小,看起来非常伤眼睛。VcXsrv的问题是只有以Multiple windows方式启动的桌面环境才能支持GPU/OpenGL,但是这种方式启动的桌面环境中打开的GUI程序有点问题,具体表现为点击标题栏的关闭按钮无法生效,或者无法通过标题栏拖动窗口的位置。图8所示的其他方式如Fullscreen、One large window等就没这个问题,但是又不支持GPU/OpenGL。</p>
<p>不过话说回来,对使用GPU的GUI程序来说,基于WSL的Ubuntu确实不是最优解,笔者这里使用<code>glxinfo | grep "OpenGL"</code>显示的OpenGL只能支持到OpenGL 3.1,更不谈其他显卡的驱动了。以后有机会的话还是试试双系统的Ubuntu,体验一下满血Ubuntu的感觉。</p>
<h1 id="3-参考">3. 参考</h1>
<ol>
<li>Win11安装WSL2 子系统以及不同分发版Ubuntu系统</li>
<li>WS2 安装ubuntu +迁移+vscode</li>
<li>通过 VcXsrv 在 WSL2 上使用图形化界面</li>
<li>wsl最丝滑的图形桌面设置方式是什么?</li>
</ol><br><br>
来源:https://www.cnblogs.com/charlee44/p/18501375
頁: [1]
查看完整版本: Win11安装基于WSL2的Ubuntu