前言
Go
语言系列是自己逐渐学习的一个过程总结,根据自己的实际实验过程进行安装和学习,之所以这么做是因为通过一些网络的教程走了一些弯路,因此总结下来供其他学习的小伙伴使用。
安装
Linux
下安装有两个方式,其安装方式与Python
的安装过程十分类似,Go
语言环境也是分为两种方式进行安装,一种是通过在命令行下进行安装,一种是通过官网下载进行安装。
- 方式一:命令行安装
apt install golang
- 方式二:下载安装
通过官方网站的方式时,经常出现无法访问golang.org
的方式,现在可以直接通过以下网站进行访问:
https://golang.google.cn
下载后的文件为go1.16.linux-amd64.tar.gz
,通过如下命令对文件进行解压。
tar -zxvf go1.16.linux-amd64.tar.gz
解压之后,可以在当地文件中得到名为go的文件夹,其文件夹中包含的内容如下:
使用root
权限将文件夹移动到/usr/local
路径下:
sudo mv -f ./go /usr/local
在/etc/profile文件中配置环境的路径,在文件的末尾中添加以下:
# 习惯用vim,没有的话可以用命令`sudo apt-get install vim`安装一个
vim /etc/profile
# 在最后一行添加
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
# 保存退出后source一下(vim 的使用方法可以自己搜索一下)
source /etc/profile
安装后可以直接在命令行中运用go命令即可,检测是否进行安装完全。
不过并没有在环境中配置工程的路径,可以直接在脚步中随时通过临时命令来进行设置,也可以直接在环境配置脚步中直接进行配置,配置后的代码如下:
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GPPATH=~/Desktop/go
虽然即使不指定GOPATH也是可以直接使用的,但是不便于对项目中依赖的管理,如果对依赖进行下载,会直接安装到指定的工作目录中,而不会在其他你所工作的目录下进行安装和下载,那么这就对依赖的管理极度不友好,这也是需要随时对项目的工作目录进行修改的一个主要原因。
使用权限问题
在经过上述的安装后会发现在普通用户下是不能进行使用的,系统提示并没有这个命令,这是因为配置的环境变量是在root用户下进行安装和配置,这就需要我们在普通用户下进行安装和配置,那么配置的脚步是不同的,如下:
- Root用户下
/etc/profile 或者 ~/.profile
- 普通用户下
~/.profile
这是因为在不同的用户下实际的家目录即~
是不同的。
GOROOT与GOPATH
仔细看上面的输出,会发现其中有一个GOPATH
,又有一个GOROOT
,那么到底哪个才是Golang
的运行环境呢。
首先访问一下GOROOT
这个路径,会发现其中包含bin
、lib
等文件夹。GOROOT
就是Golang
的安装路径,其中包含Golang
编译、工具、标准库等,在安装后就会存在。
和GOROOT
不同,GOPATH
是工作空间路径,从go 1.8
开始,如果GOPATH
没有被设置,会有一个默认值,在Unix
上为$HOME/go
,在Windows
上为%USERPROFILE%/go
,当调用go build
时,它会在GOPATH
中寻找源码。访问一下GOPATH
这个路径,会发现其中只有pkg、bin、src
三个文件夹,并且里面基本是空的,这是一个约定的目录结构,src
文件夹用来存放源码、pkg
存放编译后生成的文件,bin
存放编译后生成的可执行文件。项目代码需要在GOPATH/src
路径下。
GOPATH
路径下出了存放项目代码,还存放所有通过go get
安装的依赖,项目代码和依赖代码是平级的,当各个项目都有很多依赖的时候,这个GOPATH
路径下的代码量会多的吓人,并且难以拆分。