GOLANG/GO环境的配置笔记

  1. Go私有仓库管理
    1.首先需要更新go版本(1.13版本以上即可)

2.首先配置go module为打开模式(这个最无关紧要)
go env -w GO111MODULE=on

3.配置go module中的私有仓库地址
gitlab.com/go-package/guuc v0.0.0-20210130033646-ecef0be95a29
go env -w GOPRIVATE=“mod文件中私服地址”,如下
go env -w GOPRIVATE=“gitlab.com”

4.因为拉取gitlab私有代码会默认http格式下载,所以需要更改一下拉取方式
#http方式
git config --global url.“http://gitlab.XXX.com:0000/yinyuapp”.insteadOf “https://gitlab.com”
#SSH方式
git config --global url.“git@gitlab.XXXX.com:yinyuapp”.insteadOf “https://gitlab.com”

5.Gitlab—>Settings—>Access Tokens,然后创建一个personal access token,这里权限最好选择只读(read_repository)。
注明:以上四部做完可以先测试一下,这一步不一定是必须的
git config --global http.extraheader “PRIVATE-TOKEN: YOUR_PRIVATE_TOKEN”
6.执行 git config --global -e 然后添加如下内容:
[url “http://xxx:xxxxx@gitlab.xxx.com:8099/yinyuapp”]
insteadOf = https://gitlab.com
[user]
name=xxx
email=xxxx@qq.com

  1. Go依赖管理
    2.1 go mod介绍
    go modules 是 golang 1.11 新加的特性。现在1.12 已经发布了,是时候用起来了。Modules官方定义为:

模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件

2.2 go mod使用
2.2.1 升级或者安装golang新版本(版本>1.11)

卸载旧版本,删除对应文件

brew uninstall -f go

更新一下brew

brew update

安装go

brew install go
2.2.2 设置go mod和go proxy
go env -w GOBIN=/Users/youdi/go/bin
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct // 使用七牛云的
2.3 go mod命令
命令 说明
download 下载依赖包
edit 编辑go.mod
graph 打印模块依赖图
init 在当前目录初始化mod
tidy 拉取缺少的模块,移除不用的模块
vendor 将依赖复制到vendor下
verify 验证依赖是否正确
why 解释为什么需要依赖
2.4 go mod使用
2.4.1 初始化项目
#执行初始化命令后,会在项目的根目录下生成一个go.mod的文件
go mod init 项目名
go.mod 提供了module, require、replace和exclude 四个关键字

module 语句指定包的名字(路径)
require 语句指定的依赖项模块
replace 语句可以替换依赖项模块
exclude 语句可以忽略依赖项模块
2.4.2 运行代码,下载依赖
执行 go run main.go 运行代码会发现 go mod 会自动查找依赖自动下载
再查看 go.mod

module Gone

go 1.14

require github.com/gin-gonic/gin v1.6.3
go module 安装 包 的原則是先拉最新的 release tag,若无tag则拉最新的commit

go 会自动生成一个 go.sum 文件来记录依赖树

可以使用命令 go list -m -u all 来检查可以升级的package,使用go get -u need-upgrade-package 升级后会将新的依赖版本更新到go.mod 也可以使用 go get -u 升级所有依赖

2.4.3 go get升级
运行 go get -u 将会升级到最新的次要版本或者修订版本(x.y.z, z是修订版本号, y是次要版本号)
运行 go get -u=patch 将会升级到最新的修订版本
运行 go get package@version 将会升级到指定的版本号version
运行go get如果有版本的更改,那么go.mod文件也会更改
2.4.4 使用replace替换无法直接获取的包
由于某些已知的原因,并不是所有的package都能成功下载,比如:golang.org下的包。
modules 可以通过在 go.mod 文件中使用 replace 指令替换成github上对应的库

replace (
golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a => github.com/golang/crypto v0.0.0-20190313024323-a1f597ede03a
)
3. go build 编译不同系统可执行文件
GOOS:目标可执行程序运行操作系统,支持 darwin,freebsd,linux,windows

GOARCH:目标可执行程序操作系统构架,包括 386,amd64,arm

3.1 Mac下编译Linux, Windows平台的64位可执行程序

-o 输出目录以及文件名,目录最后一级是文件名

$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o ./bin/test test.go
$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go
3.2 Linux下编译Mac, Windows平台的64位可执行程序
$ CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build test.go
$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go
3.3 Windows下编译Mac, Linux平台的64位可执行程序
$ SET CGO_ENABLED=0SET GOOS=darwin3 SET GOARCH=amd64 go build test.go
$ SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 go build test.go
Golang version 1.5以前版本在首次交叉编译时还需要配置交叉编译环境:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 ./make.bash@TOC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值