Menu

Windows Subsystem for Linux入门:安装+配置图形界面+中文环境+vscode

什么是 WSL

Windows Subsystem for Linux(简称 WSL)是一个为在 Windows 10 上能够原生运行 Linux 二进制可执行文件(ELF 格式)的兼容层。它是由微软与 Canonical 公司合作开发,目标是使纯正的 Ubuntu 14.04 “Trusty Tahr”映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。

以上来自百度百科。简单来说,WSL 是以软件的形式运行在 Windows 下的子系统。先来看一下我的最终完成效果吧,其实和真正的 Linux 已经很接近了。

1

相对于虚拟机的优势

相比于 VMware 等虚拟机,WSL 占用内存和 CPU 资源更少,在 WSL 上运行软件的消耗和直接在 Windows 上差不多。而且,Windows 下可以直接访问 WSL 的环境。

相对于多系统的优势

省事呀。假如需要重启 Linux 系统,WSL 只需要把软件关掉重开即可。同时,相较于多系统,文件交互也更为简单。

安装

官方教程地址,可以看到还是很简单的。

本文大部分内容写于 18/12/14,所用的机器是 VAIO Z Flip 2016,处理器i7-6567U,内存8G,操作系统版本号Windows 10.0.17763.134 x64。可以看到即使是以轻薄本的配置也足够流畅完成下述环节。

开启 WSL 可选特性

在控制面板的「启动或关闭 Windows 功能」中勾选「适用于 Linux 的 Windows 子系统」。 2 或在 PowerShell 中运行下述代码:

1
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

修改完毕后,重启使选项生效。

下载安装

打开 Microsoft Store,搜索 Linux,就会显示 Ubuntu、suse 等几个发行版,点击进行安装即可。这里选择了 Ubuntu。 3 下载之后启动菜单里就会出现Ubuntu的图标了。让我们启动它,按照上面的提示等待几分钟,就可以进入初次登陆设置账号的界面。 4 好像用户名不可以有大写字母…不管怎样,到这里就算安装成功了。 5

切换源

默认源速度缓慢,这里切换到阿里源。

1
sudo sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list

Remark:在 sudo apt upgrade 之前要先 sudo apt update

感谢@在评论区指出

1
2
sudo apt update -y
sudo apt upgrade -y

如果只是在终端使用 WSL(如配置我博客的开发环境),做到这里就可以了!

配置图形界面

如果要运行一些带图形界面的程序,WSL 原生是没有支持 GUI 的。这里通过 XServer 实现可视化操作,用到的软件是VcXsrv

实现原理

  1. VcXsrv 启动 Xserver 服务用于监听;
  2. WSL 启动程序后把界面数据发送给 Xserver;
  3. Xserver 接收到数据进行绘制,于是在 Win 下看到图形界面。

这里给出了另外一种通过 VNC 远程控制的解决方案,可能会比 XServer 流畅一些。

下载并安装 VcXsrv

这里下载安装包,一路 next 即可。第一步是选择组件,默认是全部安装;第二步是安装路径。

启动 VcXsrv

开始菜单里现在出现了一个文件夹VcXsrv,选择里面的 XLaunch,一路选择下一步即可。然后这个软件就后台运行了。之后如果有需要使用 Linux 的图形界面的,都需要提前打开XLaunch。 提一下打开Xlaunch后第一页的四个选项设置,我个人是喜欢选择全屏的,最接近原生系统的体验。假如你不需要打开完整的桌面环境而只需要图形化某些软件,那么就用默认的Multiple windows也不错。

配置 DISPLAY

为了方便,打开 Ubuntu bash,运行如下代码:

1
echo "export DISPLAY=:0.0" >> ~/.bashrc

这样,每次打开图形界面程序就不需要额外指定DISPLAY了。

检验

运行下述代码,安装 firefox 检验效果:

1
sudo apt install firefox

随后直接运行下述代码即可查看效果。

1
firefox

6 可以看到,这里虽然能正常打开网页,但是中文显示是乱码的。

解决中文乱码问题

运行下述代码,成功解决。现在可以正常显示中文了。

1
sudo apt install fonts-noto-cjk

7

修改默认语言环境为中文(可选)

安装中文语言包

1
sudo apt install language-pack-zh-hans language-pack-zh-hans-base

设置本地化环境变量

1
echo "LANG=zh_CN.UTF-8" >> ~/.profile

安装桌面

这里选择xfce4桌面,它的优点是轻量、美观、占用系统资源少。

1
sudo apt install xfce4 dbus-x11

完成后,执行下面这段代码就可以看到桌面的图形界面了。

1
xfce4-session

中文输入法

1
2
sudo apt install fcitx fcitx-pinyin
echo -e "export XMODIFIERS=@im=fcitx\nexport GTK_IM_MODULE=fcitx\nexport QT_IM_MODULE=fcitx\n" >> .profile

软件包已装,在应用程序 - 设置 - 会话与启动 - 应用程序自启动,添加 /usr/bin/fcitx。

配置工作环境

这里以安装、配置 vscode 为例。vscode 宇宙第一!

安装 umake

1
2
3
sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
sudo apt update
sudo apt install ubuntu-make

安装 vscode

1
sudo umake ide visual-studio-code

执行后分别会让你选择安装地址,然后输入a确认。稍等片刻就安装好啦。重启 bash,重新进入 xfce 桌面,在应用程序-开发里就可以找到安装好的 vscode 啦。 8 安装Setting Sync来同步别的平台的设置吧。设置好自己用于同步 vscode 设置的GitHub TokenGitHub Gist,一起来喝上一杯咖啡吧。 9 现在你可以把很多事迁到 WSL 内来做了(折腾才是最好玩的),丢开虚拟机和双系统吧。完结撒花~