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 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
相关推荐
man20171 小时前
【2024最新】基于springboot+vue的闲一品交易平台lw+ppt
vue.js·spring boot·后端
hlsd#1 小时前
关于 SpringBoot 时间处理的总结
java·spring boot·后端
路在脚下@1 小时前
Spring Boot 的核心原理和工作机制
java·spring boot·后端
幸运小圣1 小时前
Vue3 -- 项目配置之stylelint【企业级项目配置保姆级教程3】
开发语言·后端·rust
前端SkyRain2 小时前
后端Node学习项目-用户管理-增删改查
后端·学习·node.js
提笔惊蚂蚁3 小时前
结构化(经典)软件开发方法: 需求分析阶段+设计阶段
后端·学习·需求分析
老猿讲编程3 小时前
Rust编写的贪吃蛇小游戏源代码解读
开发语言·后端·rust
黄小耶@3 小时前
python如何使用Rabbitmq
分布式·后端·python·rabbitmq
宅小海4 小时前
Scala-List列表
开发语言·后端·scala
蔚一5 小时前
Javaweb—Ajax与jQuery请求
前端·javascript·后端·ajax·jquery