用WSL(Win10linux子系统)构建Golang的Windows和linux并存开发环境

栏目: Go · 发布时间: 6年前

内容简介:前面说完了如何在Ubuntu上部署Go语言开发环境,以及IPFS调试环境,但还是有很多人用的Windows系统,毕竟很多软件在Linux上并没有提供,日常使用会有点不方便。一种折衷的方法是在Window上使用虚拟机来运行Linux环境,或者干脆就使用Windows版本的Golang和IPFS,但是虚拟机占用资源很多,而纯Windows环境又少了很多*nix系的小工具。我这里提供一种方法,通过Win10提供的WSL来构建并存开发环境。

前面说完了如何在Ubuntu上部署 Go 语言开发环境,以及IPFS调试环境,但还是有很多人用的Windows系统,毕竟很多软件在 Linux 上并没有提供,日常使用会有点不方便。

一种折衷的方法是在Window上使用虚拟机来运行Linux环境,或者干脆就使用Windows版本的Golang和IPFS,但是虚拟机占用资源很多,而纯Windows环境又少了很多*nix系的小工具。

我这里提供一种方法,通过Win10提供的WSL来构建并存开发环境。

一、安装Linux子系统

本段参考了 https://www.jianshu.com/p/bc3...

首先进入控制面板在 启用或关闭Windows功能 里启用适用linux的Windows子系统

用WSL(Win10linux子系统)构建Golang的Windows和linux并存开发环境

用WSL(Win10linux子系统)构建Golang的Windows和linux并存开发环境

然后在应用商店搜索Ubuntu18.04点击安装,启动后输入用户名和账户密码,Ubuntu子系统就装好了。

用WSL(Win10linux子系统)构建Golang的Windows和linux并存开发环境

注:这过程出现问题可以去设置里打开开发者模式试试。

然后更换软件源为国内的源,此处举例为阿里云的镜像

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak //备份以前的文件免得出问题
sudo vim /etc/apt/sources.list
删掉里面所有内容,将下面的内容复制进去
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

然后运行下面的命令更新软件,以及安装基本工具

由于Linux子系统是最小化安装,所以我们还需要手动装一些工具,暂时先装这些吧。

$sudo apt update
$sudo apt install gcc gdb build-essential git vim cmake wget curl python python3

二、安装zsh

zsh是比bash要好用许多的,所以我在子系统里也安装使用zsh,我们还是用OhMyZsh来傻瓜式安装,在命令行下输入以下语句然后输入密码即可。

$sudo apt install zsh
$sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

然后安装一些插件,

$vim ~/.zshrc
 //找到下面这一句
 plugins=(
    git
)
//将其修改为
plugins=(
 git extract last-working-dir zsh-autosuggestions
 wd zsh-syntax-highlighting
 )

安装autojump,这是一个十分强大的目录跳转插件,建议安装,安装流程如下

$sudo apt-get install autojump
$cd
$git clone https://github.com/joelthelion/autojump.git
$cd autojump
$python ./install.py 
//最后会有一个提示,让你把那句话复制到~/.zshrc里去,每个人都不一样
vim ~/zshrc
复制刚刚那段到最后
source ~/.zshrc

此时运行autojump会有一个问题,这个问题只出现在WSL上,具体解决方案如下,参考了 https://blog.csdn.net/szhiele...

$vim ~/.zshrc
//在最后加上下面这句
unsetopt BG_NICE
$source ~/.zshrc

三、在WSL中安装Golang

最开始我想用WSL来折腾图形界面,后来发现是 完全没必要的 ,因为Win10和子系统是共享文件夹,我完全可以在Win10上操作源代码,在子系统里测试。但是Win10不能更改子系统下的文件,否则子系统就不能识别了。但是呢,子系统可以使用Win10的文件,而且是以权限777(全权限),拥有者为root的形式使用,所以我们可以把项目代码放在Win10的文件系统中,那么两边都可以用到了。

下面内容借鉴了

首先在在网上下好go的安装包,Linux和Windows都下载一份,Windows就直接安装即可,它会把GOPATH自动设置为C:Usersyounamego。然后我们把linux版的压缩文件如go1.11.1.linux-amd64.tar.gz放在c盘根目录,在子系统Ubuntu18.04中执行下面的命令行指令

cd /mnt/c
sudo tar xf go1.11.1.linux-amd64.tar.gz -C /usr/local

然后在/etc/profile和~/.bashrc中加入环境变量

$sudo vim /etc/profile
export    GOROOT=/usr/local/go
export    GOPATH=/mnt/c/Users/youname/go //youname为你Windows设置的用户名,你也可以把两个环境变量都设置成/mnt/c/go,比较方便。  
export    PATH=$PATH:$GOROOT/bin:$GOPATH/bin
$source /etc/profile
$vim ~/.zshrc
export  GOROOT=/usr/local/go                                                
export  GOPATH=/mnt/c/Users/youname/go //跟上面一样                                          
export  PATH=$PATH:$GOROOT/bin:$GOPATH/bin
$source ~/.zshrc

然后看看go有没有安装成功

$go version
go version go1.11.1 linux/amd64

四、安装IPFS

这个跟上一个教程无区别,参见 https://segmentfault.com/a/11...

由于子系统和Win10共用网络端口,所以在子系统里运行ipfs daemon,在Win10的浏览器里也是可以打开webui的。

五、配置编程环境

编辑器还是用的VScode,不过用的是Windows版的Vscode,首先,将VScode的 shell 设置成wsl,在设置里搜索终端,按下面的路径设置。

用WSL(Win10linux子系统)构建Golang的Windows和linux并存开发环境

然后建立工作区,将gx/ipfs和go-ipfs合并建立一个工作区开始编辑调试吧,同样,打开Go文件会提示下载插件,要架梯子,架梯子还安装失败就直接把安装命令复制到powershell安装即可,其他问题可以参考我写的Linux配置那篇教程。

然后是下载安装cmder,因为Ubuntu18.04子系统用的是cmd,非常难用,换一个终端模拟器还是很有必要的,cmder和wsltty都还可以。

安装好cmder,将shell设置为ubuntu子系统的shell,如下图

用WSL(Win10linux子系统)构建Golang的Windows和linux并存开发环境

然后,开心地在Win10上享受同时具备两个开放环境的体验吧。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

全栈开发之道

全栈开发之道

和凌志 / 电子工业出版社 / 68.00元

全栈(Full Stack)是一种全新的以前端为主导的框架,框架选型聚焦在MEAN(MongoDB、Express、AngularJS、Node.js)上。选用MEAN全栈技术,可以快速地实现敏捷开发,尤其是到了产品的运营阶段,其优势表现得非常明显。本书主要介绍MEAN全栈技术,分为入门篇、基础篇和实战篇,入门篇对全栈进行了概述,基础篇重点介绍了全栈的四个主要技术,即MongoDB、Express......一起来看看 《全栈开发之道》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试