这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
为了在我的 windows 本上愉快的进行 kitex代码生成,完成青训大项目任务,我需要安装 WSL。
什么是WSL?
WSL 是 Windows Subsystem for Linux 的缩写,意思是 linux 版的 window 子系统。
简单的说就是,Linux 的 Windows 子系统让开发人员无需虚拟机就可以直接在 Windows 上运行 Linux 环境,包括大多数命令行工具、程序和应用。
使用 WSL 的好处是:
- 与在虚拟机下使用 Linux 相比,WSL 占用资源更少,更加流畅;
- WSL 可以对 Windows 文件系统下的文件直接进行读写,文件传输更方便;
- 剪贴板互通,可以直接在 Windows 下其它地方复制文本内容,粘贴到 WSL;
开搞
1. 开启 WSL 支持
使用管理员权限的 Shell 才能安装 WSL。
在 Windows PowerShell (管理员) 中复制执行命令。
$ Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
以上命令会激活 WSL 服务,然后需要重启系统。
2. 安装 WSL 发行版
在 Windows 应用商店搜索 ubuntu ,选择自己喜欢的版本,安装即可。
这里我选择的是 Ubuntu 20.04 LTS,之后的所有内容也是基于 WSL Ubuntu 编写。
下载,安装之后,打开直接报错。
尝试用指令下载:
$ wsl.exe --install Ubuntu-20.04
还是一样的报错。(一样的效果再做一遍当然还是报错)
看了很多文档,说的都是虚拟化技术没开巴拉巴拉,问题是我都开了,最后还是有一句中肯的,要先用WSL 1,执行下面这个指令,把 WSL 版本改为1。
$ wsl --set-default-version 1
然后设置下用户名和密码,我这尝试了一下,密码不能为空。
到这里, WSL 就安装好了,但我想要配 docker 还是跑不起来,错误码还是0x80370102。
查看自己系统的体系结构:
$ uname -a
# Linux LAPTOP-N7JGIRHR 5.15.79.1-microsoft-standard-WSL2 #1 SMP Wed Nov 23 01:01:46 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
3. 升级到 WSL2
这里碰了很多壁,不知道看了多少文档,可能里面有几句命令是有效的,可惜并没有立刻展现出效果(我隐约感觉是我以前安装了安卓模拟器改了我的系统配置的原因),在我走投无路之际我重启了电脑,最后居然成功了!!
如果实在不知道怎么办,尝试运行下面这两行代码:
# 以管理员身份运行
$ bcdedit /set hypervisorlaunchtype off
$ bcdedit /set hypervisorlaunchtype auto
升级 WSL2
# 先看看有哪些 WSL
$ wsl -l -v
# NAME STATE VERSION
#* Ubuntu-20.04 Stopped 1
$ wsl --set-version Ubuntu-20.04 2
4. apt 换源
更换为清华大学 TUNA 的软件源镜像
- 执行下面命令,备份 apt 安装源:
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
- vim 编辑 sources.list :
$ sudo vim /etc/apt/sources.list
将 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
- 更新软件
$ sudo apt-get update
$ sudo apt-get upgrade
5. 配置 SSH 服务器
WSL 上的 SSH 服务器没有自动配置,需要手动重新安装,首先可以运行以下命令来安装:
$ sudo apt install openssh-server
报错,经查阅相关资料,需要 openssh-client=1:8.2p1-4ubuntu0.5 这么个玩意。
$ sudo apt-get install openssh-client=1:8.2p1-4ubuntu0.5
# 一顿下载后...
$ sudo apt install openssh-server
然后配置 /etc/ssh/sshd_config。
$ sudo vim /etc/ssh/sshd_config
修改如下三个关键字:
Port 22
PermitRootLogin yes
PasswordAuthentication yes
重启 ssh 服务:
$ sudo service ssh restart
$ sudo service ssh status
设置 root 账户密码:
$ sudo passwd root
这样就可以顺利 ssh 连上了。
然后配置公钥:
$ mkdir .ssh
$ vim ~/.ssh/authorized_keys
把自己的公钥放上去就行了。