WSL避坑指南

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WSL避坑指南相关的知识,希望对你有一定的参考价值。

参考技术A

WSL(windows subsystem for linux)是在windows系统下运行的linux子系统,当我们需要linux环境的时候,用虚拟机性能损耗会非常严重,这时候我们可以选择使用WSL。这篇文章介绍了我在安装和使用WSL中的一些坑,希望将来的人能少走弯路。

参考微软的文档 https://docs.microsoft.com/zh-cn/windows/wsl/install-win10 安装。

我遇到的一些问题:

配制Ubuntu镜像 https://developer.aliyun.com/mirror/ubuntu

可以在windows下安装docker desktop,然后设置使用wsl2的引擎使用。

或者在docker的官网上按照教程安装docker。

静进入网址: https://cr.console.aliyun.com/cn-hangzhou/mirrors

此处需要一个阿里云的账号,没有的话可以使用支付宝登录

登录进去会跳转到 容器镜像服务,需要密码

接下来按照里面的教程进行设置即可

在windows的vscode里安装Remote WSL插件之后可以在linux的子系统中通过输入code命令使用vscode。

文件共享也非常方便,启动WSL命令行的时候,默认访问的便是我们Windows的用户目录。

而要从Windows下访问Linux中文件,则可通过网络磁盘映射:\\wsl$\\Ubuntu 路径,这样整个Linux文件系统都可以暴露给Windows。

如果要在 Linux 分发版中构建网络应用(例如,在 NodeJS 或 SQL server 上运行的应用),可以使用 localhost 从 Windows 应用(如 Edge 或 Chrome Internet 浏览器)访问它(就像往常一样)。

但是,如果运行的是较旧版本的 Windows(版本 18945 或更低版本),则需要获取 Linux 主机 VM 的 IP 地址(或 更新到最新的 Windows 版本 )。

若要查找为 Linux 分发版提供支持的虚拟机的 IP 地址,请执行以下操作:

如果要从 Linux 分发版(即 Ubuntu)访问 Windows 上运行的网络应用(例如,在 NodeJS 或 SQL 服务器上运行的应用),则需要使用主机的 IP 地址。 虽然这不是一种常见方案,但你可以执行以下步骤来使其可行。 - 通过在 Linux 分发版中运行以下命令来获取主机的 IP 地址: cat /etc/resolv.conf - 复制以下词语后面的 IP 地址: nameserver 。 - 使用复制的 IP 地址连接到任何 Windows 服务器。

当使用远程 IP 地址连接到应用程序时,它们将被视为来自局域网 (LAN) 的连接。 这意味着你需要确保你的应用程序可以接受 LAN 连接。

例如,你可能需要将应用程序绑定到 0.0.0.0 而非 127.0.0.1 。 以使用 Flask 的 Python 应用为例,可以通过以下命令执行此操作: app.run(host=\'0.0.0.0\') 。 进行这些更改时请注意安全性,因为这将允许来自你的 LAN 的连接。

当使用 WSL 1 分发版时,如果计算机设置为可供 LAN 访问,那么在 WSL 中运行的应用程序也可供在 LAN 中访问。

这不是 WSL 2 中的默认情况。 WSL 2 有一个带有其自己独一无二的 IP 地址的虚拟化以太网适配器。 目前,若要启用此工作流,你需要执行与常规虚拟机相同的步骤。

WSL2 分发版目前无法访问纯 IPv6 地址。

参考资料:

https://www.jianshu.com/p/6b02948b3d37

https://www.liumingye.cn/archives/326.html

https://zhuanlan.zhihu.com/p/104771275?utm_source=cn.wiz.note

Go语言 | 01 WSL+VSCode环境搭建避坑指南

文章目录

前言

因为工作原因,需要使用Go语言进行开发,作为一个嵌入式开发人员,兵来将挡水来土掩

Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。

对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。

Go安装包下载安装

https://studygolang.com/dl

开发环境为WSL,所以直接选择Linux版本下载

下载后找个位置解压文件

执行解压指令

tar zxvf go1.18.3.linux-amd64.tar.gz

把解压后的go文件夹复制到home目录下,也可以自己定义,不过要记得自己的的这个目录

开始配置环境

建议在同一目录下建立go语言工作环境文件夹,我这里新建了一个gopath文件夹,路径为/home/gopath。

sudo nano /etc/profile

然后在打开的文件末尾添加:

export GOROOT=/home/go
export GOPATH=/home/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export GOPROXY="https://goproxy.io"
source .bash_profile

再然后刷新文档

source /etc/profile

这里的环境是全局的

最后运行

go version


这两个目录根据自己情况填写export GOROOT=/home/go;export GOPATH=/home/gopath

查看安装情况

这里准备了一个示例代码

保存为 .go 格式的文件

package main

import "fmt"

func main() 
    fmt.Printf("hello, world\\n")


执行

go run test.go

可以看到

表示Go下载和安装成功,但是我们肯定不能止步于此,要让开发变得人性化

需要借用VSCode

VSCode搭建

从Windows打开我们的VSCode,然后远程到WSL

安装Go插件

如果我们直接将示例代码进行F5运行,提示需要安装一些包

直接点击大概率是安装失败的

我们要单独进行操作,因为dlv主要牵扯到debug调试

也是决定了我们开发幸福指数的重要工具

dlv安装

go install github.com/go-delve/delve/cmd/dlv@latest


在确认安装了GCC之后,根据提示返回VSCode再次安装dlv

稍等片刻

就可以看到提示成功字样

此时F5,发现依然无法运行

解决办法:

go env -w GO111MODULE=auto


OK!环境成功搭建

CSDN 社区图书馆,开张营业! 深读计划,写书评领图书福利~

以上是关于WSL避坑指南的主要内容,如果未能解决你的问题,请参考以下文章

Go语言 | 01 WSL+VSCode环境搭建避坑指南

避坑指南!网上买卡“坑”太深,七个避坑指南或许能用得上!

.NET AsyncLocal 避坑指南

自如租房避坑指南

如何判断一个创业团队是否有前景?避坑指南

jmeter避坑指南