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‘(代码片段