在 Windows 中配置 WSL2 与 Debian 的全流程
<h1 id="在-windows-中配置-wsl2-与-debian-的全流程">在 Windows 中配置 WSL2 与 Debian 的全流程</h1><p>这篇文章记录了我在 Windows 10 上配置 WSL2 与 Debian 的全部流程与参考资料。希望对困扰于 WSL 相关问题的读者提供些许帮助。</p>
<p>谢绝转载。</p>
<p>整体流程如下:</p>
<ol>
<li>
<p>确认 Windows 是否支持 WSL2</p>
</li>
<li>
<p>安装 Debian</p>
</li>
<li>
<p>完整 Debian 的基础配置,起码得能用。</p>
</li>
</ol>
<h2 id="确认-windows-版本">确认 Windows 版本</h2>
<p>确认 Windows 版本为 Windows 10 版本 <span class="math inline">\(\geq\)</span> 2004(内部版本 <span class="math inline">\(\geq\)</span> 19041) 或 Windows 11。</p>
<ol>
<li>
<p>以管理员运行 PowerShell</p>
</li>
<li>
<p>输入 <code>::OSVersion.Version</code></p>
<pre><code class="language-powershell">Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Try the new cross-platform PowerShell https://aka.ms/pscore6
PS C:\Windows\system32> ::OSVersion.Version
MajorMinorBuildRevision
-----------------------
10 0 190450
</code></pre>
</li>
<li>
<p>确认版本与 Build 符合要求。</p>
</li>
</ol>
<h2 id="开启与-wsl-相关的-windows-features">开启与 WSL 相关的 Windows Features</h2>
<p>接下来,需要开启 Windows Subsystem Linux 和 Virtual Machine Platform 并重启 Windows。</p>
<ol>
<li>
<p>以管理员运行 PowerShell</p>
</li>
<li>
<p>输入下述指令启动 WSL:</p>
<pre><code class="language-powershell">dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
</code></pre>
<pre><code class="language-powershell">PS C:\Windows\system32> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Deployment Image Servicing and Management tool
Version: 10.0.19041.3636
Image Version: 10.0.19045.3803
Enabling feature(s)
[==========================100.0%==========================]
The operation completed successfully.
</code></pre>
</li>
<li>
<p>输入下述指令启动 VM Platform:</p>
<pre><code class="language-powershell">Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart
</code></pre>
<pre><code class="language-powershell">PS C:\Windows\system32> Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart
WARNING: Restart is suppressed because NoRestart is specified.
Path :
Online : True
RestartNeeded : True
</code></pre>
</li>
<li>
<p>重启 Windows。</p>
</li>
</ol>
<h2 id="安装-wsl-并设置版本">安装 WSL 并设置版本</h2>
<p>这一步里,安装 WSL 并设置版本.</p>
<ol>
<li>
<p>以管理员运行 PowerShell</p>
</li>
<li>
<p>输入下述指令安装 WSL:</p>
<pre><code class="language-powershell">wsl --install
</code></pre>
<p>或</p>
<pre><code class="language-powershell">wsl --install --no-distribution
</code></pre>
<p>在笔者的 Windows 版本下,<code>wsl --install</code> 不会安装 Ubuntu, 但根据 Microsoft 的文档,某些版本下默认会安装 Ubuntu。</p>
</li>
<li>
<p>重启 Windows</p>
</li>
<li>
<p>安装完成后设置 WSL 版本为 WSL2</p>
<pre><code class="language-powershell">wsl --set-default-version 2
</code></pre>
</li>
<li>
<p>输入下述指令确认 wsl 版本:</p>
<pre><code class="language-powershell">wsl --version
</code></pre>
<pre><code class="language-powershell">PS C:\Windows\system32> wsl --version
WSL version: 2.0.9.0
Kernel version: 5.15.133.1-1
WSLg version: 1.0.59
MSRDC version: 1.2.4677
Direct3D version: 1.611.1-81528511
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.19045.3803
</code></pre>
</li>
</ol>
<h2 id="下载并安装-debian">下载并安装 Debian</h2>
<p>在 Microsoft Store 中安装 Debian。</p>
<ol>
<li>打开 Microsoft Store</li>
<li>安装 Debian</li>
<li>安装完成后打开 Debian</li>
<li>第一次进入 Debian 会要求设置用户名和密码。</li>
<li>退出 Debian</li>
</ol>
<h2 id="确认-debian-使用-wsl-2">确认 Debian 使用 WSL 2</h2>
<p>安装完成后的 Debian 可能使用的是 WSL 1 而不是 WSL 2。</p>
<ol>
<li>
<p>以管理员运行 PowerShell</p>
</li>
<li>
<p>输入下述代码查看已安装的 WSL 机器和 WSL 版本</p>
<pre><code class="language-powershell">PS C:\Windows\system32> wsl -l -v
NAME STATE VERSION
* Debian Stopped 2
</code></pre>
</li>
<li>
<p>如果显示 VERSION 下显示 2 则说明 Debian 使用 WSL2。</p>
<p>如果显示 1 则使用下述代码将 Debian 设置成 WSL2:</p>
<pre><code class="language-powershell"># wsl --set-version <distro name> 2
</code></pre>
<pre><code class="language-powershell">wsl --set-version Debian 2
</code></pre>
</li>
</ol>
<h1 id="小结">小结</h1>
<p>至此,Debian已经安装完成,打开即可使用 CLI 来操作了。不过,想要使用带GUI的软件或是中文,还有几件事需要完成:</p>
<ol>
<li>配置 基本的 WSL - Win10 剪切板互通</li>
<li>配置 国内镜像源</li>
<li>配置 GUI 用来打开软件</li>
<li>配置 中文字体</li>
<li>配置 中文输入法</li>
</ol>
<h2 id="配置-基本的-wsl---win10-剪切板互通">配置 基本的 WSL - Win10 剪切板互通</h2>
<ol>
<li>
<p>打开 WSL - Debian 界面,右键点击界面的标题栏,选中属性</p>
<p><img src="https://img2024.cnblogs.com/blog/3292156/202402/3292156-20240215210457883-1031400276.png"></p>
</li>
<li>
<p>在选项中勾选 ”将 Ctrl + Shift + C/V“ 用作复制/粘贴的快捷键</p>
<p><img src="https://img2024.cnblogs.com/blog/3292156/202402/3292156-20240215210530721-1443251055.png"></p>
</li>
</ol>
<p>想要更加完美的实现剪切板互通,需要让 Debian 调用 Win10 的 clip.exe 实现。在一些软件里会有这样的需求,笔者后续会实现 WSL-Debian-vim 读写 Win10 剪切板</p>
<h2 id="配置-国内镜像源">配置 国内镜像源</h2>
<p>国内镜像源很多,这里选择清华的镜像源。</p>
<ol>
<li>
<p>打开并登录 WSL - Debian</p>
</li>
<li>
<p>将原有文件设置备份</p>
<pre><code class="language-shell">sudo mv ~/etc/apt/sources.list ~/etc/apt/sources.list.backup
</code></pre>
</li>
<li>
<p>创建新的 <code>~/etc/apt/sources.list</code></p>
<pre><code class="language-shell">sudo touch ~/etc/apt/sources.list
</code></pre>
</li>
<li>
<p>在新的 <code>sources.list</code> 中输入:</p>
<pre><code class="language-shell">deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb http://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
</code></pre>
</li>
<li>
<p>Debian CLI 中输入下述代码安装 镜像站 https 证书</p>
<pre><code class="language-shell">sudo apt update -y
sudo apt install apt-transport-https ca-certificates
</code></pre>
</li>
<li>
<p>在 <code>~/etc/apt/sources.list</code> 中,将所有的 <code>http://</code> 改成 <code>https://</code></p>
</li>
<li>
<p>Debian CLI 中输入下述代码更新 Debian 软件</p>
<pre><code class="language-shell">sudo apt update -y && sudo apt upgrade -y
</code></pre>
</li>
</ol>
<p>至此,国内镜像站配置完成。</p>
<h2 id="配置-gui-wsl-2-自己带有-wslg不再需要这一步了">配置 GUI (WSL 2 自己带有 WSLg,不再需要这一步了)</h2>
<p>这一步,在 Windows 上安装并运行 X server,并配置 WSL2 中的 Debian 使用 X server 运行需要 GUI 的软件。</p>
<ol>
<li>
<p>在 source forge 上下载 VcXsrv Windows X Server</p>
</li>
<li>
<p>安装 VcXsrv 并运行 XLaunch</p>
</li>
<li>
<p>在 XLaunch 的 Select display settings 中,将 Display number 改为 0</p>
</li>
<li>
<p>在 XLaunch 的 Extra Settings 中,勾选 Disable access control 选项</p>
</li>
<li>
<p>在 XLaunch 的 Configuration complete 界面,点击 Save configuration 来保存设置,下次通过保存的文件启动即可。</p>
</li>
<li>
<p>打开 WSL2 Debian</p>
</li>
<li>
<p>在 ~/.bashrc 中加入下述代码并保存后退出:</p>
<pre><code class="language-bash"># Setting DISPLAY pointing to the X server on Windows
export DISPLAY=:0
</code></pre>
</li>
<li>
<p>在 Debian CLI 中 <code>source ~/.bashrc</code></p>
</li>
</ol>
<p>至此,如果 Debian 安装了 firefox-esr,X Server 会在 Windows 新开一个窗口并运行 firefox-esr。</p>
<p>**Note: ** WSL2 更新速度跟不上一些软件,导致WSL不能完美支持一些软件的最新版本,如 firefox-esr。</p>
<h2 id="配置中文字体">配置中文字体</h2>
<p>默认的 Debian 为英文环境,我们需要配置中文环境与相关的管理软件。</p>
<ol>
<li>
<p>检查是否安装语言环境管理包 locales、字体管理包 fontconfigs</p>
<pre><code class="language-shell">apt list --installed | grep locales
apt list --installed | grep fontconfigs
</code></pre>
</li>
<li>
<p>若没有locales,则安装 :</p>
<pre><code class="language-shell">sudo apt-get install locales
</code></pre>
<p>在 Debian CLI 中配置 <code>locales</code></p>
<pre><code class="language-shell">sudo dpkg-reconfigure locales
</code></pre>
<p>配置界面中,上下左右为移动键,空格为选择键,回车为确认键</p>
<p>需要选择 <code>en_US.utf8</code> 与 <code>zh_CN.utf8</code></p>
<p>默认 <code>locales</code> 选 <code>en_US.utf8</code> (默认自行选择即可)</p>
<p>在 <code>.bashrc</code> 中加入下列代码使 CLI 支持中文字符:</p>
<pre><code class="language-bash">export LC_ALL=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
</code></pre>
<p>在 CLI 中 <code>source .bashrc</code> 后,输入 <code>locale</code> 确认 <code>LC_ALL</code> 、<code>LANGUAGE</code> 、<code>LC_ALL</code> 都设置成 <code>en_US.UTF-8</code>:</p>
<pre><code class="language-shell"> $ locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
</code></pre>
</li>
<li>
<p>配置 fontconfigs,启用bitmap (可略过此步骤):</p>
<pre><code class="language-shell">sudo dpkg-reconfigure fontconfig-config
</code></pre>
<p>在 preferred method for tuning fonts 中,选择 Autohinter (Native/Autohinter/None)</p>
<p>在 preferred automatic font hinting styple 中,选择 Medium (None/Slight/Medium/Full)</p>
<p>在 subpixel rendering 中,选择 Automatic (Automatic/Always/Never)</p>
<p>在 enable bitmapped fonts by default 中,选择 Yes (Yes/No)</p>
</li>
<li>
<p>安装可直接通过 apt 管理的常用字体:</p>
<pre><code class="language-shell"> sudo apt-get install <FONTPACKAGE_NAME>
# Common monospace font
fonts-jetbrains-mono
fonts-hack
# Common english fonts
fonts-liberation2
# Common Chinese fonts
*fonts-wqy*
*fonts-arphic*
sudo apt-get install xfonts-intl-chinese
</code></pre>
</li>
</ol>
<p>至此,打开其他带有中文 GUI 的软件,中文可以正常显示。</p>
<h2 id="配置中文输入法">配置中文输入法</h2>
<ol>
<li>
<p>检查常见的 IMF(Input-Method Framework) 是否存在。</p>
<pre><code class="language-bash">apt list --installed | grep ibus
apt list --installed | grep fcitx
</code></pre>
<p>若不存在则安装喜欢的IMF。我选择了 iBus。</p>
<pre><code class="language-bash">sudo apt-get install ibus
</code></pre>
</li>
<li>
<p>确认 dbus (desktop bus) 是否安装</p>
<pre><code class="language-bash">apt list --installed | grep dbus
</code></pre>
<p>若不存在则安装 dbus-x11</p>
<pre><code class="language-bash">sudo apt-get install dbus-x11
</code></pre>
</li>
<li>
<p>安装基于对应 IMF 的 IME(Input-Method Editor),我选择了 ibus-pinyin</p>
<pre><code class="language-bash">sudo apt-get install ibus-pinyin
</code></pre>
</li>
<li>
<p>配置iBus,自己喜欢就好。</p>
<pre><code class="language-bash">ibus-setup
</code></pre>
</li>
<li>
<p>修改 ~/.bashrc, 添加下列变量:</p>
<pre><code class="language-bash">export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
</code></pre>
</li>
<li>
<p>之后在 CLI 或者 firefox 等GUI页面中就可以使用中文输入法输入中文了。</p>
<p>值得注意的是,WSL2打开的CLI terminal是无法显示中文(可以输入,但无法显示)的,想在 terminal 中使用中文,需要用支持 UTF-8 的 terminal emulator 才行。</p>
<p>我自己测试时发现每次进入 debian 时 ibus 都已经启动了,可能在 ibus-setup 中自动设置了吧。</p>
</li>
</ol>
<h1 id="总结">总结</h1>
<p>至此,在windows中配置 WSL2 与 Debian 的全部流程就结束了。现在的 Debian 有了复制粘贴、国内镜像源、GUI、中文字体与输入法,可以的在Debian上做自己其他想做的事情了。</p>
<p>祝好。</p>
<hr>
<p>ref:<br>How to Install WSL2 on Windows 10 (Updated) - visited on 2024-01-09<br>Microsoft - 如何使用 WSL 在 Windows 上安装 Linux - visited on 2024-01-09<br>清华大学开源软件镜像站 - Debian 软件源 - visited on 2024-01-09<br>Arch Wiki: Font configuration - visited on 2024-01-15<br>Arch Wiki: Input Method - visited on 2024-01-16<br> Microsorft: 将版本从 WSL1 升级到 WSL2 <br></p><br><br>
来源:https://www.cnblogs.com/wanderoff-night/p/17988720
頁:
[1]