WSL 安装和使用
0x000FF
对于一个程序,Linux 是难以绕过的技术栈,对于使用 Windows 系统的开发者,通常通过虚拟机来安装 Linux 来学习或使用。
现在 Windows 官方推出了 Windows Subsystem for Linux(后文简称:WSL),可以通过本地的运行 Windows 来安装 Linux 系统,比其虚拟机的方式可以有更快的运行速度和占用更少的资源。
特别对于后端程序员,Docker 的使用率在不断提升,然而 Docker 官方出的 Windows 桌面版的使用效果却不尽人意,因此更加加强了使用 WSL 的意愿。
如果想将 WSL 作为服务器使用,因为是伴随 Windows 的,因此对于作为一个服务器的想法还是不太现实的。
本人安装 WSL 时,遇到了许多问题,希望通过本篇文章,可以使后面安装 WSL 的人可以少遇一些坑。本文将分为以下几个模块:
- WSL 的安装
- WSL 的联网
- Docker 的安装
1.WSL2 的安装
- 开启系统支持
- 下载 WSL 系统
- 设置 Linux 系统 root 用户密码
1.1 开启系统支持
WSL 有系统版本限制,至少本身是在 Windows 10 1903 版本以上。
1.启用适用于 Linux 的 Windows 子系统
以管理员权限运行命令行,执行一下命令:
图中为 Windows 官方新推出的 Windows Terminal,非常好用,强烈推荐。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
2.Windows 开启 WSL 支持
控制面板 -> 程序 -> 启动或关闭 Windows 功能,勾选"适用于Linux的Windows子系统"与"虚拟机平台"
3.升级 X64 的 WSL2 Linux 内核
执行命令
wsl.exe update
或到官网下载:升级下载
4.设置 WSL 默认版本
执行命名
wsl --set-default-version 2
1.2 下载 WSL 系统
执行命令
wsl.exe install
如要安装 Ubuntu-18.04,则在命名行继续执行 wsl.exe --install Ubuntu-18.04 即可。
等待下载完成。
1.3 设置 root 用户密码
安装完成后,创建新用户,但新安装的系统 root 密码是随机的,我们需要设置为自己的。
在 WSL 中执行命令:
sudo passwd
2.WSL 的联网
首先检查当前 WSL 是否成功联网,执行:
ping www.baidu.com
如果能 ping 通,说明联网正常,如果弹出以下,则需要配置网络设置。
执行以下命令,解决网络问题,在 WSL 系统中执行:
# 1.删除本地配置文件
# 注:一定要先切换到 root 用户后,执行下面的命令
rm /etc/resolv.conf || true
rm /etc/wsl.conf || true
# 2.配置 WSL 网络,解决每次重启 WSL 后恢复初始设置
cat <<EOF > /etc/wsl.conf
[network]
generateResolvConf = false
[automount]
enabled = true
options = "metadata"
mountFsTab = false
EOF
# 3.配置 DNS 解析问题
cat <<EOF > /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
EOF
退出 WSL 系统,在 Windows 系统中执行:
cmd as admin:
wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
重启电脑!!
测试网络是否联通,显示如下则说明网络联通:
3.Docker 的安装
安装前先更换 WSL 的软件源,换成国内的,提高下载速度。
在 WSL 系统下切换到 root 用户执行命令:
vim /etc/apt/sources.list
然后添加上:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
后面 Docker 的安装直接按照官网执行,这里贴上链接,主要解决和正常 Ubuntu 系统比,systemctl 指令无法使用问题。
执行以下命名开启 systemctl 指令:
sudo apt-get install daemonize
sudo daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
exec sudo nsenter -t $(pidof systemd) -a su - $LOGNAME
至此文章结束。
\