如何在CentOS上管理Golang项目
首先需要安装Go语言运行环境,推荐通过官方二进制包安装:
wget https://go.dev/dl/go1.21.linux-amd64.tar.gz
/usr/local目录:sudo tar -C /usr/local -xzf go1.21.linux-amd64.tar.gz
/etc/profile,添加以下内容:export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
使配置生效:source /etc/profile
go version # 应输出Go版本信息(如go1.21 linux/amd64)
Go Modules是Go官方推荐的依赖管理工具(Go 1.11+原生支持),能避免“GOPATH”模式的混乱:
go.mod文件(记录依赖及版本):mkdir myproject && cd myproject
go mod init github.com/yourusername/myproject # 替换为你的项目导入路径
github.com/gin-gonic/gin),运行项目或构建时,Go会自动下载依赖并更新go.mod和go.sum(依赖校验文件)。go get -ugin):go get -u github.com/gin-gonic/gingo.mod中未使用的依赖(如删除代码中的包后):go mod tidy
go list -m all # 显示所有依赖及版本
myapp):go build -o myapp main.go # 指定输出文件名
./myapp
go run命令(适合开发调试):go run main.go
将Golang应用注册为systemd服务,实现后台运行和系统启动时自动启动:
/etc/systemd/system/myapp.service):[Unit]
Description=My Golang Application
After=syslog.target
[Service]
Type=simple
User=root # 建议使用专用用户(如`appuser`)替代root
WorkingDirectory=/root/myproject # 项目根目录
ExecStart=/root/myproject/myapp # 可执行文件路径
Restart=always # 失败时自动重启
RestartSec=5s
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start myapp.service
sudo systemctl status myapp.service # 查看服务状态
sudo systemctl enable myapp.service
使用Git管理项目代码,实现版本追踪、协作开发:
sudo yum install -y git
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
git init
git add . # 添加所有文件(或指定文件,如`git add main.go`)
git commit -m "Initial commit" # 提交代码并添加描述
git remote add origin https://github.com/yourusername/myproject.git # 替换为远程仓库URL
git push -u origin master # 推送代码到远程仓库(首次推送需用`-u`设置上游)
.gitignore,排除无需版本控制的文件(如编译生成的二进制文件、依赖缓存、编辑器临时文件):bin/
pkg/
*.exe
*.out
.idea/
.vscode/
go.mod中手动指定依赖版本(如github.com/gin-gonic/gin v1.9.1),或通过go get命令:go get github.com/gin-gonic/gin@v1.9.1
go mod graph
go get -u github.com/gin-gonic/gin@latest # 升级到最新版本
go get github.com/gin-gonic/gin@v1.9.0 # 升级到指定版本
通过Makefile定义常用任务(如构建、运行、测试),减少重复命令:
Makefile文件(无后缀):build:
go build -o myapp main.go
run:
./myapp
test:
go test ./...
clean:
rm -f myapp
make build # 编译项目
make run # 运行项目
make test # 执行测试
make clean # 清理编译文件
如果需要管理多个Go版本(如项目依赖不同Go版本),推荐使用GVM(Go Version Manager):
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
source ~/.bashrc
gvm listallgvm install go1.19gvm use go1.19gvm use go1.19 --default通过以上步骤,可在CentOS上高效管理Golang项目的环境、依赖、编译运行、版本控制及持续集成等全生命周期需求。