关于 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