go语言环境配置 项目启动

news2024/11/24 0:11:33

一 安装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.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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/346760.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【软件测试】稳定性测试怎么做,这篇文章彻底讲透了~

稳定性对产品的重要性不言而喻。 而作为质量保障,在稳定性测试方面的探索也在不断演化。记得两年前我们做稳定性测试还是基于恒定的压力,7*24小时长时间运行,关注的指标无非是吞吐量TPS的抖动、响应时间的变化趋势,以及各种资源是…

《机器学习系统:设计和实现》读后感和一些思考

目录 计算图、编译器前端、编译器后端 计算图 计算图的作用 计算图的组成 静态计算图与动态计算图 编译器前端 IR中间表示 机器学习框架的中间表示 常见编译器前端优化方法 编译器后端 概述 通用硬件优化:算子拆分和算子融合 算子信息 数据精度和存储…

opencv访问图像(MAT)的属性

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

设计模式:装饰模式

1、装饰模式 1)定义 动态(组合)地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类(继承)更为灵活(消除重复代码&减少子类个数)。 2)动机&…

Harbor安装部署实战详细手册

文章目录前言一、安装docker二、安装docker-compose1.下载2.赋权3.测试三、安装harbor1.下载2.解压3.修改配置文件4.部署5.配置开机自启动6.登录验证7.补充说明四、harbor使用问题1.docker login问题:Error response from daemon: Get https://: http: server gave …

Ubuntu 安装 Qt5.7.0

下载 地址:https://download.qt.io/https://download.qt.io/ 文件夹说明: snapshots:预览版,该文件夹中包含最新的测试版本。 online:在线安装包。 official_releases:最终发布版。 new_archive&#…

netcore构建webservice以及调用的完整流程

目录构建前置准备编写服务挂载服务处理SoapHeader调用添加服务调用服务补充内容构建 前置准备 框架版本要求:netcore3.1以上 引入nuget包 SoapCore 编写服务 1.编写服务接口 示例 using System.ServiceModel;namespace Services;[ServiceContract(Namespace &…

Elasticsearch 安装(二)

目录前言一、Linux 安装1、下载安装包⑴、选择需要的安装包⑵、下载解压到安装目录2、查看解压后目录结构3、启动 Elasticsearch⑴、正常启动流程⑵、启动过程遇到的问题①、启动报错②、创建运行 Elasticsearch 的用户,启动成功,但无法访问③、停止Elas…

【pytorch框架】对模型知识的基本了解

文章目录TensorBoard的使用1、TensorBoard启动:2、使用TensorBoard查看一张图片3、transforms的使用pytorch框架基础知识1 nn.module的使用2 nn.conv2d的使用3、池化(MaxPool2d)4 非线性激活5 线性层6 Sequential的使用7 损失函数与反向传播8 优化器9 对现有网络的使…

Flink X Hologres 构建企业级 Streaming Warehouse

摘要:本文整理自阿里云资深技术专家,阿里云 Hologres 负责人姜伟华(果贝),在 FFA 实时湖仓专场的分享。本篇内容主要分为四个部分:实时数仓分层的技术需求阿里云一站式实时数仓 Hologres 介绍Flink x Holog…

30个题型+代码(冲刺2023蓝桥杯)

愿意的可以跟我一起刷,每个类型做1~5题 ,4月前还可以回来系统复习 2月13日 ~ 3月28日,一共32天 一个月时间,0基础省三 --> 省二;基础好点的,省二 --> 省一 目录 🌼前言 &#x1f33c…

1.1配置单区域OSPF

实验1:配置单区域OSPF[1] 1.实验目的 实现单区域OSPF的配置描述OSPF在多路访问网络中邻居关系建立的过程2.实验拓扑 单区域的OSPF实验拓扑如图1-2所示。 图1-2 配置单区域OSPF 3.实验步骤 IP地址的配置[2] R1的配置

Framebuffer驱动程序框架

Framebuffer驱动程序框架 文章目录Framebuffer驱动程序框架一、 怎么编写字符设备驱动程序二、 Framebuffer驱动程序框架三、 怎么编写Framebuffer驱动程序致谢一、 怎么编写字符设备驱动程序 驱动主设备号构造file_operations结构体,填充open/read/write等成员函数…

获取本机的IP地址,看似简单的获取,实则蕴含非常多的操作

这篇文章讲述了PowerJob获取本地IP离奇曲折的经过,以及开放了诸多的可配置参数,打开了我新世界的大窗户。求个关注,求个点赞,求一个评论。 获取地址的操作,本来不应该作为什么重点,但是因为一点小小的意外&…

再创荣誉 | Softing工业荣获CAIMRS 2023 数字化创新奖

在刚刚结束的中国工控-第二十一届“自动化及数字化”年度评选(CAIMRS 2023)中,Softing凭借edgeAggregator产品荣获“数字化创新奖”! 经层层筛选,Softing edgeAggregator边缘聚合服务器从中脱颖而出,摘得C…

隐马尔科夫模型基础

一、定义是一种生成模型,是隐藏的马尔科夫链随机生成不可观测的状态序列,再由各个状态生成观测序列的过程二、符号含义其中:Q是所有可能的状态集合V是所有的可能的观测集合N是可能的状态数,M是可能的观测数其中:I是长度…

想搞钱,先培养商业思维!

昨天谈借助 ChatGPT 挣点房贷钱的时候,看评论区大家留言的时候,发现很多人不知道这个东西可以赚钱,或者说知道这个东西且也做了功课,无奈太忙最后也没搞到钱。可以看到,大家的问题,归根于自己有没有商业思维…

小白系列Vite-Vue3-TypeScript:010-封装svg

上一篇我们介绍了ViteVue3TypeScript项目中mockjs的安装和配置i。本篇我们来介绍封装SVG图标组件。svg特征Preloading所有图标都是在项目运行时生成的,只需要操作一次dom即可。高性能内置缓存,仅在文件被修改时才会重新生成。安装插件vite-plugin-svg-ic…

QHash源码解读

QT版本 v5.12.10 元素 // 重点说明QHashData的函数,QHashData是QHash的基础 struct QHashData {struct Node {Node *next;uint h;};Node *fakeNext; // 永为nullNode **buckets; // Node *数组QtPrivate::RefCount ref;int size; // node个数int nodeSize; /…

koa2结合MySQL实现简单的考试系统

项目需求:1. 数据库采用mysql实现, 后台服务Koa2框架, 通过postman调试所有接口2. 接口功能&#xff1a;(1)实现对科目表的增删改查(2)实现对试题表的增删改(3)实现对试题表的查询操作&#xff0c;要求&#xff1a;<1>显示科目名称和类型名称 <2> 可以按照科目名称…