Go从入门到精通——如何安装 Go 语言开发包?
如何安装 Go 语言开发包?
要学 Go 语言,首先要学会 Go 语言开发包的安装和使用。
Go 语言的开发包可以在以下网站下载:
- golang 中国,地址:https://www.golangtc.com/
- Go 语言官方网站,地址:https://go.dev/
以 Go 语言官方网站为例,go1.17.6 版本的下载地址:https://go.dev/dl/,网页页面如下:
加粗的部分是官方推荐下载的版本,其版本描述如下:
go1.17.6.src.tar.gz | 源码包,供源码研究,对于日常开发不建议下载此包 |
go1.17.6.darwin-amd64.pkg | Mac OS 平台 amd64 安装包 |
go1.17.6.darwin-arm64.pkg | Mac OS 平台 arm64 安装包 |
go1.17.6.linux-amd64.tar.gz | Linux 平台安装包 |
go1.17.6.windows-amd64.msi | Windows 平台安装包 |
一、Windows 版本安装
Go 语言的 Windows 版本安装包一般格式为 MSI 格式,不用解压缩,直接双击,就能安装到 Windows 系统,Go 语言的 Windows 安装包一般命名格式如下:
go1.17.6.windows-amd64.msi
1.17.6:表示 Go 安装的版本;
windows:表示这是一个 Windows环境 安装包;
amd:表示对应的处理器版本,这里是 amd 64位的 CPU 版本;
.msi:表示 Windows 版安装包的格式。
1.1、下载 Go 安装包。
1.2、双击安装,并弹出安装界面。
1.3、不断点击下一步,直到提示 "Destination Folder",选择你要安装的路径,推荐默认路径。go1.17.6.windows-amd64.msi 开发包的默认安装路径是 C:\Program Files\Go 目录下,推荐在这个目录下安装 Go 开发包,使用起来较为方便。
1.4、点击 "Install" 安装。
1.5、点击 "Finish",安装完成!
1.6、安装完成后,安装目录下将生成一些目录,如下图:
1.7、安装完成后,安装目录的大小,如下图:
这个目录的结构遵守 GOPATH 规则。GOPATH 及相关的目录命名是 Go 语言编译的核心规则。
Go 开发包的安装目录及说明,如下表:
目录名 | 说明 |
api | 每个版本的 api 变更差异 |
bin | go 源码包编译出的编译器(go.exe)、格式化工具(gofmt.exe) |
doc | 文档工具(godoc) |
lib | 引用一些库文件 |
misc | 杂项用途的文件,例如 Android 平台的编译、git 的提交钩子等 |
pkg | Windows 平台编译好的中间文件 |
src | 标准库的源码 |
test | 测试用例 |
二、Linux 版本安装
Linux 版本的 Go 语言压缩包格式如下:
go1.17.6.linux-amd64.tar.gz
1.17.6:表示 Go 安装的版本;
linux:表示这是一个 linux环境 安装包;
amd:表示对应的处理器版本,这里是 amd 64位的 CPU 版本;
.tar.gz:表示 linux环境 压缩包格式。
2.1、下载安装包
[root@iZj6cikc0tkurv3slmie8jZ ~]# wget https://go.dev/dl/go1.17.6.linux-amd64.tar.gz
--2022-02-07 10:36:48-- https://go.dev/dl/go1.17.6.linux-amd64.tar.gz
Resolving go.dev (go.dev)... 216.239.38.21, 216.239.34.21, 216.239.36.21, ...
Connecting to go.dev (go.dev)|216.239.38.21|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://dl.google.com/go/go1.17.6.linux-amd64.tar.gz [following]
--2022-02-07 10:36:48-- https://dl.google.com/go/go1.17.6.linux-amd64.tar.gz
Resolving dl.google.com (dl.google.com)... 142.250.204.46, 2404:6800:4005:800::200e
Connecting to dl.google.com (dl.google.com)|142.250.204.46|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 134830580 (129M) [application/x-gzip]
Saving to: ‘go1.17.6.linux-amd64.tar.gz’
100%[==================================================================>] 134,830,580 11.2MB/s in 11s
2022-02-07 10:36:59 (11.5 MB/s) - ‘go1.17.6.linux-amd64.tar.gz’ saved [134830580/134830580]
[root@iZj6cikc0tkurv3slmie8jZ ~]#
2.2、解压 Linux 环境 Go 安装包的压缩包
[root@iZj6cikc0tkurv3slmie8jZ ~]# mkdir -pv /usr/local/go/release/go1.17.6.linux-amd64 mkdir: created directory ‘/usr/local/go’ mkdir: created directory ‘/usr/local/go/release’ mkdir: created directory ‘/usr/local/go/release/go1.17.6.linux-amd64’ [root@iZj6cikc0tkurv3slmie8jZ ~]# tar -C /usr/local/go/release/go1.17.6.linux-amd64/ -xzf go1.17.6.linux-amd64.tar.gz --strip-components 1 [root@iZj6cikc0tkurv3slmie8jZ ~]# ls -l /usr/local/go/release/go1.17.6.linux-amd64 total 232 drwxr-xr-x 2 root root 4096 Jan 7 03:19 api -rw-r--r-- 1 root root 55782 Jan 7 03:19 AUTHORS drwxr-xr-x 2 root root 4096 Jan 7 03:22 bin -rw-r--r-- 1 root root 52 Jan 7 03:19 codereview.cfg -rw-r--r-- 1 root root 1339 Jan 7 03:19 CONTRIBUTING.md -rw-r--r-- 1 root root 107225 Jan 7 03:19 CONTRIBUTORS drwxr-xr-x 2 root root 4096 Jan 7 03:19 doc drwxr-xr-x 3 root root 4096 Jan 7 03:19 lib -rw-r--r-- 1 root root 1479 Jan 7 03:19 LICENSE drwxr-xr-x 12 root root 4096 Jan 7 03:19 misc -rw-r--r-- 1 root root 1303 Jan 7 03:19 PATENTS drwxr-xr-x 6 root root 4096 Jan 7 03:23 pkg -rw-r--r-- 1 root root 1480 Jan 7 03:19 README.md -rw-r--r-- 1 root root 397 Jan 7 03:19 SECURITY.md drwxr-xr-x 48 root root 4096 Jan 7 03:20 src drwxr-xr-x 26 root root 12288 Jan 7 03:20 test -rw-r--r-- 1 root root 8 Jan 7 03:20 VERSION [root@iZj6cikc0tkurv3slmie8jZ ~]#
2.3、制作软件连接(个人操作习惯,非必须)
[root@iZj6cikc0tkurv3slmie8jZ go]# ln -nsvf release/go1.17.6.linux-amd64 current ‘current’ -> ‘release/go1.17.6.linux-amd64’ [root@iZj6cikc0tkurv3slmie8jZ go]# ls -l total 4 lrwxrwxrwx 1 root root 28 Feb 7 10:54 current -> release/go1.17.6.linux-amd64 drwxr-xr-x 3 root root 4096 Feb 7 10:50 release [root@iZj6cikc0tkurv3slmie8jZ go]#
2.4、需要将 /usr/local/go/bin 目录添加到 PATH 环境变量中
[root@iZj6cikc0tkurv3slmie8jZ bin]# echo "export PATH=/usr/local/go/current/bin:\$PATH" > /etc/profile.d/go.sh [root@iZj6cikc0tkurv3slmie8jZ bin]# more /etc/profile.d/go.sh export PATH=/usr/local/go/current/bin:$PATH [root@iZj6cikc0tkurv3slmie8jZ bin]# source /etc/profile
2.5、使用 go env 命令,可以查看 Go 压缩包是否安装成功。
[root@iZj6cikc0tkurv3slmie8jZ bin]# go env GO111MODULE="off" GOARCH="amd64" GOBIN="" GOCACHE="/root/.cache/go-build" GOENV="/root/.config/go/env" GOEXE="" GOEXPERIMENT="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GOMODCACHE="/root/go/pkg/mod" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/root/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/usr/local/go/release/go1.17.6.linux-amd64" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/usr/local/go/release/go1.17.6.linux-amd64/pkg/tool/linux_amd64" GOVCS="" GOVERSION="go1.17.6" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build3321887879=/tmp/go-build -gno-record-gcc-switches" [root@iZj6cikc0tkurv3slmie8jZ bin]#
2.6、查看 Go 版本
[root@iZj6cikc0tkurv3slmie8jZ bin]# go version go version go1.17.6 linux/amd64 [root@iZj6cikc0tkurv3slmie8jZ bin]#
2.7、关于 Go 的环境变量
$GOROOT:
表示Go的安装目录。也就是上面我们解压出来的文件夹里面的go文件夹。
$GOPATH:
表示我们的工作空间。用来存放我们的工程目录的地方。