关于macos:mac上安装多个golang

5次阅读

共计 3674 个字符,预计需要花费 10 分钟才能阅读完成。

在线装置

网上很多,举荐应用 brew 装置。

离线装置

我集体更偏向于离线装置,这样本人能更好的治理安装文件。

# 创立一个装置过程的操作目录 softs
edy@edydeMacBook-Pro ~ % cd
edy@edydeMacBook-Pro ~ % mkdir softs
edy@edydeMacBook-Pro ~ % cd softs

# 下载离线安装包
# https://go.dev/dl/
edy@edydeMacBook-Pro softs % wget -c https://golang.google.cn/dl/go1.20.4.darwin-amd64.tar.gz

# 装置目录:/usr/local/go
edy@edydeMacBook-Pro softs % sudo tar -xvf go1.20.4.darwin-amd64.tar.gz -C /usr/local

# 查看装置目录
edy@edydeMacBook-Pro softs % cd /usr/local/go
edy@edydeMacBook-Pro go % ls
# CONTRIBUTING.md    PATENTS        SECURITY.md    api        codereview.cfg    lib        pkg        test
# LICENSE        README.md    VERSION        bin        doc        misc        src

# 配置环境变量 .zshrc 或 .bash_profile
edy@edydeMacBook-Pro ~ % vi .zshrc
'''
# home path 也就是以后用户 ~ 的门路
HOME_EDY=/Users/edy

# golang install
export GOROOT="/usr/local/go"
export PATH=$PATH:$GOROOT/bin

# golang use env
# 增加多个以冒号 : 隔开
export GOPATH=$HOME_EDY/go:$HOME_EDY/chuyt
# go 可执行文件目录
export GOBIN=$HOME_EDY/go/bin:$HOME_EDY/chuyt/bin
# 将 GOBIN 增加到零碎环境 PATH 中
export PATH=$PATH:$GOBIN
# 将 GOPROXY 代理改为国内代理
export GOPROXY=https://goproxy.cn,direct
# mod 设置
export GO111MODULE="on"
'''

# 加载环境 (也能够从新关上一个 shell 会话)
edy@edydeMacBook-Pro ~ % source .zshrc

# 查看环境 /usr/local/go/bin 曾经存在
edy@edydeMacBook-Pro ~ % echo $PATH

# 执行查看是否装置失常
edy@edydeMacBook-Pro ~ % go version
# go version go1.20.4 darwin/amd64
edy@edydeMacBook-Pro ~ % go env
# GO111MODULE="on"
# GOARCH="amd64"
# GOBIN="/Users/edy/go/bin:/Users/edy/chuyt/bin"
# GOMODCACHE="/Users/edy/go/pkg/mod"
# GOOS="darwin"
# GOPATH="/Users/edy/go:/Users/edy/chuyt"
# GOPROXY="https://goproxy.cn,direct"
# GOROOT="/usr/local/go"
# GOVERSION="go1.20.4"
# GCCGO="gccgo"

# 到此装置结束 

多个版本治理

随着工夫的推移,我的项目迭代次数减少,不同版本的我的项目对应的 go 版本也在变动,尤其有时调研一些开源我的项目时,go 版本也和本人以后应用的不统一。

所以,我须要装置多个 go 版本,并心愿能够不便切换。

网上应该是有这类计划的,没有细查,这里介绍下我的解决办法,还是以离线装置的形式为例。

# 背景, 目前装置了 1.20.4, 须要再装置一个 1.16.8

######################################
# 备份之前的版本 1.20.4
# 同时,为了不便当前多个 go 版本治理:# 在 /usr/local/go 目录下治理多个版本,而不在间接是某一个 go 版本
######################################

# 备份 1.20.4
edy@edydeMacBook-Pro softs % cd /usr/local
edy@edydeMacBook-Pro local % cd go
edy@edydeMacBook-Pro go % ls
# CONTRIBUTING.md    PATENTS        SECURITY.md    api        codereview.cfg    lib        pkg        test
# LICENSE        README.md    VERSION        bin        doc        misc        src
edy@edydeMacBook-Pro go % cd ..
edy@edydeMacBook-Pro local % mv go go@1.20.4
# mv: rename go to go@1.20.4: Permission denied
edy@edydeMacBook-Pro local % sudo mv go go@1.20.4
# Password:
edy@edydeMacBook-Pro local % sudo mkdir go
edy@edydeMacBook-Pro local % sudo mv go@1.20.4 go/
edy@edydeMacBook-Pro local % cd go
edy@edydeMacBook-Pro go % ls
# go@1.20.4

# 能够看看,go 曾经找不到了
edy@edydeMacBook-Pro go % go version
# zsh: command not found: go

# OK,筹备装置其余版本

######################################
# 装置 1.16.8
# 倡议:go 的安装简单,如果想要高级不便,能够本人做一个脚本
######################################

# 创立一个装置过程的操作目录 softs
edy@edydeMacBook-Pro ~ % cd
edy@edydeMacBook-Pro ~ % cd softs

# 下载离线安装包
# https://go.dev/dl/
edy@edydeMacBook-Pro softs % wget -c https://golang.google.cn/dl/go1.16.8.darwin-amd64.tar.gz

# 装置
# 装置目录:/usr/local/go 目录下
edy@edydeMacBook-Pro softs % sudo tar -xvf go1.16.8.darwin-amd64.tar.gz -C /usr/local/go

edy@edydeMacBook-Pro softs % cd /usr/local/go
edy@edydeMacBook-Pro go % ls
# go        go@1.20.4

# 为了不便我后边通过设置版本号,来实现版本切换,都用同一格局: go@version
edy@edydeMacBook-Pro go % sudo mv go go@1.16.8
edy@edydeMacBook-Pro go % ls
# go@1.16.8    go@1.20.4

# 配置环境
edy@edydeMacBook-Pro ~ % vi .zshrc
'''
# home path 也就是以后用户 ~ 的门路
HOME_EDY=/Users/edy

# 管制 go 版本
MYGOVERSION="1.16.8"

# golang install
export GOROOT="/usr/local/go/go@$MYGOVERSION"
export PATH=$PATH:$GOROOT/bin

# golang use env
# 增加多个以冒号 : 隔开
export GOPATH=$HOME_EDY/go:$HOME_EDY/chuyt
# go 可执行文件目录
export GOBIN=$HOME_EDY/go/bin:$HOME_EDY/chuyt/bin
# 将 GOBIN 增加到零碎环境 PATH 中
export PATH=$PATH:$GOBIN
# 将 GOPROXY 代理改为国内代理
export GOPROXY=https://goproxy.cn,direct
# mod 设置
export GO111MODULE="on"
'''

# 加载环境 (也能够从新关上一个 shell 会话)
edy@edydeMacBook-Pro ~ % source .zshrc

# 看看怎么样
edy@edydeMacBook-Pro ~ % go version
# go version go1.16.8 darwin/amd64
edy@edydeMacBook-Pro ~ % which go
# /usr/local/go/go@1.16.8/bin/go

# ok 到此装置结束

# 当前切换版本,只须要在 `~/.zshrc` 文件中批改 MYGOVERSION 这个环境变量即可
# 当然,如果想要高级不便,能够做一个脚本,以命令参数的形式执行脚本实现 
正文完
 0