温馨提示×

CentOS怎么部署Golang

小樊
40
2026-08-03 08:59:38
栏目: 编程语言

CentOS 上部署 Golang(Go 语言) 一般分为 安装 Go 环境部署 Go 项目 两部分。下面按常见场景一步一步说明(适用于 CentOS 7 / CentOS 8 / Rocky / Alma 同理)。


一、在 CentOS 上安装 Golang

✅ 方法一:官方二进制包(推荐,版本新、稳定)

1️⃣ 卸载旧版本(如果有)

sudo rm -rf /usr/local/go

2️⃣ 下载 Go(以 1.22 为例)

cd /usr/local
sudo wget https://go.dev/dl/go1.22.4.linux-amd64.tar.gz

可到官网查看最新版本:https://go.dev/dl/

3️⃣ 解压

sudo tar -C /usr/local -xzf go1.22.4.linux-amd64.tar.gz

4️⃣ 配置环境变量

编辑:

sudo vi /etc/profile

在文件末尾添加:

export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

生效:

source /etc/profile

5️⃣ 验证安装

go version

输出类似:

go version go1.22.4 linux/amd64

✅ 方法二:使用 yum / dnf(版本较旧)

CentOS 7

sudo yum install golang -y

CentOS 8 / Rocky / Alma

sudo dnf install golang -y

查看版本:

go version

⚠️ 仓库版本通常较老,不推荐生产环境使用。


二、编写并运行 Go 程序

1️⃣ 创建项目目录

mkdir -p ~/go-projects/hello
cd ~/go-projects/hello

2️⃣ 初始化 Go 模块

go mod init hello

3️⃣ 编写程序

vi main.go
package main

import "fmt"

func main() {
    fmt.Println("Hello, CentOS Go!")
}

4️⃣ 运行

go run main.go

三、编译并部署 Go 项目(生产环境)

1️⃣ 编译二进制文件

go build -o hello

生成:

./hello

2️⃣ 后台运行(简单方式)

nohup ./hello > app.log 2>&1 &

查看进程:

ps -ef | grep hello

四、使用 systemd 管理 Go 服务(推荐)

1️⃣ 假设你的程序路径

/opt/go/hello

2️⃣ 创建 systemd 服务

sudo vi /etc/systemd/system/hello.service

内容示例:

[Unit]
Description=Go Hello Service
After=network.target

[Service]
Type=simple
ExecStart=/opt/go/hello
WorkingDirectory=/opt/go
Restart=always
User=root

[Install]
WantedBy=multi-user.target

3️⃣ 启动并设置开机自启

sudo systemctl daemon-reload
sudo systemctl start hello
sudo systemctl enable hello

查看状态:

sudo systemctl status hello

五、防火墙放行端口(如需要)

如果 Go 程序监听端口(如 8080):

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

六、常见问题

❓ go: command not found

  • 环境变量没生效
  • 检查 /usr/local/go/bin 是否在 PATH

❓ 编译慢 / 拉不到依赖

配置国内代理:

go env -w GOPROXY=https://goproxy.cn,direct

七、总结(最简流程)

wget go.tar.gz
tar -C /usr/local -xzf go.tar.gz
export PATH=$PATH:/usr/local/go/bin
go version
go build
./app

如果你愿意,可以告诉我:

  • ✅ CentOS 版本
  • ✅ 是否部署 Web 服务(Gin / Beego / net/http)
  • ✅ 是否需要 Nginx 反向代理

我可以给你一套 完整生产级部署方案

0