cd /usr/local/src
wget https://studygolang.com/dl/golang/go1.18.5.linux-amd64.tar.gz
tar -zxvf go1.18.5.linux-amd64.tar.gz -C /usr/local/


设置环境变量

vim /etc/profile在文件最后添加以下内容


# 设置golang的环境变量
# 设置GO安装目录 
export GOROOT=/usr/local/go
# 设置gopath
export GOPATH=/home/gopath
# 设置gobin
export GOBIN=/home/gopath/bin
# 设置代理,代理没有数据,则直接拉取
export GOPROXY=https://goproxy.io,direct
#export GOPROXY=https://proxy.golang.org,direct
# 忽略公司git走代理
# export GOPRIVATE=*.xx.com
# 加入PATH
export PATH=$PATH:$GOROOT/bin:$GOBIN
source /etc/profile

设置国内代理,加速go get
https://goproxy.io/zh/

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
 

go1.16升级编译失败问题


今天看到go1.16发布了,修改了内存管理的方式,打算升级试下,结果编译时遇到下面的错误:
[root@localhost isec2]# go build main.go 
# command-line-arguments
/usr/local/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/bin/ld: /tmp/go-link-478423632/000020.o: unrecognized relocation (0x2a) in section `.text'
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
 

在centos7上 解决方式: 升级ld

yum  install binutils-2.27