在 Debian 上编译 Go(Golang)项目通常有几种方式,取决于你是要直接用系统环境编译,还是用容器/交叉编译。下面按常见场景说明。
sudo apt update
sudo apt install golang-go
检查版本:
go version
wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz
配置环境变量(写入 ~/.bashrc 或 ~/.profile):
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
生效:
source ~/.bashrc
cd your_project
go mod tidy
go build
生成可执行文件(默认与目录同名)
指定输出文件名:
go build -o myapp
例如编译 Linux ARM64:
GOOS=linux GOARCH=arm64 go build -o myapp-arm64
常见组合:
GOOS=windows GOARCH=amd64GOOS=darwin GOARCH=arm64如果你打算在 Debian 上运行:
sudo cp myapp /usr/local/bin/
创建 systemd 服务:
[Unit]
Description=My Go App
[Service]
ExecStart=/usr/local/bin/myapp
WorkingDirectory=/opt/myapp
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl enable myapp
sudo systemctl start myapp
go: command not found说明 PATH 没配置好,检查:
which go
不要用 root 写代码,编译后用 sudo 运行。
建议使用官方 Go,而不是 apt。
如果你有:
可以告诉我,我可以给你更精确的命令。