在wsl2配置go、docker、vue开发环境

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内核

下载 Linux 内核更新包

在 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 Desktop

下好后双击安装,我反正是全下一步默认安装的

装好后如果你的docker不能直接进入runnning状态,你可以重启一下电脑,我装好后就是,Docker Desktop自动打开,但是左下角的docker状态一直变不成running,重启电脑以后就好了

打开Docker Desktop,看左下角的docker状态,如果是绿色且写着running就说明docker运转正常

这时打开 设置-Resources-WSL INTEGRATION

image.png

可以看到有个你安装的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/[email protected]

如果安装过程中提示有包安装失败像这样

image.png

则尝试下面的命令

npm install -g -unsafe-perm @vue/[email protected]

应该就可以了

参考文档

WSL2来了!但是能正常使用并不简单

关于使用WSL2出现“参考的对象类型不支持尝试的操作”的解决方法。

启动 WSL 2时警告“参考的对象类型不支持尝试的操作”

WSL挂在移动硬盘和u盘

nvm github

Mac下nvm安装443踩坑解决

vue-cli如何安装指定版本

centos8 安装vue cli 出错 [email protected] postinstall node -e “try{require(‘./postinstall‘)}catch(e){}

你可能感兴趣的:(在wsl2配置go、docker、vue开发环境)