关于 Windows Subsystem for Linux 的安装配置

截止2019年初,WSL 系统虽然仍旧有些麻烦,但是目前基本可以使用了。

安装

按照微软的文档,需要以管理员身份在 PowerShell 中执行如下命令:

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

然后重新启动系统,就可以在 Microsoft Store 中安装了,建议安装 Kali Linux,滚动升级,避免了维护上的一些麻烦。

终端

WSL 终端窗口的缺省配置惨不忍睹,需要对配色和字体进行必要的修改。

配色方面可以使用 Windows Console Colortool 来修改,具体可以参照这个介绍和命令行的帮助,具体的命令需要在 PowerShell 下执行。

字体方面,截止2019年初,Windows Console 无法修改字体的问题仍旧没有解决,好在可以利用 YaHei Consolas Hybrid 1.12 For Powerline.ttf 这种 hybrid 字体解决。

SSH-Agent

关于 SSH-Agent 的问题,可以利用 Win10 自带的 OpenSSH 和 ssh-agent-wsl 相互配合来解决。

首先需要在将 OpenSSH Authentication Agent 服务的启动类型设置为自动。

然后下载 ssh-agent-wsl 并解压缩,将 ssh-agent-wsl 拷贝到 Linux 系统下类似 ~/bin 目录方便执行,将 pipe-connector.exe 拷贝到 Windows 下的类似 /mnt/c/Windows/System32 目录,并且在 shell 的登录配置文件中增加如下内容:

# https://github.com/rupor-github/ssh-agent-wsl
eval "\$(ssh-agent-wsl -r -H /mnt/c/Windows/System32/pipe-connector.exe)" > /dev/null

这样就可以使用 SSH-Agent 了。在使用中需要注意的是,win10 的 ssh-agent 把私钥存储在注册表里,所以不支持 ssh-add -t 选项,并且重启系统后私钥仍旧不会清除,建议通过 ssh-add -D 删除,详情可以参考这篇文章

X Server

对于 X Server 的问题,可以通过 Windows 下安装 VcXsrv 来解决,需要在 Linux 中配置如下环境变量:

export DISPLAY=localhost:0.0

注意其中的 localhost 不可少,以免无法通过 SSH 来对远程的程序进行 X Forwarding。

对于 VcXsrv 的登录后自动启动,需要将其配置文件 config.xlaunch 拷贝到如下目录中:

C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

其中 username 为 Windows 的用户名。

docker

安装 Windows 版本的 docker,运行 Linux container,并且选择 General => Expose daemon on tcp://localhost:2375 without TLS。在 Linux 下设置如下环境变量,就可以正常使用了。

export DOCKER_HOST=tcp://0.0.0.0:2375

其他问题

针对偶发的开机后启动 Linux 报错的情况,可以通过重启 LxssManager 服务解决。

另外,如需要执行 PS1 脚本,则需要以管理员身份运行 PowerShell,然后执行如下命令:

> Set-ExecutionPolicy RemoteSigned

相关推荐