这篇文章主要介绍“如何在WSL2下搭建开发环境”,在日常操作中,相信很多人在如何在WSL2下搭建开发环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何在WSL2下搭建开发环境”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1. 什么是WSL?
2. 如何安装?
3.如何连接WSL进行远程开发?
4. 关于文件路径的对应
5. 文件夹的绿光把我的眼睛闪瞎了怎么办?
6. cmd太丑了,影响心情怎么办?
7. WSL2 如何安装Docker
8. 其它人如何访问我的WSL2上的服务
9. 如何设置开机自启服务
10. 固定WSL2 IP
参考
微软开发的windows下的Linux子系统。对Ubuntu20的兼容效果非常好,可以满足日常开发需求。 目前有两个版本:
WSL1:与主机共用一个网卡
WSL2:使用单独的虚拟网卡,与主机组成局域网。WSL2更适合开发,也是本文的主题
官方安装文档传送门
懒得看快速安装步骤:
鼠标右键Windows图标,使用管理员打开Powershell
执行以下命令
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
下载安装Linux内核更新包
下载地址: https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
这一步如果提示安装失败,重启电脑再安装即可
Powershell执行一下命令,设置默认版版本WSL2
wsl --set-default-version 2
如果此处找不到wsl命令,先重启,然后重新安装内核更新包
在微软应用商店安装Ubuntu
访问不了商店,或者下载过慢的。可下载 离线安装包 进行安装
安装完成之后,直接通过开始菜单打开Ubuntu,或使用cmd输入Ubuntu,等待安装完成,配置用户名和密码即可。
小知识:如何下载微软商店应用离线安装包?
进入网址:https://www.microsoft.com/zh-cn/windows/
搜索需要安装的应用,比如Ubuntu. 然后点击搜索结果,进入应用获取界面。此时不要点击获取,否则还是会进入应用上带你进行下载。将页面链接复制下来,删除'#'号或'?'号后面的部分。例如Ubuntu的获取界面链接为
https://www.microsoft.com/zh-cn/p/ubuntu/9nblggh5msv6#activetab=pivot:overviewtab则保留
https://www.microsoft.com/zh-cn/p/ubuntu/9nblggh5msv6然后进入网址 https://store.rg-adguard.net/ ,填写并搜索刚才保留的链接,点击时间戳最新的搜索结果即可下载
最后,为了让WSL可以访问主机,需要新增一条防火墙策略。在PowerShell中执行
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
VSCode 中直接安装Remote-WSL插件,即可开发
其他IDE如何连接? 其他IDE有的可以原生支持WSL2,有的不支持。不一定原生支持WSL2,可以通过开启ssh服务,实现远程开发。网上教程很多,大家直接参考就行,此处不再赘述。例如: https://cloud.tencent.com/developer/article/1538305
注意:部分IDE支持WSL1,其原理与WSL2相差甚远,无法兼容。还是需要使用SSH
SSH安装过程中,如果apt下载过慢,可以先更换为国内源,然后执行
apt update
再下载。例如中科大源,可参考 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
WSL2 systemctl 不可用,无法直接开机启动SSH服务,请参考本文第9节设置
window盘符在WSL中的路径为/mnt
$ pwd /mnt $ ls c d e
可使用以下命令创建软连接到家目录,方便使用 ln -s /mnt/盘符/路径 目标路径
由于Windows的文件权限控制方式与Linux不一样。WSL中查看Windows文件,权限位默认为777,shell中会给文件夹加上恶心的绿光。解决方案:
cd #保证在 /home/用户名 目录下 dircolors -p > .dircolors #如果已经存在 .dircolors文件,则会出错,应把 .dircolors 文件先移除,执行 rm .dircolors vim .dircolors #编辑 .dircolors 文件
找到 OTHER_WRITABLE ,大概在 60 行左右,把该行的 42 改为 49 即可
应用商店安装Windows Terminal。同样地也可以下载离线安装包 进行安装
也可以开启ssh服务后,使用xshell等远程终端工具连接
Ubuntu发行版本可以直接安装docker,但注意不能配置cgroup为systemd。建议直接安装Windows版Docker,可以原生支持WSL2,兼容性更好。 具体参考: https://docs.docker.com/docker-for-windows/wsl/ 。此处不再赘述
在Windows宿主机上安装nginx进行反向代理 下载地址: https://nginx.org/en/download.html 下载完成后,直接解压,修改conf/nginx.conf文件,配置代理
http{ ... server { listen 80; #监听端口 server_name localhost; location / { # 关于如何使用固定ip,请查看本文第10节 # 可以测试一下自己的版本支不支持 proxy_pass http://wsl的ip:你的服务端口 proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_buffering off; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } ... }
修改完成后,启动nginx.exe即可。然后使用Windows IP + nginx设置的监听端口
即可让其他人也访问你的WSL2中的服务了
参考 https://zhuanlan.zhihu.com/p/47733615 以SSH为例,先在WSL中创建/修改/etc/init.wsl
sudo cat <<EOF | tee -a /etc/init.wsl #!/bin/bash /etc/init.d/ssh $1 EOF chmod a+x /etc/init.wsl
然后在Windows中设置自启动。按Win+R
,输入:shell:startup
,回车后会打开文件管理器并进入启动脚本路径。创建启动脚本ubuntu.vbs,内容如下
Set ws = CreateObject("Wscript.Shell") ws.run "wsl -d Ubuntu -u root /etc/init.wsl start", vbhide
保存退出,下次重启即可生效
WSL2 IP默认是不固定的。有两种方式可以曲线救国。
一种是在设置开机任务,开机时设置WSL IP。但由于宿主Windows的IP也会改变,所以强行设置IP可能会遇到IP冲突的情况。
另外一种是使用连接WSL2是配置hosts。设置开机任务,开机时修改Windows的hosts文件,将指定的域名指向WSL2的IP。实际使用中直接使用域名连接WSL2即可。
这里使用第二个方案。GitHub上已经有人开发了相关工具,我们直接使用即可
Github传送门: https://github.com/shayne/go-wsl2-host
详细使用步骤:
先下载wsl2host.exe,移动到合适的安装目录(服务会引用改文件,请合理放置)
使用管理员权限打开cmd或powershell,cd到wsl2host.exe所在目录,执行
./wsl2host.exe install
然后输入Windows的登陆用户名和密码(注意不是PIN)。没有报错即完成安装。 打开服务检查是否生效
如果没有启动,右键点击启动即可。如果出现报错"登陆失败.....",说明配置有误。右键-属性-登陆,重新配置以下用户名密码,保存后重新启动即可。
打开C:\Windows\System32\drivers\etc\hosts文件查看,会发现新增的hosts规则
192.168.100.183 ubuntu.wsl # managed by wsl2-host
cmd中 ping ubuntu.wsl 即可看到效果
https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
https://cloud.tencent.com/developer/article/1538305
https://docs.docker.com/docker-for-windows/wsl/
https://zhuanlan.zhihu.com/p/47733615
到此,关于“如何在WSL2下搭建开发环境”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。