go语言环境配置 & 项目启动

一  安装go语言

go语言各个版本之间兼容性比较差。所以可能你需要安装固定的版本

1  安装最新版的go

brew install go

2  查看go可以安装的版本

brew search go

 3  安装指定版本的go

brew install go@1.13

4  查看安装的go语言的版本

go version

5  查看go的安装路径

which go || where go

6  查看go的环境变量

go env

主要关注go语言的GOROOT GOPATH GO111MODULE这三个环境变量

go env | grep "GOROOT" // go语言的安装路径
go env | grep "GOPATH" // go语言的工作目录
go env | grep "GO111MODULE" // go mod的开启状态

 7  如果go version不管用 检查下环境变量是否配置了go语言的环境变量

二  go mod的使用

go mod可以理解为一个包管理工具(类似于java中的maven)

设置go mod的环境变量

go env -w GO111MODULE=on
go env -w GOPROXY="https://go-mod-proxy.byted.org,https://goproxy.cn,https://proxy.golang.org,direct"

go mod的详细可点击这里:go mod使用

踩坑记录:

1  执行go mod下载的时候提示

fatal: could not read Username for 'https://github.com': terminal prompts disabled
package github.com/XXX/OOOO/: exit status 128

这个是因为利用homebrew下载go时, 默认禁用了terminal prompts(终端提示)

解决方案:在环境变量中开启终端提示

export GIT_TERMINAL_PROMPT=1

2  执行go mod下载的时候某些部分的依赖不能下载

Cloning into 'scripts'...
fatal: unable to access 'https://github.com/open-falcon/scripts.git/': SSL connect error

发生这种情况是因为代理是在git中配置的。既然它是https代理(而不是http)

即使设置代理也是不好用的。git config http.proxy和git config --global http.proxy 是not work的

解决方案:在~/.gitconfig中配置url的前置替换

[url "git@code.byted.org:"]
        insteadOf = https://code.byted.org/
[url "git@git.byted.org:"]
        insteadOf = https://git.byted.org/

3  go get/install时提示

"dial tcp: lookup code.byted.org on 8.8.8.8:53: no such host"

启用 Go Module 之后,Golang 会默认通过 Go Mod Proxy 代理拉取代码,但是由于公司的代码仓库只在公司内网有解析,所以在使用 golang 默认 proxy(https://proxy.golang.org,由谷歌提供)时,无法在 8.8.8.8 解析 code.byted.org 等公司域名,则会提示上面的错误。

解决方案

添加如下环境变量

export GO111MODULE=on
export GOPROXY="https://go-mod-proxy.byted.org,https://proxy.golang.org,direct"
export GOPRIVATE="*.byted.org,*.everphoto.cn,git.smartisan.com"
export GOSUMDB="sum.golang.google.cn"

4  安装kitex(可以用来生成thrift文件的工具,类似于IDEA中生成thrift文件的插件)时提示如下的错误

...
gorepos/gocode/src/code.byted.org/kite/kitex/tool/pkg/parser/AST.go:312:39: not enough arguments in call to iprot.ReadMapBegin
        have ()
        want (context.Context)
gorepos/gocode/src/code.byted.org/kite/kitex/tool/pkg/parser/AST.go:320:35: not enough arguments in call to iprot.ReadString
        have ()
        want (context.Context)
gorepos/gocode/src/code.byted.org/kite/kitex/tool/pkg/parser/AST.go:325:35: not enough arguments in call to iprot.ReadString
        have ()
        want (context.Context)
gorepos/gocode/src/code.byted.org/kite/kitex/tool/pkg/parser/AST.go:325:35: too many errors

刚开始以为是go版本的问题,升级到了go的1.14版本,无果。其实是在goland的terminal中没有打开GO111MODULE(即使在go env时看到是开启,在goland的termind也执行时也是不能正常获取到开启状态的)

解决方案

安装时执行

GO111MODULE=on go get code.byted.org/kite/kitex/tool/cmd/kitex@latest
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值