首页主机资讯CentOS编译Go项目有哪些步骤

CentOS编译Go项目有哪些步骤

时间2025-12-12 17:51:04发布访客分类主机资讯浏览374
导读:在 CentOS 上编译 Go 项目的标准流程 一 准备环境 安装 Go 工具链 使用包管理器安装:在 CentOS 7 执行 sudo yum install -y golang;在 CentOS 8+ 可用 sudo dnf ins...

在 CentOS 上编译 Go 项目的标准流程

一 准备环境

  • 安装 Go 工具链
    • 使用包管理器安装:在 CentOS 7 执行 sudo yum install -y golang;在 CentOS 8+ 可用 sudo dnf install -y golang
    • 或二进制安装:下载 Go 发行包(如 go1.19.5.linux-amd64.tar.gz),解压至 /usr/localsudo tar -C /usr/local -xzf go1.19.5.linux-amd64.tar.gz
  • 配置环境变量
    • 写入全局配置:echo 'export GOROOT=/usr/local/go' > > /etc/profileecho 'export PATH=$PATH:$GOROOT/bin' > > /etc/profile,执行 source /etc/profile 生效。
    • 如使用模块(Go 1.11+ 推荐),可设置 GOPATH=$HOME/go 并将 $GOPATH/bin 加入 PATH(可选)。
  • 验证安装:go version 应输出版本号,如 go1.19.5 linux/amd64

二 获取代码与依赖

  • 进入项目目录:cd /path/to/your/project
  • 使用 Go Modules(推荐):在项目根目录执行 go mod init < module-name> (若已有 go.mod 可跳过),然后 go get ./... 拉取依赖。
  • 非模块项目:可按需设置 GOPATH 并将代码放入 $GOPATH/src 下(旧项目常见做法)。

三 编译与交叉编译

  • 本机编译(运行环境与目标一致时):go build -o myapp main.go 或使用模块时直接 go build,生成当前平台可执行文件。
  • 交叉编译(在开发机为 Linux 目标构建):
    • Linux amd64:GOOS=linux GOARCH=amd64 go build -o myapp-linux-amd64 main.go
    • Windows amd64:GOOS=windows GOARCH=amd64 go build -o myapp.exe main.go
    • macOS amd64:GOOS=darwin GOARCH=amd64 go build -o myapp-darwin-amd64 main.go
      提示:交叉编译时无需在目标平台安装 Go,产物为静态二进制,便于部署。

四 产物打包与分发

  • 压缩归档:tar -czvf myapp.tar.gz myapp config.yaml,使用 scprsync 上传至服务器。
  • 服务器侧解压与授权:tar -xzvf myapp.tar.gz & & chmod +x myapp
  • 可选 RPM 打包:使用 rpmbuild 编写 SPEC 文件并构建,便于在 CentOS 环境内标准化分发与安装。

五 运行与进程管理

  • 直接运行:./myapp;后台运行:nohup ./myapp > app.log 2> & 1 &
  • 生产级托管:使用 Systemd 管理服务。示例 /etc/systemd/system/myapp.service
    [Unit]
    Description=My Go Application
    After=network.target
    
    [Service]
    User=youruser
    Group=yourgroup
    ExecStart=/path/to/myapp
    Restart=always
    Environment=GO_ENV=production
    
    [Install]
    WantedBy=multi-user.target
    
    常用命令:sudo systemctl daemon-reload & & sudo systemctl start myapp & & sudo systemctl enable myapp;查看状态与日志:systemctl status myappjournalctl -u myapp -f
  • 开放端口(如监听 8080):sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent & & sudo firewall-cmd --reload
  • 容器化可选:使用官方镜像构建并运行
    FROM golang:1.18
    WORKDIR /app
    COPY . .
    RUN go build -o myapp main.go
    EXPOSE 8080
    CMD ["./myapp"]
    
    构建与运行:docker build -t myapp .docker run -p 8080:8080 myapp

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS编译Go项目有哪些步骤
本文地址: https://pptw.com/jishu/770720.html
Go语言在CentOS如何高效编译 CentOS编译Go语言出错怎么办

游客 回复需填写必要信息