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]
相关推荐
无奈何杨几秒前
事件时间驱动的策略版本管理:风控系统中的关键设计抉择
java·后端·架构
这里有鱼汤2 分钟前
一文读懂量化交易中最常用的5种均线,附源码,建议收藏
后端·python
风象南35 分钟前
SpringBoot的5种签到打卡实现方案
java·spring boot·后端
追逐时光者37 分钟前
C#/.NET/.NET Core技术前沿周刊 | 第 41 期(2025年6.1-6.8)
后端·.net
追逐时光者44 分钟前
不写一行代码 .NET 使用 FluentCMS 快速构建现代化内容管理系统(CMS)
后端·.net·cms
星辰离彬1 小时前
Java 高级泛型实战:8 个场景化编程技巧
java·开发语言·后端·程序人生
烛阴9 小时前
bignumber.js深度解析:驾驭任意精度计算的终极武器
前端·javascript·后端
服务端技术栈10 小时前
电商营销系统中的幂等性设计:从抽奖积分发放谈起
后端
你的人类朋友10 小时前
✍️Node.js CMS框架概述:Directus与Strapi详解
javascript·后端·node.js
面朝大海,春不暖,花不开11 小时前
自定义Spring Boot Starter的全面指南
java·spring boot·后端