如何设置Windows 11的WSL系统用作开发环境(含Astrill设置)
如何设置Windows 11的WSL系统用作备用桌面环境
引子:
2023年末,公司突然遭遇网络攻击,调整了防火墙设置,连接VPN用来飞X软件,与原来使用的VPN软件冲突了,因此要么设置双启动系统,要么用虚拟系统;此外,也想设置一个专用系统用于开发环境;那么最小代价是什么,WSL V2似乎是首选?
备注:
- 以下设置步骤基本都来自于公开资料,不少步骤都有多种操作方法(CSDN或者知乎相关文章),但是经过检索和尝试之后,本文中提供的方法经验证有效的步骤;
- 考虑到不同读者的背景,挑选了图形界面操作和命令行两种操作方式。如果有开发经验或者习惯于使用终端命令的读者会发现,命令行更直接和高效。
安装前准备(参加文献2)
为确保WSL V2版能使用虚拟GPU功能,确保Linux GUI程序的正确运行,推荐安装前确认显卡驱动更新到合适的版本;
【特别说明】因为是支持WSL2运行虚拟GPU,因此在相应链接中请下载用于Windows 11(32/64位)对应版本的驱动
- Intel GPU 驱动程序
- AMD GPU 驱动程序
- NVIDIA GPU 驱动程序
第1步:安装WSL V2(参见文献1)
1.1 安装Windows Subsystem for Linux(即WSL)
方法1:开启Windows 功能(Windows 11默认使用WSL 2)
在Windows 11的“搜索”中输入“启用功能”,选择
在“Windows功能”对话框中,选择如下3项
【注意】
Hyper V选项(见下图)不是必须的,如果仅仅使用WSL提供Ubuntu等Linux系统,建议不选择此项,节省资源。
方法2:直接在Powershell中使用命令
运行该命令时注意Powershell以管理员权限启动(以下无特殊说明都建议使用管理员权限进行安装和设置)
wsl --install
说明: 安装接近尾声的时候,会涉及到用户账号信息设置(名字以及账号密码),类似下方的提示内容,参考提示设置即可。
第2步:安装Ubuntu系统
方法1:使用 Windows Store提供的Ubuntu
在Windows Store中输入Linux关键词的时候,会出现不少可以选择的版本,截止2024年1月,最新的稳定版本(LTS版本)是22.04.3 LTS,直接选择安装即可。
方法2:第一步中的命令已经默认安装合适的Ubuntu发行版本,不需要额外操作
【补充说明】使用 WSL 命令安装其他Linux版本
wsl --list --online
将显示可以安装的Linux分发版本如下:
然后以如下命令,安装期望的版本。注意尖括号<>中的版本应该输入红色框线那一列的名字,而不是右边的“Friendly Name”
wsl --install -d <Distribution Name>
【注意】
如果运行“wsl --list --online”报错,显示如下内容,请参考此处【安装WSL时遇到“无法解析服务器名称或地址”的错误及解决方法】
第3步:设置WSL Ubuntu系统的中文本地信息及字体
3.1 安装中文语言包并设置中文为默认语言
1)设定中文区域配置
sudo apt install language-pack-zh-hans
sudo dpkg-reconfigure locales
运行上述第2行命令之后,会出现一个文本模式的菜单设置界面(如下),使用TAB健移动光标位置,空格键选择对应的区域选项(用PageUp/PageDown可以翻页),然后确定退出,即可完成设置。
【说明】上图中是已经完成中文设置的显示效果,读者第一次操作时可能显示的是全英文,仔细阅读文字说明即可,不用紧张。
到这里,重启WSL Ubuntu终端即可显示中文。但是,如果运行Linux GUI软件(譬如火狐或者谷歌浏览器),还是无法正常显示中文。按照接下来步骤安装中文字体,才能解决问题。
2)为系统安装中文字体
sudo apt install fontconfig
sudo cp -r /mnt/c/Windows/Fonts /usr/share/fonts/windows
sudo apt-get install --reinstall ttf-mscorefonts-installer
sudo fc-cache -f -v
上述命令中:
- 第1行:安装字体管理程序
- 第2行:直接借用宿主操作系(即用来安装WSL的Windows11)自带的字体,复制一份到WSL的字体文件中,避免了满世界找字体的麻烦(注:确实有不少文章推荐使用Linux专用字体并进行了详细说明,如果有时间和精力可以自行研究,可参见文献4)。
- 第3行:安装微软TTF字体转换程序;安装过程中可能会出现如下菜单操作界面,按提示进行操作即可。
- 第4行:刷新系统字体缓存
如果顺利完成以上步骤,恭喜你!此时应该能顺利使用Linux GUI程序,并且能正确显示中文(参见下图火狐窗口)。
【特别说明】读者可以像使用Windows 11内置应用一样使用Linux GUI程序,因此体验很平滑。
不过,到此为止,仍然有一个问题,就是没有办法直接针对该Linux GUI输入中文。如果需要解决这个问题,可以继续下文的操作。
第4步:设置WSL Ubuntu系统的中文输入法(可选)
sudo locale-gen
sudo apt install -y fcitx fcitx-googlepinyin
dbus-uuidgen > /var/lib/dbus/machine-id
说明:
- 第1行:将生成所有本地化的配置的文件(即/usr/lib/locale/locale-archive),如果是WSL,可以直接执行,因为默认就只有如下几种本地配置,加上我们定义的中文区域设置,不会太耗时。
- 第2行:安装fctix输入法框架程序,以及谷歌的拼音输入法(注:为了图省事,直接用推荐的,其实也不错;喜欢折腾的可以再研究一下搜狗的Linux版);
- 第3行:为防止后续某些浏览器使用出现“无法找到/var/lib/dbus/machine-id”错误,先提前生成一个;
接下来在“/etc/profile.d/”创建fcitx.sh脚本;此步骤对于Linux不熟悉的同学有点麻烦,请参考以下操作命令。
sudo apt install gnome-text-editor
cd /etc/profile.d
sudo gnome-text-editor fcitx.sh
注意:第2行中的“profile.d”是一个目录;
运行第3行之后,会启动GNome文本编辑器(图形界面的软件),编辑fcitx.sh脚本并保存。详细内容如下(可以直接复制):
#!/bin/bash
export QT_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export DefaultIMModule=fcitx
#optional
fcitx-autostart &>/dev/null
为方便后续运行,直接设定脚本运行权限并运行;(备注:部分资料用的是source命令,但也有论坛上反馈说刷新无效)。
sudo chmod +x /etc/profile.d/fcitx.sh
/etc/profile.d/fcitx.sh
此时可以运行fcitx配置工具了,输入如下命令:
fcitx-config-gtk3
如果看到如下显示信息,有英文键盘(输入法)以及安装的中文输入法(Google拼音),则说明配置成功。如果看到此处的对话框中没有信息和可选项,建议先关闭终端并使用WSL命令退出Ubuntu,重新启动一次。
wsl --shutdown
后记
到此为止,按照本篇的各种设置步骤,应该能使用WSL进行日常的上网浏览了。如果需要使用一些特定的Linux GUI软件,则根据需要选择安装即可。
不过,默认情况下,WSL中浏览视频时播放声音无法听见。这个问题也有相关的网友进行了尝试,经过一番波折,也解决了。由于需要处理的步骤挺多,可能要专门写一篇帖子描述。
备注:我上网时用到的Astrill工具(VPN)有Linux客户端(图形界面),因此Linux下用火狐或者谷歌时,不会与公司VPN设置冲突。
参考资料
- How to install Linux on Windows with WSL
- 在适用于 Linux 的 Windows 子系统上运行 Linux GUI 应用
- 如何在基于 Ubuntu 的发行版上安装微软 TrueType 字体 | Linux 中国
- 如何在 Linux 中安装新字体 以及Linux安装中文字体