WSL环境配置

TMaize 于 2021-06-13 发布

端午节在家搞了一套 NUC8,又重装了下系统,软件全都要重新下载。 Windows 下 的同步功能真的是差,系统设置还有各种软件全都要重新配置

新电脑准备尝试 WSL 2 的,据说支持 Docker 了,但是看了下对比后还是放弃了。习惯项目文件存在 Windows 文件系统中通过 VS Code 的 Remote WSL 开发,虽说 WSL 2 在 Linux 内部的文件系统 IO 性能提高了,但是访问 Windows 文件系统中变得特别慢,好像是通过 Samba 走的网络。另外用了 WSL 2 就没法用 Virtual Box 了。

功能 WSL 1 WSL 2
Windows 和 Linux 之间的集成
启动时间短
与传统虚拟机相比,占用的资源量少
可以与当前版本的 VMware 和 VirtualBox 一起运行
托管 VM
完整的 Linux 内核
完全的系统调用兼容性
跨 OS 文件系统的性能

配置

  1. 修改默认用户为 root

    C:\Users\用户名\AppData\Local\Microsoft\WindowsApps\ 下面用管理员权限执行ubuntu版本.exe config --default-user root

    重启 wslnet stop lxssmanager net start lxssmanager

  2. 调整 appendWindowsPath

    默认情况下会把 Windows 下的 PATH 附加到 WSL 的 PATH 后面,虽然在 WSL 下面执行 windows 应用很方便,但是混合起来感觉会引发冲突,同时有没有这个需求,所以关闭它显得更省事。

    编辑/etc/wsl.conf文件(可能会不存在创建即可),添加如下内容后重启 wsl 再看echo $PATH是不是清爽了很多。所有的配置可以参考这里

    [interop]
    appendWindowsPath = false
    
  3. 更改镜像源

    这里使用的是腾讯镜像源,按照说明备份并替换/etc/apt/sources.list文件即可

    执行apt-get update更新软件列表,apt-get upgrade更新软件

  4. 配置环境变量

    我是直接配置在/etc/profile后面的,通过 wsl 命令进入是生效的,但是在 VS Code 中不行

    wsl 相当于一个 Chroot 环境,并不会调用/etc/profile 和 ~/.profile 开启时只调用 ~/.bashrc

    所以可以把配置全部写在~/.profile里面,然后在~/.zshrc里面执行source ~/.profile

  5. 安装 nodejs

    mkdir -p /usr/local/nodejs && cd /usr/local/nodejs
    wget https://npm.taobao.org/mirrors/node/v12.19.1/node-v12.19.1-linux-x64.tar.gz
    tar zxvf node-v12.19.1-linux-x64.tar.gz
    rm node-v12.19.1-linux-x64.tar.gz
    

    配置环境变量

    if [ "$NODE_HOME" = "" ]; then
      export NODE_HOME=/usr/local/nodejs/node-v12.19.1-linux-x64
      export NODE_GLOBAL_MODEL=/usr/local/nodejs/node_global
      export YARN_INSTALL=/usr/local/nodejs/yarn_bin
      export PATH=$PATH:$NODE_HOME/bin:$NODE_GLOBAL_MODEL/bin:$YARN_INSTALL/bin
    fi
    

    npm 配置

    npm config set prefix "/usr/local/nodejs/node_global"
    npm config set cache "/usr/local/nodejs/node_cache"
    npm config set registry "http://mirrors.cloud.tencent.com/npm/"
    npm config list
    
    npm install -g yarn
    yarn config set cache-folder "/usr/local/nodejs/yarn_cache"
    yarn config set global-folder "/usr/local/nodejs/yarn_global"
    yarn config set prefix "/usr/local/nodejs/yarn_bin"
    yarn cache dir
    
  6. ruby

    主要是用来编译博客,在 Windows 下装 ruby 太麻烦了,平时都是在 wsl 里面编译的

    apt install ruby-full ruby-bundler
    
  7. zsh

    apt install zsh
    chsh -s /bin/zsh
    # 遇到了DSN污染的问题改成了119.29.29.29就解决了
    sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
    
    # 改下.zshrc 文件,重新登入生效
    ZSH_THEME="bureau"
    alias ll="ls -alF"
    

    另外 Windows 文件系统是挂载到/mnt/下面的,文件夹的权限会被全部设置为 777,所以背景色是绿色的名字是蓝色的导致看着特别难受。可以通过dircolors >> ~/.zshrc把当前的配置导出来,然后找到ow=34;42改成ow=34即可

参考

适用于 Linux 的 Windows 子系统安装指南 (Windows 10)

比较 WSL 1 和 WSL 2

消除 WSL 中 ls Windows 文件夹时背光配色的方法