Go编译器安装

Posted 上海一亩地

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go编译器安装相关的知识,希望对你有一定的参考价值。

Go语言中文网

Go语言由谷歌开发,由于墙的问题,中国大陆不能直接访问Go官网。
Go中文网相当于中国的Go官网,十分靠谱。
https://studygolang.com/
你可以从上面下载各种版本的Go安装包,也有中文的官方文档。

方法一:yum安装法(推荐)

# 安装
yum -y install golang

# 升级
yum -y update golang

# 验证
go version
# 此时安装成功!!!此法简单快捷

创建go新项目

一个标准的go项目结构是这样的:

--project_name/
  --src/  # 用于存放项目源代码
  --pkg/  # 用于存放项目生成的可执行文件
  --bin/  # 用于存放项目生成的包

即创建一个空目录作为项目根目录,并在里面创建3个子目录

声明工作区

你可能在系统的很多地方有go项目,所以go不知道你要编译或者执行哪个项目,在执行go代码之前需要将当前项目根目录声明成工作区。通过定义环境变量GOPATH来实现
比如我的项目在/root/sero

export GOPATH="/root/sero"

go编译器会读取环境变量的路径从而找到你的项目

方法二:源码安装

解压

最近想挖矿,发现需要安装Go 1.10版本。
本文测试环境:CentOS7.9
从GO中文网下载Linux源码包。
我以go1.10.7.linux-amd64.tar.gz 编译器为例
将文件上传到Linux下的/usr/local下

cd /usr/local
tar -zxf go1.10.7.linux-amd64.tar.gz
# 此时能看到解压出一个go文件夹

配置安装路径的环境变量

我们的安装路径已经是/usr/local/go了,现在将其写到系统文件

vim /etc/profile

# 文件末尾添加这样一句话
export GOROOT="/usr/local/go"
export GOBIN="${GOROOT}/bin"

# 保存退出后
source /etc/profile

将GOBIN加入到PATH中

到目前为止go命令还是不能用,需要将GOBIN变量写入到PATH中

vim /etc/profile

# 文件末尾再加一行
PATH=$PATH:$GOBIN

# 保存退出后
source /etc/profile

测试

go version

[root@localhost ~]go version
go version go1.10.7 linux/amd64

至此,GO安装完成

配置工作区(这和方法一 一样,就是建个空的新项目)

GO语言规定所有代码操作都要在工作区中
在家目录下创建一个go文件夹,这个go文件夹以后就作为工作区

# 新建go目录作为项目根目录
mkdir ~/go # 项目根目录
mkdir ~/go/src # 用于存放项目源代码
mkdir ~/go/bin # 用于存放项目生成的可执行文件
mkdir ~/go/pkg # 用于存放项目生成的包

# 将工作区路径写入环境变量
vim /etc/profile

# 末尾添加(将变量写入/etc/profile,这样每次重启系统后,GO编译器自动将其作为默认项目)
export GOPATH="/home/test/go"  # 此处写~/go的绝对路径

# 保存退出后
source /etc/profile

安装Go需要GOROOT、GOBIN、GOPATH 三个环境变量。

至此安装完成

划重点

安装:yum安装一行命令即可,源码安装后需要配置GOROOT和GOBIN,并将GOBIN合并到系统PATH变量中去。
为什么yum安装的go不需要环境变量:yum安装的go rpm包直接安装在/usr/bin下,这个目录有软连接,并且系统PATH变量中已有/usr/bin。如果你想一个 系统中安装多个版本的GO,可以采用源码安装,切换GO版本只要重新修改GOROOT即可。

新建GO项目和项目切换:只要设置环境变量GOPATH就可以了,如果你只有一个项目,每次嫌敲命令太麻烦,可以将export GOPATH写入/etc/profile作为系统环境变量或者~/.bash_profile作为用户环境变量。从一个项目变更为另一个项目时,重新export GOPATH="新项目根目录"即可。

以上是关于Go编译器安装的主要内容,如果未能解决你的问题,请参考以下文章

Go之路一:安装VSCode以及支持go插件编译运行go程序介绍

[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

解决go: go.mod file not found in current directory or any parent directory; see ‘go help modules‘(代码片段

Go命令教程3. go install

#yyds干货盘点#愚公系列2022年08月 Go教学课程 002-Go语言环境安装

你知道的Go切片扩容机制可能是错的