很多新手在學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