wsl2
升级系统
首先升级你的windows系统到2004版本,可以在设置里直接更新,也可以去微软官网下载win10易升来升级,现在是2020年10月17日,在设置里直接就能更新到2004版本了,一般会更推荐在设置里更新
用管理员身份运行powershell
如果之前没有用过 WSL,那么首先需要安装 Windows 10 的 WSL 功能,如果之前有用过则可以跳过这步
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
安装 WSL2 功能模块
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
执行完毕后重启电脑
安装wsl2内核
至此为止我们只是开启了 WSL2 的功能,但是还需要安装对应的 Linux 系统内核。从微软官网下载wsl2内核
在 PowerShell 中,将 WSL 默认版本设置为2
,这样之后安装的 Linux 发行版才会都安装在 WSL2 中
wsl --set-default-version 2
安装wsl2
将你旧的wsl删掉【删之前需要备份的东西做好备份】【我知道有一句迁移命令,但看网上很多人说那句并不好用干脆重装】
打开应用商店,搜索你想要的wsl2系统【我用的是ubuntu18.04】,直接在商店里点击安装
安装完成后可以在powershell中查看安装的wsl的版本
wsl --list --verbose
挂载
如果你和我一样使用的是surface设备并且有插一块TF卡,或者你在工作中会需要将你的U盘移动硬盘挂载进wsl2,则执行下面的命令
mount -t drvfs D: /mnt/d
-t 指定档案系统的形态
D: 是你要挂载的盘符,根据你要挂载的盘在 此电脑 中显示的盘符为准
/mnt/d 是挂载进wsl2的位置,因为wsl2中,我们计算机的盘默认是放在/mnt下的所以我也选择挂载在这个目录下,你也可以选择其他的任意位置,挂载之前记得先在此目录下创建对应的文件夹,如本例中,需要先执行mkdir /mnt/d 将目标挂载文件夹创建出来
如果挂载目录不为空,则挂载后会先隐藏此目录下原有的文件,取消挂载后他们会重新出现
取消挂载
umount /mnt/d
参考的对象类型不支持尝试的操作
- 临时解决法【不推荐】
如果启动wsl2时提示“参考的对象类型不支持尝试的操作”
先把wsl2关掉
用管理员身份运行powershell,执行
netsh winsock reset
然后再打开wsl2,应该就可以了
我执行了这句之后,wsl2没有叫我设置新的用户名,进去就是root权限了
- 长期解决法【推荐】
下载
链接:https://pan.baidu.com/s/1bVZ0OXZPxEt8l1IHYaFK3A ,提取码:vjge
解压,放在方便的地方,比如C盘
管理员身份运行CMD输入
NoLsp.exe C:\windows\system32\wsl.exe
请自行注意NoLsp.exe程序的位置,以及你的wsl.exe位置。
产生原因和解决方法分析:
临时解决法:代理软件和wsl2的sock端口冲突,使用netsh winsock reset重置修复。
长期解决法:Proxifer开发人员解释如下:
如果Winsock LSP DLL被加载到其进程中,则wsl.exe将显示此错误。最简单的解决方案是对wsl.exe使用WSCSetApplicationCategory WinAPI调用来防止这种情况。在后台,该调用在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog中为wsl.exe创建一个条目。
这将告诉Windows不要将LSP DLL加载到wsl.exe进程中
go
下载go的tar包
将go的tar包放置到你想要安装go的目录下
打开wsl2,进入此目录,tar -xvf 压缩包名
解压缩
vim /etc/profile
在最后面加上
export GOROOT=/mnt/c/go
export GOPATH=/mnt/d/workplace
export GOPROXY=http://goproxy.cn
export GOSUMDB=goproxy.cn
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
这是我的配置,大家的路径要写自己的路径啦
写完保存,执行
source /etc/profile
这时候go应该就安装好了,大家可以测试一下
go version
能出来go版本就是ok了
docker
上Docker Desktop官网下载安装包
下好后双击安装,我反正是全下一步默认安装的
装好后如果你的docker不能直接进入runnning状态,你可以重启一下电脑,我装好后就是,Docker Desktop自动打开,但是左下角的docker状态一直变不成running,重启电脑以后就好了
打开Docker Desktop,看左下角的docker状态,如果是绿色且写着running就说明docker运转正常
这时打开 设置-Resources-WSL INTEGRATION
可以看到有个你安装的wsl2的选项,把前面的开关打开,docker就会去关联这个wsl2
开关打开后你进入wsl2,就会发现docker指令已经可以使用了
vue
nvm和node
我是用nvm来实现node的安装
使用nvm可以更方便的安装和管理不同版本的node
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.36.0/install.sh | bash
你可以直接尝试在wsl2中执行上面这句,有可能成功,如果不成功的话应该会报
Failed to connect to raw.githubusercontent.com port 443: Connection refused
通过IPAddress.com首页,输入raw.githubusercontent.com查询到真实IP地址:
199.232.68.133
hosts文件路径:c:/windows/system32/drivers/etc/
hosts文件默认只读,需要修改一下权限
在最后追加内容:199.232.68.133 raw.githubusercontent.com
用管理员模式改完保存,重启电脑
重启后再打开wsl2,执行
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.36.0/install.sh | bash
应该就可以了
安装完后需要重启wsl2,nvm命令才能使用
nvm安装完成后就可以比较方便的安装各版本的node了,我装的是12.19.0
nvm install 12.19.0
我安装的时候第一次失败了,没去查原因,重试就可以了,可能是网络不好吧
安装完成后执行
nvm list
可以查看当前nvm管理的node版本,如果需要你可以多装几个node版本,按需切换
vue-cli
执行下面这句可以指定安装的vue-cli版本,我这里因为项目不兼容vue-cli 4,所以我安装的是3.11.0版本
npm install -g @vue/cli@3.11.0
如果安装过程中提示有包安装失败像这样
则尝试下面的命令
npm install -g -unsafe-perm @vue/cli@3.11.0
应该就可以了
参考文档
关于使用WSL2出现“参考的对象类型不支持尝试的操作”的解决方法。
centos8 安装vue cli 出错 core-js@3.4.6 postinstall node -e “try{require(‘./postinstall‘)}catch(e){}