我正在参加「掘金·启航计划」
作为《重学Go语言》的第一篇文章,为了更好地学习Go语言,第一件事当然是来安装一个Go语言开发环境了。
Go安装
Go有两种安装方式:
- 二进制安装包:Go为各种操作系统与CPU架构编译好的安装包,比如说你用的Windows 64位的操作系统,直接选择对应的安装包进行安装即可。
- 源码安装:Go是开源项目,因此我们也可以自己下载Go源码进行编译安装。
二进制安装包
如果你是Windows或者Mac操作系统,那么下载对应的安装包后,根据安装界面的提示安装即可,如果是Linux,在下载安装包后,可以先移除旧的go版本,再解压到usr/local目录(其他目录也可以的):
# 移除旧的go版本
$ rm -rf /usr/local/go
# 将go解压缩到/usr/local目录
$ tar -C /usr/local -xzf go1.19.4.linux-amd64.tar.gz
安装好之后,还需要配置环境变量,主要配置三个环境变量
- PATH:将Go安装目录下的bin目录配置到PATH环境变量,这样才能在命令行下运行Go相关工具链。
- GOPATH:这个目录主要是存入我们的代码或者是一些第三方工具的地方。
- GOROOT:Go的安装目录。
$ export PATH=$PATH:/usr/local/go/bin
$ export GOROOT=/usr/local/go
$ export GOPATH=~/go
这时候就已经安装完成了!在命令行输入下面的命令:
$ go version
go version go1.19.4 darwin/amd64
如果成功输出Go的版本信息,那就说明安装成功了,如果提示无法找到go命令,那么你就要检查刚刚的环境变量配置是否正确了。
源码安装
如果在Go官网上没有找到你对应的平台,亦或者你想定制化地安装Go开发环境,那么你也可以自己编译Go源码进行安装,分以下几个步骤:
- 准备编译环境
- 下载源码
- 编译安装
准备编译环境
Go从1.5开始,就用Go重写了Go的编译器与工具链,实现了自举。
而Go1.5之前的版本,编译器与工具链都是用C写的,也就是说用源码安装Go的话,Go1.5版本之前与之后的安装方式不一样:
- 1.5之前的版本:本地必须有C语言编译环境,因为此时Go是用C语言写。
- 1.5及之后的版本:本地必须有Go语言的编译环境,此时Go实现了自举。
目前Go语言的稳定版本是1.19.4,换句话说我们要有Go编译器才能安装Go,主要有四种方式:
- 本地已经有安装的Go版本
- 交叉编译:在其他电脑编译好Go,再移到你的目标主机上
- 使用gccgo:这个是Go语言的编译器。
- 使用C语言编译Go1.4版本:Go1.5之前的版本都是用C语言开发的,如果本地有C语言编译工具,编译好Go1.4,再使用Go1.4编译新的版本即可。
下载源码
在安装好了Go的编译环境后,就可以下载Go的源码了:
$ wget https://go.dev/dl/go1.19.4.src.tar.gz
$ tar -xzf go1.19.4.linux-amd64.tar.gz
或者直接克隆Go仓库的源码:
$ git clone https://go.googlesource.com/go goroot
$ cd goroot
$ git checkout <tag>
编译安装
$ cd go/src
$ ./all.bash
编译成功后,与使用二进制安装一样,也要配置环境变量,具体配置方式参考上面。
Hello World
接下来,我们通过一段在控制台输出Hello World的代码,将下面的代码保存到名为main.go文件中。
package main
import "fmt"
func main(){
fmt.Println("Hello World")
}
运行
$ go run main.go
Hello World
接下来我们分析一下这个简单的程序:
第一行:package关键词用于定义包名,在这里包名main,这是main函数所在的包,也是Go语言程序运行的入口。
第二行:import关键词用于导入标准库,这里导入的标准库为fmt,fmt是Go内置的用于在控制台输出信息的库。
第三行和第五行:func关键词用于定义函数,这里定义了程序的入口main函数,Go语言与C语言类似,都是从main函数开始的。
第四行:函数体,主要的执行逻辑都在这里。
小结
其实,一般而言我们只要选择Go官网提供的二进制安装即可,并不需要进行源码安装,不过多了解一种Go的安装方式也不是什么坏事吧!