Golang 语言怎么安装多个 Golang 版本的环境?

简介: Golang 语言怎么安装多个 Golang 版本的环境?

介绍

Golang 语言安装(环境搭建)有三种方式,包括二进制方式安装、源码方式安装和 go 命令方式安装。Golang 语言支持多个平台和操作系统,比如 Windows,Mac 和 Linux。

二进制文件方式安装

Golang 官方网站提供了三种操作系统的二进制文件,我们只需下载对应系统的二进制文件后,按照安装说明进行操作即可。

以 Mac 系统为例,第一步是下载 Mac 系统的二进制文件 Golang 安装程序,第二步是打开下载的二进制文件 Golang 安装程序,按照提示安装 Golang。

该二进制文件 Golang 安装程序将 Golang 发行版安装到 /usr/local/go。并且自动将 /usr/local/go/bin 目录加入 PATH 环境变量中。

第三步是验证 Golang 是否安装成功,在终端中输入 go version 命令,如果可以输出我们下载的二进制文件 Golang 安装程序的正确版本号,证明 Golang 已安装成功。

Windows 系统和 Mac 系统大致相同,接下来,我们再介绍一下 Linux 系统的二进制方式安装步骤。

第一步是下载 Linux 系统的二进制文件 Golang 安装程序。然后将下载的压缩文件解压缩到目录 /usr/local,会在目录 /usr/local 中创建一个目录 /usr/local/go。需要注意的是,该操作需要在解压缩操作之前删除旧的目录 /usr/local/go (如果有),所以请务必提前做好数据备份。

示例命令:

rm -rf /usr/local/go && tar -C /usr/local -xzf go1.16.5.linux-amd64.tar.gz

第二步是将 /usr/local/go/bin 加入 PATH 环境变量。我们可以使用以下示例命令选择添加到 $HOME/.profile (局部) 或 /etc/profile (全局)。

示例命令:

export PATH=$PATH:/usr/local/go/bin

需要注意的是,修改配置文件后,如果需要立即生效,可以执行命令 source 配置文件目录

第三步是验证 Golang 是否安装成功,在终端中输入 go version 命令,如果可以输出我们下载的二进制文件 Golang 安装程序的正确版本号,证明 Golang 已安装成功。

03

源码方式安装

源码方式安装方式相比二进制方式安装复杂一些,如非必要,建议使用二进制方式安装。

Golang 1.5 版本开始实现自举,Golang 的编译器也是使用 Golang 写的,我们使用源码安装方式,就需要先准备 Golang 的编译环境,我们可以先下载一个 Golang 1.4 版本,因为 Golang 1.5 之前的版本是使用 C 语言写的 Golang 编译器,所以我们可以使用 Linux 的 gcc 编译一个 Golang 编译环境。然后使用这个 Golang 编译环境来编译新版本的 Golang 环境。

另外一种方式是先使用 Linux 版本的二进制文件 Golang 安装程序来安装 Golang。然后使用这个 Golang 环境编译新版本的 Golang。

以上两种方式,任选其一(推荐第二种方式)。

我们有了 Golang 环境,就可以使用该 Golang 环境编译新的 Golang。

第一步是设置环境变量 GOROOT_BOOTSTRAP,值为我们预先准备好的 Golang 编译环境的根目录,比如 /usr/local/go1.8

示例命令:

export GOROOT_BOOTSTRAP=/usr/local/go1.8

第二步是使用 Git 下载最新的 Golang 源码(如果还未安装 Git,请先安装 Git),然后使用 git checkout 切换到某个版本,然后执行编译命令,再然后是设置环境变量 GOROOTGOPATH

示例命令:

#拉取最新的 Golang 源码
~ cd /usr/local/src/
~ git clone git@github.com:golang/go.git
#查看 tag
~ cd go
~ git tag
#切换到某个版本
~ git checkout go1.16
#执行编译
~ cd src
~ ./all.bash
#设置环境变量
~ export GOROOT=/usr/local/go
~ export GOPATH=$HOME/go

第三步是验证 Golang 是否安装成功,在终端中输入 go version 命令,如果可以输出我们下载的二进制文件 Golang 安装程序的正确版本号,证明 Golang 已安装成功。

04

go 命令安装多个版本

我们如果想在我们的电脑上安装多个 Golang 版本,我们可以使用 go 命令的方式安装多个版本,该方式需要使用 git,如果还未安装 git,请先安装 git。

第一步是使用 go get 命令指定安装的 Golang 版本的下载地址,执行该命令后,会下载到目录 $GOPATH/bin 中一个可执行文件,比如 go1.16.5

第二步是执行命令 go1.16.5 download,下载 sdk,下载目录为 $HOME/sdk/,查看该目录,我们可以发现该目录中有一个目录名为 go1.16.5 的目录。

第三步是验证 Golang 是否安装成功,在终端输入 go1.16.5 version 命令,如果可以输出正确版本号,证明该版本的 Golang 已安装成功。

示例命令:

go get golang.org/dl/go1.16.5
go1.16.5 download
go1.16.5 version

我们可以使用以上三个步骤安装多个 Golang 版本的 Golang 环境,并且可以在 IDE(比如 GoLand ) 中切换使用不同的 Golang 环境。

05

总结

本文我们主要是介绍怎么安装不同版本的 Golang 环境,文章开头先是介绍怎么使用二进制文件方式和源码方式安装 Golang 环境,原因是安装不同版本的 Golang 环境使用 go get,也就是说该方式必须是在已存在 Golang 环境的基础上才可以使用。

关于 Golang 环境的安装,建议读者朋友们使用二进制文件的 Golang 安装程序的方式安装 Golang,该方式是最简单的方式,并且 Golang 官方网站提供了多个平台和操作系统的二进制文件。(PS:三方安装方式本文未叙述,比如 Mac 系统的 brew。如果读者朋友们感兴趣,建议自行查找相关资料。)

推荐阅读:

Golang 语言中的非类型安全指针

参考资料:

https://golang.org/doc/install 

https://golang.org/doc/install/source 

https://golang.org/doc/manage-install <br/<

目录
相关文章
|
2月前
|
Go
Golang语言之管道channel快速入门篇
这篇文章是关于Go语言中管道(channel)的快速入门教程,涵盖了管道的基本使用、有缓冲和无缓冲管道的区别、管道的关闭、遍历、协程和管道的协同工作、单向通道的使用以及select多路复用的详细案例和解释。
106 4
Golang语言之管道channel快速入门篇
|
2月前
|
Go
Golang语言文件操作快速入门篇
这篇文章是关于Go语言文件操作快速入门的教程,涵盖了文件的读取、写入、复制操作以及使用标准库中的ioutil、bufio、os等包进行文件操作的详细案例。
64 4
Golang语言文件操作快速入门篇
|
2月前
|
Go
Golang语言之gRPC程序设计示例
这篇文章是关于Golang语言使用gRPC进行程序设计的详细教程,涵盖了RPC协议的介绍、gRPC环境的搭建、Protocol Buffers的使用、gRPC服务的编写和通信示例。
99 3
Golang语言之gRPC程序设计示例
|
2月前
|
安全 Go
Golang语言goroutine协程并发安全及锁机制
这篇文章是关于Go语言中多协程操作同一数据问题、互斥锁Mutex和读写互斥锁RWMutex的详细介绍及使用案例,涵盖了如何使用这些同步原语来解决并发访问共享资源时的数据安全问题。
86 4
|
2月前
|
Go
Golang语言错误处理机制
这篇文章是关于Golang语言错误处理机制的教程,介绍了使用defer结合recover捕获错误、基于errors.New自定义错误以及使用panic抛出自定义错误的方法。
45 3
|
8天前
|
Go 计算机视觉
在Golang高并发环境中如何进行协程同步?
在此示例中,使用互斥锁来保护对共享计数器变量 c 的访问,确保并发的 HTTP 请求不会产生数据竞争。
27 3
|
1月前
|
Go
安装golang
golang官网——
31 1
|
2月前
|
Go 调度
Golang语言goroutine协程篇
这篇文章是关于Go语言goroutine协程的详细教程,涵盖了并发编程的常见术语、goroutine的创建和调度、使用sync.WaitGroup控制协程退出以及如何通过GOMAXPROCS设置程序并发时占用的CPU逻辑核心数。
50 4
Golang语言goroutine协程篇
|
2月前
|
Prometheus Cloud Native Go
Golang语言之Prometheus的日志模块使用案例
这篇文章是关于如何在Golang语言项目中使用Prometheus的日志模块的案例,包括源代码编写、编译和测试步骤。
51 3
Golang语言之Prometheus的日志模块使用案例
|
2月前
|
Go
Golang语言之函数(func)进阶篇
这篇文章是关于Golang语言中函数高级用法的教程,涵盖了初始化函数、匿名函数、闭包函数、高阶函数、defer关键字以及系统函数的使用和案例。
57 3
Golang语言之函数(func)进阶篇