在 CentOS 7 系统上部署 Go 语言(Golang)环境是许多开发者和系统管理员的常见需求,尤其是在构建高性能网络服务、微服务或云原生应用时,Go 语言以其简洁的语法、强大的并发模型和卓越的性能而备受青睐,本文将详细介绍如何利用 CentOS 7 的默认包管理器 YUM 来安装和配置 Go 语言环境,并探讨其相关细节。

为什么选择 YUM 安装?
对于大多数用户而言,使用 YUM(Yellowdog Updater Modified)来安装软件是首选方案,其主要优势在于:
- 便捷性:通过简单的命令即可完成安装,无需手动处理依赖关系。
- 自动化管理:YUM 能够自动处理软件包的依赖项,确保所有必需的库和工具都被正确安装。
- 系统集成:通过 YUM 安装的软件会与系统的其他部分更好地集成,便于通过
systemd等工具进行管理。 - 更新与卸载:可以轻松地通过
yum update和yum remove命令来更新或卸载软件,保持系统的整洁。
通过 YUM 安装 Go 语言
在 CentOS 7 的默认软件仓库中,可能不包含 Go 语言或者包含的版本较旧,为了获取一个相对较新且维护良好的版本,我们通常需要先启用 EPEL (Extra Packages for Enterprise Linux) 仓库。
第一步:启用 EPEL 仓库
EPEL 是由 Fedora 社区维护的,为 RHEL(Red Hat Enterprise Linux)及其衍生版(如 CentOS)提供高质量软件包的仓库,启用它是安装最新版 Go 的关键。
打开终端,执行以下命令来安装 EPEL 仓库:
sudo yum install -y epel-release
该命令会自动下载并安装 EPEL 仓库的配置文件。-y 参数表示在安装过程中自动回答“是”,无需手动确认。
第二步:安装 Go 语言
EPEL 仓库启用后,我们就可以使用 YUM 来安装 Go 语言了,执行以下命令:
sudo yum install -y golang
YUM 会自动解析依赖关系,从 EPEL 仓库下载 Go 语言的安装包及其依赖项,并完成安装过程。
第三步:验证安装
安装完成后,最重要的一步是验证 Go 是否已成功安装并配置正确,可以通过检查其版本来实现:
go version
如果安装成功,终端会输出类似以下的信息,显示已安装的 Go 版本号:
go version go1.20.12 linux/amd64 版本号可能因 EPEL 仓库的更新而有所不同,只要命令能够执行并返回版本信息,即表示安装基本成功。
配置 Go 开发环境
仅仅安装 Go 是不够的,为了能够顺利地编译和运行 Go 项目,还需要配置几个关键的环境变量。

设置 GOPATH 和 PATH
- GOROOT:这是 Go 的安装目录,通过 YUM 安装的 Go,
GOROOT通常会被自动设置为/usr/lib/golang,一般无需手动配置。 - GOPATH:这是 Go 的工作空间目录,用于存放你的 Go 项目代码、编译后的二进制文件和依赖包,虽然从 Go 1.11 版本开始引入了 Go Modules,弱化了对
GOPATH的强制要求,但设置它仍然是一个好习惯。 - PATH:为了能够在任何目录下直接使用
go命令以及运行你编译的 Go 程序,需要将 Go 的bin目录和你的工作空间的bin目录添加到系统的PATH环境变量中。
我们通常将这些环境变量的配置写入当前用户的 shell 配置文件中(如 ~/.bash_profile 或 ~/.bashrc),以便每次登录时自动生效。
使用文本编辑器(如 vi 或 nano)打开 ~/.bash_profile 文件:
vi ~/.bash_profile
在文件末尾添加以下内容:
# Go Environment Variables export GOPATH=$HOME/go export PATH=$PATH:/usr/lib/golang/bin:$GOPATH/bin
这里,我们将 GOPATH 设置为用户主目录下的 go 文件夹,我们将 Go 的可执行文件路径(/usr/lib/golang/bin)和我们自定义的工作空间 bin 目录($GOPATH/bin)都添加到了 PATH 中。
保存并关闭文件后,执行以下命令使配置立即生效:
source ~/.bash_profile
创建第一个 Go 程序
环境配置完毕后,让我们创建一个经典的 “Hello, World!” 程序来测试整个环境。
创建项目目录:
mkdir -p $GOPATH/src/hello
编写 Go 代码:
vi $GOPATH/src/hello/main.go
在
main.go文件中输入以下代码:package main import "fmt" func main() { fmt.Println("Hello, World! This is my first Go program on CentOS 7.") }运行程序:
你可以直接使用go run命令来运行该源文件:go run $GOPATH/src/hello/main.go
终端将输出:
Hello, World! This is my first Go program on CentOS 7.
或者,你也可以先将其编译成二进制文件,然后再执行:
go build $GOPATH/src/hello/main.go ./main
同样会看到相同的输出。
YUM 方法与手动安装的对比
为了更全面地理解,下表对比了通过 YUM 安装和手动下载二进制包安装这两种主流方法的优劣。
| 特性 | YUM 方法 | 手动安装 |
|---|---|---|
| 简易性 | 非常简单,一条命令即可完成 | 相对复杂,需手动下载、解压、配置环境变量 |
| 版本新颖度 | 依赖 EPEL 仓库,版本可能滞后 | 可随时从官网下载最新版本 |
| 系统集成 | 与系统包管理器完美集成,便于统一管理 | 独立于系统,需自行管理和更新 |
| 更新管理 | 通过 yum update 轻松更新 | 需手动下载新版本并覆盖旧版本 |
| 适用场景 | 追求稳定、便捷,对版本要求不高的生产环境 | 需要特定新功能或最新特性的开发环境 |
通过 YUM 在 CentOS 7 上安装 Go 语言是一种高效、稳定且易于管理的方式,特别适合在服务器环境中快速搭建开发或运行环境,只要按照上述步骤操作,并正确配置环境变量,你就可以顺利开启你的 Go 语言编程之旅。
相关问答FAQs
问题1:我使用 yum install golang 安装后,发现 Go 的版本不是最新的,我该如何升级到最新版?
解答:这是一个常见问题,EPEL 仓库为了保持稳定性,其软件包的更新速度通常会慢于 Go 官方的发布速度,你有两个选择:
- 等待 EPEL 更新:你可以定期运行
sudo yum update golang来检查 EPEL 仓库是否提供了新版本的 Go 包,这是最简单、最符合系统管理哲学的方式。 - 手动安装最新版:如果你急需使用 Go 的最新版本,最佳方案是手动安装,使用
sudo yum remove golang卸载通过 YUM 安装的旧版本,访问 Go 官方网站下载最新的 Linux 二进制归档文件(.tar.gz),解压到/usr/local目录,并手动配置GOROOT和PATH环境变量,这种方法能让你完全控制 Go 的版本。
问题2:我已经成功安装了 Go,go version 命令也能正常工作,但是当我尝试 go build 一个项目时,提示找不到某些依赖包,或者编译后的程序无法在其他地方运行,这是为什么?
解答:这个问题通常与 GOPATH 和 Go Modules 的配置有关。
- 找不到依赖包:如果你的项目没有使用 Go Modules(即项目根目录下没有
go.mod文件),Go 会在GOPATH指定的路径下寻找依赖,请确保你的项目代码位于$GOPATH/src目录下,并且依赖包也已正确放置在GOPATH中,对于新项目,强烈建议使用 Go Modules,在项目目录下运行go mod init <module_name>来初始化模块,然后使用go get来管理依赖,Go 会自动将依赖下载到缓存中,不再依赖GOPATH。 - 编译后的程序无法在其他地方运行:这个问题通常是因为你将编译后的二进制文件放在了
$GOPATH/bin目录下,而该目录没有添加到系统的PATH中,请检查你的~/.bash_profile文件,确保export PATH=$PATH:$GOPATH/bin这一行存在并且已经通过source ~/.bash_profile命令生效,如果是在当前目录下编译生成的二进制文件(如./main),则需要使用 前缀来执行它。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复