Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WSL开发环境搭建记录 #6

Open
IWSR opened this issue Feb 21, 2023 · 0 comments
Open

WSL开发环境搭建记录 #6

IWSR opened this issue Feb 21, 2023 · 0 comments

Comments

@IWSR
Copy link
Owner

IWSR commented Feb 21, 2023

原文发布在 Github

因为新换的电脑是Windows环境的,所以需要重新搭建开发环境。然而在按照 官方文档 进行搭建时总会被一些奇怪的细节卡住,因此写下这篇文章作为备忘录。后续也会在此补充新遇到的问题。

另外提一句,作为开发(只要不是 .NET 开发),永远不要将项目放到 Windows 环境中。微信小程序是特例(他们不愿意支持 WSL),当然能不碰小程序最好还是别碰小程序。

科学上网

Windows 下的科学上网工具并不直接影响 WSL 内的环境,需要 WSL 环境下对 .bashrc 或 .zshrc 内的配置进行修改。

以下例子基于 Clash for Windows,如果使用的是其他的工具,只需要替换例子中的端口与协议与你本地的环境相同即可。

sudo vim ~/.zshrc

# 获取 WSL 环境的 IP,毕竟其本质是一台虚拟机,因此与宿主环境并不享有同一 IP
## 主机 IP 保存在 /etc/resolv.conf 中
export hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*')
# 此处只修改了 https 与 http 的 proxy
export https_proxy="http://${hostip}:7890"
export http_proxy="http://${hostip}:7890"
# 如果需要对所有协议都走代理
export all_proxy="http://${hostip}:7890"

退出 vim 后需要重新配置,或者直接关闭当前 WSL 环境重新打开即可。

更新配置命令如下

source ~/.zshrc

当然也可以将修改配置封装成对于的命令,这样就可以只在需要的时候让环境走代理。

alias proxy='export all_proxy="http://${hostip}:7890"; echo -e "proxy on"' 
alias unProxy='unset all_proxy; echo -e "proxy off"'

在配置完成后,可以使用以下命令检测环境

curl cip.cc

只要走了代理的路径基本就没问题了,如果还是本地运营商可以尝试将工具开启全局代理模式

image

NVM下载

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash

文档内直接使用该命令即可,但也可能因为不可言说的力量受到阻碍。

curl: (35) OpenSSL SSL_connect: Connection reset by peer in connection to raw.githubusercontent.com:443

此时需要修改 hosts 文件。

 sudo vim /etc/hosts

对应的 IP 地址可以去该 网址 查看

在进入 hosts 文件后在配置下加入

185.199.108.133 raw.githubusercontent.com

上述 IP 地址以你实际查找的结果为准!在成功下载后记得从 hosts 文件中删除,以减少人为原因对后续开发造成影响。

将 Windows 环境内的文件转移到 WSL 下

如果是前端开发,那肯定经常会遇到将项目资料从企业微信或者别的什么的转移到开发项目中,而通常开发项目都会在 Linux 环境下。此时要做的也很简单,直接在文件资源管理器中拖拽就行了。

image

找到对应的 WSL 文件,进入 home 文件夹找到对应的用户即可直接拖拽。

WSL2 占位程序接收到错误数据

电脑启动后立刻打开 WSL 有机会触发这个问题

PowerShell 以管理员权限运行下述命令再重启即可

netsh winsock reset

System has not been booted with systemd as init system (PID 1). Can't operate

参考 System has not been booted with systemd as init system (PID 1). Can't operate 高赞回答

这个问题是在安装 Docker 时遇到的,WSL2基本都支持这个命令,不过需要手动开启。步骤如下:

sudo vim /etc/wsl.conf

添加

[boot]
systemd=true

关闭 Ubuntu,并关闭 WSL

wsl --shutdown

重新打开 Ubuntu,并检查 systemctl 是否运行

sudo systemctl status

后续等我遇到再更新

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant