很多新手在学go时,linux下的配置环境一头雾水,总结下,可供参考!
--------------------------------------Golang的运行环境的安装与配置--------------------------------------
将压缩包放在/home/tools/下
解压
tar -zxvf go1.23.6.linux-amd64.tar.gz
进入:cd /usr/local
进行软连接(直接运行命令,不要建立go文件夹)
ln -s /home/tools/go/ go
变为全局命令:
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc # 持久化配置
source ~/.bashrc # 立即生效
查看go版本
[root@localhost bin]# go version
go version go1.23.6 linux/amd64
--------------------------------------配置golang的环境参数--------------------------------------
编辑 /etc/profile 文件,添加以下内容:
export GOROOT=/usr/local/go
export GOPATH=/data/go 设置自己的工作目录
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export GO111MODULE=on
export GOPROXY=https://goproxy.cn,direct 国内修改为cn
生效配置:
source /etc/profile
[root@localhost gate_svr]# vim /etc/profile
[root@localhost gate_svr]# source /etc/profile
清除go的缓存和包缓存:
[root@localhost gate_svr]# go clean -cache
[root@localhost gate_svr]# go clean -modcache
说明:
GOROOT 为 Golang 安装路径
GOPATH 为工作空间目录,需包含 src、pkg(依赖库)、bin 子目录
GOPROXY 用于加速依赖包下载
验证环境
go version # 查看版本
go env # 检查环境变量
创建目录结构
mkdir -p $GOPATH/{src,pkg,bin}
需确保工作空间与 GOROOT 路径不同。
设置用户权限
sudo chown -R root:root /data/go
sudo chmod 775 /data/go
开始会遇到:编译代码遇到网络链接各种库连接被拒绝的问题:
go: downloading github.com/xuri/excelize/v2 v2.4.1 ../../common/component/log/log.go:5:2: github.com/natefinch/lumberjack@v2.0.0+incompatible: Get "https://goproxy.cn/github.com/natefinch/lumberjack/@v/v2.0.0+incompatible.zip": dial tcp: lookup goproxy.cn on [::1]:53: read udp [::1]:58615->[::1]:53: read: connection refused
解决办法:
看看网络是否通畅,
nslookup www.baidu.com
有IP的情况下,防火墙或者dns解析的问题:
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
echo "nameserver 8.8.4.4" | sudo tee -a /etc/resolv.conf
systemctl restatus NetworkManager 重启网卡
--------------------------------------测试工作目录--------------------------------------
创建测试程序
mkdir -p /data/go/src/hello
vim /data/go/src/hello/main.go
内容:
package main
import "fmt"
func main() { fmt.Println("Workspace path: /data/go") }
编译运行
cd /data/go/src/hello
go build # 生成二进制文件到当前目录
./main # 运行程序
简单的生成go.mod文件:
go mod init hello
go mod tidy