1. 手动安装 Go
由于大家使用的 Linux 版本不尽相同,也不见得是最新版本或需要版本的 Go 语言包,所以我们说一下如何手动安装指定版本。
- 1.下载Go发行版
从Go语言中文网:https://studygolang.com/dl 上下载合适的 二进制发行版 (例如: https://studygolang.com/dl/golang/go1.24.0.linux-amd64.tar.gz):
wget https://studygolang.com/dl/golang/go1.24.0.linux-amd64.tar.gz
- 2.提取压缩包
提取压缩包到合适的目录(例如: /usr/local ):
sudo tar -xzf go1.24.0.linux-amd64.tar.gz -C /usr/local
- 3.建立软链接
sudo ln -s /usr/local/go/bin/* /usr/bin/
可以运行如下命令,验证是否安装成功:
go version
正常输出则说明安装成功,同时可以检查版本是否安装正确。
2. 设置 Go 开发环境
2.1 创建工作空间
Go代码必须放在 工作空间 内。它其实就是一个目录,其中包含三个子目录:
- src 目录包含Go的源文件,它们被组织成 包 (每个目录都对应一个包),
- pkg 目录包含 包 编译后生成的库文件,
- bin 目录包含 包 编译后生成可执行程序。
可在合适的位置创建工作空间和子目录,实例如下:
mkdir -p $HOME/go-work/{bin,pkg,src}
2.2 配置环境变量
使用 vi 编辑环境变量配置文件 $HOME/.bashrc
:
sudo vim $HOME/.bashrc
进入编辑界面后 Shift+G
跳转至尾行,按 o
新插入一行,输入如下:
export GOROOT=/usr/local/go #设置为go安装的路径,有些安装包会自动设置默认的goroot
export GOPATH=$HOME/go-work #默认的Golang项目的工作空间
export GOBIN=$GOPATH/bin # go install命令生成的可执行文件的路径
export PATH=$GOROOT/bin:$GOBIN:$PATH
之后按 Esc 键,: wq
保存退出。使配置文件生效:
source $HOME/.bashrc #注:这里不要用sudo执行,sudo无该命令
可运行 go env
查看gol环境变量:
go env
正常输出则说明配置成功,同时可对环境变量设置进行校验。
2.3 Go Modules配置
从1.11版本开始,Golang引入了新的依赖管理机制Go Modules解决长期以来Go语言依赖包没有版本控制的缺陷,Go Modules依赖的环境变量为GOPROXY和GOSUMDB,GOPROXY用于检索依赖包的信息,GOSUMDB用于校验,默认的配置为:
GO111MODULE=""
GOPROXY="https://proxy.golang.org,direct"
GOSUMDB="sum.golang.org"
由于国内屏蔽google,故导致这两个域名都无法访问。因此,需要重新配置,直接通过go指令修改:
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct
$ go env -w GOSUMDB=sum.golang.google.cn
3. 测试 Go 源码实例
通过构建一个简单的程序来检查Go的安装是否正确,具体操作如下:
首先创建包和mod文件:
$ mkdir example && cd example
$ go mod init example
首先创建一个名为 hello.go
的文件,并将以下代码保存在其中:
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
接着通过 go 工具运行它:
go run hello.go
若看到了“hello, world”信息,那么Go已被正确安装。
4. 卸载 Go
卸载Go,其实就是将前面安装Go的东西全部删除:
- 1.删除 go 目录:
sudo rm -rf /usr/local/go
- 2.删除软链接:
sudo rm /usr/bin/go /usr/bin/gofmt
5. 升级 Go 版本
升级 Go 版本其实就是, 按照前面的步骤:
- 卸载之前安装的旧版本Go,
- 再安装新版本的Go。
参考文章:
- macOS配置Golang: https://zhuanlan.zhihu.com/p/104472740
- 教程:Go 入门: https://golang.ac.cn/doc/tutorial/getting-started