Go的安装、卸载以及升级、安装指定版本

前言

家里电脑有一段时间没有使用了,突然心血来潮搬出来开发个idea小程序,结果环境乱的一塌糊涂,不知道当初弄了啥,好像是删除了什么,导致zsh一直找不到文件,解析出错。

由于不知道删除了什么,无赖只得重新安装一下Go环境,顺便记录一下安装过程,供初学者参考。

实际安装参数:

  1. 电脑:MacBook M1 ,系统为macOS 12.1
  2. 安装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 [email protected]

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 [email protected]

注意使用这种方式安装,go的安装路径不是在go路径下,而是在路径[email protected]下。

在使用brew switch go 1.9.7,切换go版本时,会找不到这个版本,因为brew switch只识别路径go。

解决版本就是mv [email protected]/1.9.7 go,把整个目录移动到go目录

或者使用下面的指令

go 复制代码
brew switch [email protected]
相关推荐
张紫娃2 小时前
Spring @Scope, @Lazy, @DependsOn, @Required, @Lookup
java·后端·spring
AKAMAI4 小时前
微服务架构的核心优势解析
后端·云原生·云计算
你的人类朋友7 小时前
✍️【Node.js程序员】的数据库【索引优化】指南
前端·javascript·后端
why技术11 小时前
翻译翻译,什么叫“编程专用”的显示器?
前端·后端
野生技术架构师12 小时前
SpringBoot集成Tess4j :低成本解锁OCR 图片识别能力
spring boot·后端·ocr
天天摸鱼的java工程师12 小时前
要在 Spring IoC 容器构建完毕之后执行一些逻辑,怎么实现
后端
程序猿小D12 小时前
第25节 Node.js 断言测试
后端·node.js·log4j·编辑器·vim·apache·restful
shengjk113 小时前
一文搞懂 TCP TCP/IP 和 TCP/IP网络分层之间的联系和区别
后端
述雾学java13 小时前
Spring Boot + Vue 前后端分离项目解决跨域问题详解
vue.js·spring boot·后端