Go (Golang) 以簡潔語法、高併發效能、靜態編譯部署優勢,成為雲原生、微服務、CLI 工具開發首選。本文提供 Linux (RHEL/CentOS/Ubuntu/Debian) 上 Go 開發環境的標準化安裝、配置、版本管理、IDE 整合與專案初始化全流程。
| 方式 | 優點 | 缺點 | 推薦場景 |
|---|---|---|---|
| 官方二進制包 | 版本最新、無依賴、單檔案 | 手動更新、無包管理 | 生產環境、容器構建、精確版本控制 |
| 包管理器 (apt/dnf) | 系統整合、自動更新 | 版本滯後 (常為 1.x 舊版) | 學習測試、非關鍵環境 |
| 版本管理器 (gvm/asdf/goenv) | 多版本切換、專案級隔離 | 額外學習成本 | 多專案並行、版本相容性測試 |
# 訪問 https://go.dev/dl/ 獲取最新版連結
VERSION=1.22.3
wget https://go.dev/dl/go${VERSION}.linux-amd64.tar.gz
sha256sum go${VERSION}.linux-amd64.tar.gz
# 對照官網 SHA256
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go${VERSION}.linux-amd64.tar.gz
/etc/profile.d/go.sh (系統級) 或 ~/.bashrc (使用者級):
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH
source /etc/profile.d/go.sh
go version
# go version go1.22.3 linux/amd64
# 安裝依賴
sudo apt install bison make gcc curl git # Ubuntu
# sudo dnf install bison make gcc curl git # RHEL
# 安裝 gvm
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
source ~/.gvm/scripts/gvm
# 安裝並使用特定版本
gvm install go1.22.3 -B
gvm use go1.22.3 --default
Go 1.11+ 推薦啟用 Modules 模式 (GO111MODULE=on,Go 1.16+ 預設開啟)。
mkdir -p ~/go/src/myproject
cd ~/go/src/myproject
go mod init github.com/username/myproject
myproject/
├── go.mod # 模組定義與依賴
├── go.sum # 依賴校驗和
├── main.go # 入口
├── pkg/ # 內部包
│ └── utils/
└── cmd/ # 多入口專案
└── server/
go mod tidy # 整理依賴 (增刪)
go mod vendor # 複製依賴到 vendor/ (離線構建)
go list -m all # 列出所有依賴
go get -u ./... # 升級所有依賴
| 工具 | 安裝命令 | 用途 |
|---|---|---|
golangci-lint | go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest | 靜態分析、代碼規範 |
goimports | go install golang.org/x/tools/cmd/goimports@latest | 自動整理 import |
dlv | go install github.com/go-delve/delve/cmd/dlv@latest | 除錯器 |
gopls | go install golang.org/x/tools/gopls@latest | LSP 語言伺服器 (VS Code/GoLand) |
mockgen | go install github.com/golang/mock/mockgen@latest | 介面 Mock 生成 |
golang.go,自動提示安裝 gopls、dlv,開箱即用。vim-go + coc.nvim + gopls。# Linux 編譯 Windows 64位
GOOS=windows GOARCH=amd64 go build -o myapp.exe .
# Linux 編譯 Linux ARM64 (樹莓派/雲伺服器)
GOOS=linux GOARCH=arm64 go build -o myapp .
# 靜態編譯 (無 libc 依賴,適合 scratch 容器)
CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o myapp .
| 問題 | 解決 |
|---|---|
go: cannot find main module | 在模組根目錄執行,或 go mod init |
| 私有倉庫拉取失敗 | go env -w GOPRIVATE=github.com/yourorg/*,配置 SSH 金鑰/Token |
| 編譯緩慢 | 啟用 GOCACHE、使用 go build -p N 並行、SSD 硬碟 |
| 容器中構建過大 | 多階段構建:FROM golang:alpine AS builder → FROM scratch |
完成上述配置,即擁有專業級 Go 開發環境,支援現代模組化開發、高效除錯、靜態分析與跨平台部署。
Linux 終端機 11 個必學高效操作技巧:快捷鍵、sudo!!、背景執行、nohup、at 排程
Linux 伺服器遭 Rootkit 入侵完整應急處置:從異常流量到徹底清除
CentOS 6.5 使用 yum 快速部署 LAMP 環境:EPEL、Remi 源與安全設定
Linux 使用 script 命令記錄用戶終端操作審計軌跡
Linux SVN 操作實戰指南:Checkout、Add、Commit、Lock/Unlock 完整範例
Linux 指定行號查看檔案內容:sed、awk、head/tail 實戰技巧全解析