当前位置: 首页 > news >正文

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.proxygit config --global http.proxynot 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.ReadMapBeginhave ()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.ReadStringhave ()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.ReadStringhave ()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
http://www.lryc.cn/news/7266.html

相关文章:

  • Springboot 使用插件 自动生成Mock单元测试 Squaretest
  • 「JVM 执行引擎」栈架构的字节码的解释执行引擎
  • SSM项目-商城后台管理系统
  • 什么是装运单IFTMIN?
  • 深度负反馈
  • 【每日随笔】手指训练 ( 产品需求探索、技术无关 | 手指训练作用 | 哪些人需要手指训练 | 手指操 | 手指康复训练器材 )
  • Apple Safari 16.3 - macOS 专属免费浏览器 (独立安装包免费下载)
  • 【java】Spring Boot --Spring Boot 集成 MyBatis
  • python正则表达式
  • 【C++】二叉树的非递归遍历
  • Linux——线程同步(条件变量、POSIX信号量)和线程池
  • leaflet 上传CSV文件,导出geojson格式文件(064)
  • Java内部类
  • Centos系统里运行java的jar包
  • 招标采购流程的电子招标采购,是管理复杂供应链和多层供应商的高效方式。
  • 【C语言】C程序结构和基本语法
  • YOLOv8 目标检测 | 自定义数据集
  • Lua语法入门
  • 华为OD机试真题JAVA实现【最小步骤数】真题+解题思路+代码(20222023)
  • 预检请求OPTIONS
  • 引入短信服务发送手机验证码进行安全校验
  • opencv绘制直线
  • Seata源码学习(五)- Seata服务端(TC)源码解读
  • 低版本jQuery导致XSS Nuclei FUZZ POC
  • 【Linux】进程的描述组织与进程状态
  • 8.2.1.1 WHERE 子句优化
  • 拆个微波炉,分析一下电路
  • DM8:DMDSC共享存储集群搭建-共享存储绑定
  • Spark OOM问题常见解决方式
  • 【Calcite源码学习】ImmutableBitSet介绍