前言
家里电脑有一段时间没有使用了,突然心血来潮搬出来开发个idea小程序,结果环境乱的一塌糊涂,不知道当初弄了啥,好像是删除了什么,导致zsh一直找不到文件,解析出错。
由于不知道删除了什么,无赖只得重新安装一下Go环境,顺便记录一下安装过程,供初学者参考。
实际安装参数:
- 电脑:MacBook M1 ,系统为macOS 12.1
- 安装go版本:go1.21.4 darwin/arm64
Go简介
Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。
Go的语法接近C语言,但对于变量的声明有所不同。Go支持垃圾回收功能。Go的并行模型是以东尼·霍尔的通信顺序进程(CSP)为基础,采取类似模型的其他语言包括Occam和Limbo,但它也具有Pi运算的特征,比如通道传输。在1.8版本中开放插件(Plugin)的支持,这意味着现在能从Go中动态加载部分函数。
与C++相比,Go并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能,但增加了切片(Slice) 型、并发、管道、垃圾回收、接口(Interface)等特性的语言级支持。Go 2.0版本将支持泛型,对于断言的存在,则持负面态度,同时也为自己不提供类型继承来辩护。
不同于Java,Go内嵌了关联数组(也称为哈希表(Hashes)或字典(Dictionaries) ),就像字符串类型一样。
MacBook安装Go
MacBook安装go有几种方法,最简单的是通过brew安装,也是最简单的。
比较推荐使用brew去安装,更新go版本时也可以使用brew。
brew安装(推荐)
查看是否安装go
查看本地是否有安装go,若显示 not installed 则表示没有安装。已经安装go,则会出现下图中的提示。
shell
brew info go
brew 安装 go
通过brew安装最新版本的go
go
brew install go
通过brew安装指定版本的go,如下面指令表示安装1.20版本的go。
css
brew install go@1.20
brew 查看 go 版本
当通过brew安装go 成功后,可以通过下面的指令查看go版本。若安装成功,但是仍提示找不到go指令,则可能是没有配置好go的环境变量。
go
go version
使用官方包安装
官网地址:golang.org/dl/
在官网下载pkg包进行安装,注意下对版本,比如博主使用的MacBook是M1芯片,就需要下载ARM64版本的pkg包。
配置Go环境变量
Mac的shell环境有两种,zsh和bash,这两种不是一个配置文件,在配置之前我们需要知道默认是哪种配置。
查看默认的shell
bash
dscl . -read /Users/$USER UserShell
如果提示是UserShell: /bin/zsh
,则默认是zsh,需要选择编辑~/.zshrc 文件。反之如果是bash,则需要选择编辑~/.bash_profile文件。
查看go的安装路径
通过brew指令可以查看go的安装目录
go
brew list go
输出的提示如下
bash
/opt/homebrew/Cellar/go/1.21.4/bin/go
/opt/homebrew/Cellar/go/1.21.4/bin/gofmt
/opt/homebrew/Cellar/go/1.21.4/libexec/api/ (24 files)
/opt/homebrew/Cellar/go/1.21.4/libexec/bin/ (2 files)
/opt/homebrew/Cellar/go/1.21.4/libexec/doc/ (5 files)
/opt/homebrew/Cellar/go/1.21.4/libexec/lib/ (4 files)
/opt/homebrew/Cellar/go/1.21.4/libexec/misc/ (26 files)
/opt/homebrew/Cellar/go/1.21.4/libexec/pkg/ (23 files)
/opt/homebrew/Cellar/go/1.21.4/libexec/src/ (9199 files)
/opt/homebrew/Cellar/go/1.21.4/libexec/test/ (3244 files)
/opt/homebrew/Cellar/go/1.21.4/libexec/ (6 files)
如博主的go的安装路径为/opt/homebrew/Cellar/go/1.21.4/libexec
配置go环境
接下来我们需要设置GOROOT, GOPATH, PATH三个环境变量。
bash
export GOROOT=/opt/homebrew/Cellar/go/1.21.4/libexec
export GOPATH=$HOME/go
export PATH=$GOROOT/bin: $GOPATH/bin:$PATH
GOPATH:是go包存放的路径,可以自己自定义一个路径。
将$GOPATH/bin
加入 $PATH 变量,这样在终端的任何路径都能使用go包的bin目录下面的工具,不需要进入到bin目录或者指定目录,比较方便。
配置生效
bash
source ~/.bash_profile # 如果是bash
source ~/.zshrc # 如果是zsh
卸载go
brew卸载
go
brew uninstall go
手动卸载
bash
sudo rm -rf `/usr/local/go`
sudo rm -f /etc/paths.d/go
升级go
把brew的fomulae更新到最新版本
sql
brew update
更新go版本
go
brew upgrade go
多个go版本
再使用brew安装指定版本
css
brew install go@1.9
注意使用这种方式安装,go的安装路径不是在go路径下,而是在路径go@1.9下。
在使用brew switch go 1.9.7
,切换go版本时,会找不到这个版本,因为brew switch
只识别路径go。
解决版本就是mv go@1.9/1.9.7 go
,把整个目录移动到go目录
或者使用下面的指令
go
brew switch go@1.9