go从入门到重装(linux系统)

前言

我在安装配置(非本人操作)了go的linux虚拟机上,尝试用 $ go get github.com/astaxie/beego 获取beego框架。但是,却出现了一个奇怪的错误: go: cannot find main module; see 'go help modules' ,怎么查询都没有找到问题原因。这对于一个刚接触go和linux的新手来说,是手足无措的。于是,心生一计,卸载重装。

一、卸载

1.删除GOROOT目录

$ go env 找到GOROOT目录,在我的linux上为 src/go ,而常见的应该是 usr/local/go 。然后,使用$ rm -rf删除该目录。(用这个命令是不可能的,这辈子都不可能用的,这个命令删除文件真香)我不建议这样删除,因为与Windows不同,linux这样删除文件之后几乎是很难复原的。其中,-r 指向下递归,不管有多少级目录,一并删除;-f 指直接强行删除,不作任何提示的意思。可以看出,这个命令是很野蛮的。

所以,我们就暂时先保留这个目录。

2.删除GOPATH目录

这个目录可以保留。也可以用上述那个命令删除,如果其中没有重要文件的话。

卸载这步就结束了(实际上并没卸载)。

二、下载

1.下载安装包

$ wget https://studygolang.com/dl/golang/go1.10.4.linux-amd64.tar.gz 从网上找linux go1.10 版本源码的下载网址(因为modules好像是go1.11版本的东西),然后下载到当前目录。下载完,$ ls 就能看到一个名为 go1.10.4.linux-amd64.tar.gz 的压缩包。

注:为什么要下载压缩包自己解压安装呢?是因为apt便捷安装版本是1.6的,而且什么都由apt帮你完成,因其隐秘而不喜。喜欢自己下载自己安装,清楚知道每一步、每一包在哪。

2.解压

$ tar -zxvf go1.10.4.linux-amd64.tar.gz 解压到当前目录,得到一个名为 go 的文件夹,即go源码。

3.转移

$ mv go /usr/local/ 在下载go源码的目录下,将 go 源码文件夹移动到/usr/local/文件夹下。

注解

  • 在linux中,只有一个根目录即 / ,根目录包含了各种linux中重要的文件目录,如home/、etc/、usr/、root/目录等等。使用$ cd /命令即能直接到达根目录,不论你在任何目录下。而不管你在哪 /usr/local/ 也能访问根目录下的usr文件夹。

  • 另外,linux可以有多个用户,除了权限最大的root用户,还可以创建其它用户,如test用户。每个用户登录时都会进入该用户的 HOME 目录。root用户 HOME 目录即 /root/ 目录,而test用户 HOME 目录为 /home/test/ 。若要查看该用户HOME目录,可以 $ echo $HOME 。同样,$ cd ~ 能直接到达用户 HOME 目录下。

三、配置

$ vim /etc/profile 编辑/etc/profile文件(全局变量配置文件),增加以下内容:

1
2
3
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

注解

  • GOROOT 指向go的源码文件夹(即下载解压转移后的文件夹位置)。该文件夹下的 bin/ 目录是一些go命令的二进制执行文件。
  • GOPATH 指向go的工作空间。此处推荐一篇博客https://www.cnblogs.com/pyyu/p/8032257.html
  • PATH=$PATH:$GOROOT/bin:$GOPATH/bin 是指在原有 PATH 环境变量路径上加上内容,:为分隔符。

四、查看成果

$ go env 查看 go 环境。

$ go get github.com/astaxie/beego 成功,版本问题。