# window下wsl2安装ubuntu(干货)

# 1.什么是wsl

Windows Subsystem for Linux,适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生虚拟机开销。

# 2.优势

1.在 Microsoft Store 中选择你喜欢的Linux (Ubuntu/ Debian/ SUSE 等等)。 2.运行常用的软件/Bash shell脚本/docker 等。包括但不限于: 工具:vim、emacs、tmux 语言:Javascript/node.js、Ruby、Python、C/C++、 C# 和 F#、Rust、Go 等等 服务:sshd、MySQL、Apache、lighttpd 3.在 Windows 上调用 GNU/Linux 应用程序。

# 3.什么是wsl2

1.WSL 2 是 WSL 中体系结构的新版本,它更改 Linux 发行版与 Windows 交互的方式。 2.WSL 2 的主要目标是提高文件系统性能并增加系统调用的完全兼容性。  每个 Linux 发行版都可以作为 WSL 1 或 WSL 2 发行版运行,并可随时进行切换。  3.WSL 2 是底层体系结构的主要功能,它使用虚拟化技术和 Linux 内核来实现其新功能。

# 4.WSL2 和WSL 在用户层面的感知?

1.将 Linux 应用需要访问的文件放在 Linux 根文件系统中可以提高文件访问速度 2.在 WSL 2 预览版的初始版本中,你需要使用 IP 地址而不是 localhost 来访问网络应用程序

# windows基于WSL2的ubuntu子系统安装

# 系统条件

1.windows10系统必须是专业版

2.windows10版本2004且内部版本要高于19041

如果windows10版本过低,建议用易升升级到最新版本

# windows10上开启wsl2

# 方式1

执行Power Shll命令或通过添加windows组件开启WSL

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
1
2
3

# 方式2

可视化操作,启动windows组件功能(位置:程序和功能-启动或关闭windows功能)

Microsoft-Windows-Subsystem-Linux (中文对应:适用于Linux的Windows子系统)
VirtualMachinePlatform (中文对应:虚拟机平台)
1
2

avatar 打勾

注:开启之后需要重启计算机

# 将swl2设置为默认

wsl --set-default-version 2
1

若提示 需要更新内核组件

下载并安装内核。内核包下载地址 (opens new window)

# 安装ubuntu

1.微软商店搜索Ubuntu,下载并安装

建议选择安装18.04版本

2.设置ubuntu用户密码

建议用户名设置user,密码自定义

3.修改wsl版本 -- 查运行系统名称 wsl -l -v -- 设置指定名称系统版本 wsl --set-version Ubuntu-18.04 2

# 软件安装

# windows主机

vscode (安装完成ubuntu子系统。vscode会提示你安装Remote - SSH插件,可访问ubuntu子系统文件)

# ubuntu子系统

git

sudo apt-get install git
1

vim

sudo apt-get install vim
1

nvm

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

配置nvm环境变量
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm

nvm install 10.15.3
nvm alias default 10.15.3
npm install -g yarn
[[ -e ~/.bashrc ]] && echo '[[ -e $(which yarn) ]] && export PATH="${PATH}:$(yarn global bin)"' >> ~/.bashrc && source ~/.bashrc
[[ -e ~/.zshrc ]] && echo '[[ -e $(which yarn) ]] && export PATH="${PATH}:$(yarn global bin)"' >> ~/.zshrc && source ~/.zshrc

1
2
3
4
5
6
7
8
9
10
11
12

yarn

sudo npm install -g yarn

配置yarn环境变量bashrc
ls -a 可以查看到.bashrc文件
执行下面命令:
[[ -e ~/.bashrc ]] && echo '[[ -e $(which yarn) ]] && export PATH="${PATH}:$(yarn global bin)"' >> ~/.bashrc && source ~/.bashrc
1
2
3
4
5
6

# gitlab配置

1.添加 SSH Key 到 GitLab

ssh-keygen -t rsa -C "email@163.com"
cat ~/.ssh/id_rsa.pub
1
2

2.gitlab中配置ssh keys 打开gitlab。点击User Settings-SSH Keys 添加生成的ssh keys

# 配置 Windows 到 WSL2 地址映射

  • 管理员身份打开记事本 打开C:\Windows\System32\drivers\etc 选择所有文件(.) 打开hosts 文末加入
127.0.0.1       xinyu666.cn
::1             xinyu666.cn
刷新ipconfig /flushdns
1
2
3

# 必要软件安装

# redis安装

1.ubuntu apt命令安装(redis-cli 4.0.9)

sudo apt update
sudo apt install redis-server
启动redis
redis-server
1
2
3
4

2.window安装 下载redismsi (opens new window)文件,点击安装 配置环境变量

C:\Program Files\Redis
1

# 遇到的问题

# 1.yarn install时候出错了,npm安装版本过低了

The engine "node" is incompatible with this module. Expected version ">=10.13.0". Got "8.10.0"
1

原因:安装npm和node时候是以apt-get方式安装,安装的默认版本过低

sudo apt-get install nodejs
sudo apt-get install npm
1
2

需要卸载重新安装

sudo apt-get remove nodejs
sudo apt-get remove npm
1
2

# 2.出现 Command 'nvm' not found 的解决办法:

关掉当前终端并重新打开一个新的窗口,问题解决。

# 3.Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

重启docker sudo service docker start 查看docker状态 sudo service docker status

# .build.sh init没有权限

newgrp - docker

# 4.window10没有host文件

cmd执行

for /f %P in ('dir %windir%\WinSxS\hosts /b /s') do copy %P %windir%\System32\drivers\etc & echo %P & Notepad %P
1

http://www.xitongcheng.com/jiaocheng/win10_article_62635.html

# 5.客户端软件无法通过localhost链接到ubuntu中

1.ip设置成ipv6 ::1 2.ubuntu中通过ipconfig找到eth0的ip,通过ip访问 (window10重启之后wsl2中的ip会一直变化。解决办法 (opens new window)

# 相关资料

Windows10安装WSL2 (opens new window) Windows10基于WSL2的Ubuntu子系统安装 (opens new window) Windows10基于WSL2的Ubuntu子系统安装 (opens new window) npm使用介绍 (opens new window) .bashrc文件的作用 (opens new window) git配置用户信息 (opens new window)

全量分析

评 论:

上次更新时间: 7/6/2021, 3:59:14 PM